Faire une macro avec Excel
bisu325
-
gbinforme Messages postés 14930 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14930 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaiterai faire la macro suivante, mais je n'y arrive pas :
- J'ai une colonne et dans chaque cellule de cette colonne il y a du texte avec 4 lignes par cellules, j'aimerai mettre chaque ligne de chaque cellule dans d'autres colonnes : ligne1 colonne A, ligne 2 colonne B...
J'enregistre donc ma macro en faisant des copiés collés, mais quand je veux l'exécuter, rien n'est reproduit...
Peut-être faut-il passer par word avec des séparateurs de champs? (mais je ne sais pas comment faire)
Pouvez-vous me dire comment faire SVP?
Merci
Je souhaiterai faire la macro suivante, mais je n'y arrive pas :
- J'ai une colonne et dans chaque cellule de cette colonne il y a du texte avec 4 lignes par cellules, j'aimerai mettre chaque ligne de chaque cellule dans d'autres colonnes : ligne1 colonne A, ligne 2 colonne B...
J'enregistre donc ma macro en faisant des copiés collés, mais quand je veux l'exécuter, rien n'est reproduit...
Peut-être faut-il passer par word avec des séparateurs de champs? (mais je ne sais pas comment faire)
Pouvez-vous me dire comment faire SVP?
Merci
2 réponses
-
bonjour
c'est peut-^tre possible sans macro avec la fonction "convertir" mais
il faudrait voir comment est organisé la cellule avec ses 4 lignes
sinon on passera par vba
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
-
bonjour
Une macro qui doit faire ce que tu veux.
La colonne avec le texte est la colonne "A" et il est ventilé sur les colonnes B (2) et suivantes. Tu peux bien sûr adapter les colonnes en fonction de ton classeur.
Public Sub ventiler() Dim lig As Long, col As Integer, deb As Integer, pos As Integer For lig = 1 To Cells(Rows(1).Cells.Count, 1).End(xlUp).Row col = 2 'colonne B début ventilation deb = 1: pos = 1 pos = InStr(deb, Cells(lig, "A"), Chr(10)) While pos > 0 Cells(lig, col).Value = Mid(Cells(lig, "A").Value, deb, pos - deb) col = col + 1: deb = pos + 1 pos = InStr(deb, Cells(lig, "A"), Chr(10)) Wend Cells(lig, col).Value = Mid(Cells(lig, "A").Value, deb) Next lig End Sub