[Excel] programmation vba
Résolu/Fermé
Tartouffe
Messages postés
37
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
8 décembre 2011
-
22 août 2007 à 09:08
Tartouffe Messages postés 37 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 8 décembre 2011 - 22 août 2007 à 10:54
Tartouffe Messages postés 37 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 8 décembre 2011 - 22 août 2007 à 10:54
bonjour,
j'aimerais savoir comment on peut extraire une partie du texte d'une cellule en vba sous excel
sachant que le texte est de la forme NOM1 Prenom1 [ENTREPRISE]; NOM2 Prenom2 [ENTREPRISE]; ...
je ne sait pas combien il ya de NOM et Prenom et le dernier ne ce termine pas par "; "
donc dans ce cas vous l'aurait compris je veut copier coller NOM1 Prenom1 [ENTREPRISE]; dans une autre cellule et de meme pour les autre
merci d'avance
j'aimerais savoir comment on peut extraire une partie du texte d'une cellule en vba sous excel
sachant que le texte est de la forme NOM1 Prenom1 [ENTREPRISE]; NOM2 Prenom2 [ENTREPRISE]; ...
je ne sait pas combien il ya de NOM et Prenom et le dernier ne ce termine pas par "; "
donc dans ce cas vous l'aurait compris je veut copier coller NOM1 Prenom1 [ENTREPRISE]; dans une autre cellule et de meme pour les autre
merci d'avance
A voir également:
- [Excel] programmation vba
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Essayes voir ces instructions là.
Dans la proposition qui va suivre, le texte est de la forme NOM1 Prenom1 [ENTREPRISE]; NOM2 Prenom2 [ENTREPRISE]; ... est dans la cellule A1 de ta page. C'est ce que j'appelele dans le programme la chaine 'Contenu' :
Sub test()
' Initialisation de variables
Separateur = ";"
Position = 0
Ligne = 1
' Charge le contenu de la cellule A1 en mémoire dans la variable Contenu
Contenu = Range("A1").Value
Do
'Cherche la position du séparateur dans la chaine Contenu
Position = InStr(1, Contenu, Separateur)
Ligne = Ligne + 1
' Test, execute le contenu seulement si il trouve le séparateur
If Position <> 0 Then
' Groupe correspond à "NOM Prénom [Entreprise]
Groupe = Left(Contenu, Position - 1)
' Cette instruction colle Groupe dans la cellule qui a pour coordonées Ligne,1
Cells(Ligne, 1).Value = Groupe
' Mesure de la longueur de la chaine Contenu
Longueur = Len(Contenu)
' Supprime dans la chaine Contenu le groupe que tu viensn de traiter
Contenu = Right(Contenu, Longueur - Position - 1)
End If
' Test si position est à zéro,
' c'est à dire qu'il n'y a plus de séparateur dans la chaine Contenu,
' c'est donc que c'est la dernière instruction
Loop Until Position = 0
' Colle le dernier enregitrement
Cells(Ligne, 1).Value = Contenu
End Sub
Dans la proposition qui va suivre, le texte est de la forme NOM1 Prenom1 [ENTREPRISE]; NOM2 Prenom2 [ENTREPRISE]; ... est dans la cellule A1 de ta page. C'est ce que j'appelele dans le programme la chaine 'Contenu' :
Sub test()
' Initialisation de variables
Separateur = ";"
Position = 0
Ligne = 1
' Charge le contenu de la cellule A1 en mémoire dans la variable Contenu
Contenu = Range("A1").Value
Do
'Cherche la position du séparateur dans la chaine Contenu
Position = InStr(1, Contenu, Separateur)
Ligne = Ligne + 1
' Test, execute le contenu seulement si il trouve le séparateur
If Position <> 0 Then
' Groupe correspond à "NOM Prénom [Entreprise]
Groupe = Left(Contenu, Position - 1)
' Cette instruction colle Groupe dans la cellule qui a pour coordonées Ligne,1
Cells(Ligne, 1).Value = Groupe
' Mesure de la longueur de la chaine Contenu
Longueur = Len(Contenu)
' Supprime dans la chaine Contenu le groupe que tu viensn de traiter
Contenu = Right(Contenu, Longueur - Position - 1)
End If
' Test si position est à zéro,
' c'est à dire qu'il n'y a plus de séparateur dans la chaine Contenu,
' c'est donc que c'est la dernière instruction
Loop Until Position = 0
' Colle le dernier enregitrement
Cells(Ligne, 1).Value = Contenu
End Sub
Tartouffe
Messages postés
37
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
8 décembre 2011
4
22 août 2007 à 10:54
22 août 2007 à 10:54
merci beaucoup pour ce programme qui marche trés bien