[VBA]Macro excel
Benkill
Messages postés
2
Statut
Membre
-
Benkill Messages postés 2 Statut Membre -
Benkill Messages postés 2 Statut Membre -
Bonjour,
J'ai besoin de réaliser une macro excel spécifique en VBA mais il me manque pas mal de base c'est pourquoi j'ai besoin de votre aide :)
Mon fichier a uniquement la première colonne de remplie.
Je cherche a faire une macro qui parcour cette colonne jusqua trouvé une ligne contenant "commentaires :" et qui fait une concatenation des ligne se trouvant en dessous jusqu'a la prochaine ligne vide.
Voici en gros l'algorithme:
ligne = 0
Repeter
ligne ++
Si ligne = "commentaires :"
Repeter
ligne ++
concatener ligne avec ligne+1
Jusqu'a ligne = ""
FinSi
Jusqu'a fin du fichier
J'ai des base en VB.NET mais je ne connais absolument pas les syntaxes VBA
Si vous connaisser un petit script réalisant cette action ça m'aiderais bien.
Merci.
J'ai besoin de réaliser une macro excel spécifique en VBA mais il me manque pas mal de base c'est pourquoi j'ai besoin de votre aide :)
Mon fichier a uniquement la première colonne de remplie.
Je cherche a faire une macro qui parcour cette colonne jusqua trouvé une ligne contenant "commentaires :" et qui fait une concatenation des ligne se trouvant en dessous jusqu'a la prochaine ligne vide.
Voici en gros l'algorithme:
ligne = 0
Repeter
ligne ++
Si ligne = "commentaires :"
Repeter
ligne ++
concatener ligne avec ligne+1
Jusqu'a ligne = ""
FinSi
Jusqu'a fin du fichier
J'ai des base en VB.NET mais je ne connais absolument pas les syntaxes VBA
Si vous connaisser un petit script réalisant cette action ça m'aiderais bien.
Merci.
2 réponses
-
Sub commentaires() fin = Range("a65535").End(xlUp).Row 'trouve la derniere ligne ecrite de la colonne For t = 1 To fin If Cells(t, 1).Value = "commentaire" Then ' test la valeur si commentaire t = t + 1 't s'incremente de 1 While Cells(t, 1) <> "" 'tant que la valeur de la cellul dans la colonne n'est pas vide mot = mot & Cells(t, 1).Value 'mot prend sa valeur plus la valeur suivante concatenation brut sans espace une cellule contenant le chr$(32) n'est pas vide t = t + 1 'on passe a la valeur suivant Wend Range("b" & t - 1).Value = mot 'une cellul vide on ecrit en colonne b le commentaire sur la dernier ligne des commentaire mot = "" 'on vide mot End If ' fin de test Next t ' on boucle juqu'a la valeur fin End Sub
ceci et a mettre dans un module
Alt F11 clic droit sur le classeur insertion module
coredialement
G.David -
Merci pour ton script sa marche nikel :)
Mais juste une petite modification, si on ne cherche pas une cellule contenant "commentaire" mais commencant par "commentaire", est ce que c'est réalisable ? (en prenant cette ligne en compte dans la concatenation)