Boucle dans une macro ?
Bonsoir à Tous,
J'ai bidouillé une macro à partir d'une macro de Yvouille mais elle est vraiment tres rudimentaire.
Mon savoir en VBA est tres limite mais je pense que peut etre une boucle ferait l'affaire. A vous de voir.
[codeSub Separation()
Dim Position_Chr10 As Integer, Longueur As Integer, Début_texte As String, Fin_texte As String
Range("a1:a20").ClearContents
'Range("c1:c20").ClearContents
Sheets("Cours").Range("A2").FormulaLocal = "=RECHERCHEV($B2;'recettes'!b2:p700;11;0)"
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A2"))
Longueur = Len(Range("A2"))
Début_texte = Mid(Range("A2").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A2").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(2, 1).FormulaR1C1 = Début_texte
Cells(3, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A3"))
Longueur = Len(Range("A3"))
Début_texte = Mid(Range("A3").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A3").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(3, 1).FormulaR1C1 = Début_texte
Cells(4, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A4"))
Longueur = Len(Range("A4"))
Début_texte = Mid(Range("A4").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A4").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(4, 1).FormulaR1C1 = Début_texte
Cells(5, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A5"))
Longueur = Len(Range("A5"))
Début_texte = Mid(Range("A5").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A5").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(5, 1).FormulaR1C1 = Début_texte
Cells(6, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A6"))
Longueur = Len(Range("A6"))
Début_texte = Mid(Range("A6").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A6").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(6, 1).FormulaR1C1 = Début_texte
Cells(7, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A7"))
Longueur = Len(Range("A7"))
Début_texte = Mid(Range("A7").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A7").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(7, 1).FormulaR1C1 = Début_texte
Cells(8, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A8"))
Longueur = Len(Range("A8"))
Début_texte = Mid(Range("A8").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A8").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(8, 1).FormulaR1C1 = Début_texte
Cells(9, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A9"))
Longueur = Len(Range("A9"))
Début_texte = Mid(Range("A9").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A9").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(9, 1).FormulaR1C1 = Début_texte
Cells(10, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A10"))
Longueur = Len(Range("A10"))
Début_texte = Mid(Range("A10").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A10").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(10, 1).FormulaR1C1 = Début_texte
Cells(11, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A11"))
Longueur = Len(Range("A11"))
Début_texte = Mid(Range("A11").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A11").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(11, 1).FormulaR1C1 = Début_texte
Cells(12, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A12"))
Longueur = Len(Range("A12"))
Début_texte = Mid(Range("A12").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A12").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(12, 1).FormulaR1C1 = Début_texte
Cells(13, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A13"))
Longueur = Len(Range("A13"))
Début_texte = Mid(Range("A13").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A13").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(13, 1).FormulaR1C1 = Début_texte
Cells(14, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A14"))
Longueur = Len(Range("A14"))
Début_texte = Mid(Range("A14").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A14").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(14, 1).FormulaR1C1 = Début_texte
Cells(15, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A15"))
Longueur = Len(Range("A15"))
Début_texte = Mid(Range("A15").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A15").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(15, 1).FormulaR1C1 = Début_texte
Cells(16, 1).FormulaR1C1 = Fin_texte
Position_Chr10 = WorksheetFunction.Search(Chr(10), Range("A16"))
Longueur = Len(Range("A16"))
Début_texte = Mid(Range("A16").Text, 1, Position_Chr10 - 1)
Fin_texte = Mid(Range("A16").Text, Position_Chr10 + 1, Longueur - Position_Chr10)
Cells(16, 1).FormulaR1C1 = Début_texte
Cells(17, 1).FormulaR1C1 = Fin_texte
End Sub][/code]
Je vous remercie d'avance pour votre aide.
Bonjour
Bonjour à Tous,
Je joins un fichier exemple pour mieux illustrer ma macro.
Bien à vous Tous
Bonjour
Voila une macro avec Split A voir
Sub Test()
MaVar = Range("A2")
FullName = Split(MaVar, Chr(10))
For L = 0 To UBound(FullName)
Cells(L + 2, 1).Value = FullName(L)
Next L
End Sub
A+
Maurice
Bonjour Archer,
Merci beaucoup pour ta solution.
Elle semble bien correspondre à ce que je veux.
Bonne journée à Toi et à toute l'équipe de ce forum
Bonjour Archer,
Je te remercie encore pour cette réponse très élégante.
je dois appliquer ta macro à plusieurs cellules de la colonne "A".
Est ce qu'il y a moyen d'avoir une seule macro plutôt que de raccorder plusieurs fois la même macro
voici le code de ce que j'ai fait avec ta macro:
Sheets("Cours").Range("A2").FormulaLocal = "=RECHERCHEV($B2;'recettes'!b2:p700;11;0)"
MaVar = Range("A2")
FullName = split(MaVar, Chr(10))
For L = 0 To UBound(FullName)
Cells(L + 2, 1).Value = FullName(L)
Next L
Sheets("Cours").Range("A25").FormulaLocal = "=RECHERCHEV($B3;'recettes'!b2:p700;11;0)"
MaVar = Range("A25")
FullName = split(MaVar, Chr(10))
For L = 0 To UBound(FullName)
Cells(L + 25, 1).Value = FullName(L)
Next L
Sheets("Cours").Range("A50").FormulaLocal = "=RECHERCHEV($B4;'recettes'!b2:p700;11;0)"
MaVar = Range("A50")
FullName = split(MaVar, Chr(10))
For L = 0 To UBound(FullName)
Cells(L + 50, 1).Value = FullName(L)
Next L
Sheets("Cours").Range("A75").FormulaLocal = "=RECHERCHEV($B5;'recettes'!b2:p700;11;0)"
MaVar = Range("A75")
FullName = split(MaVar, Chr(10))
For L = 0 To UBound(FullName)
Cells(L + 75, 1).Value = FullName(L)
Next L
Sheets("Cours").Range("A100").FormulaLocal = "=RECHERCHEV($B6;'recettes'!b2:p700;11;0)"
MaVar = Range("A100")
FullName = split(MaVar, Chr(10))
For L = 0 To UBound(FullName)
Cells(L + 100, 1).Value = FullName(L)
Next L
Je te remercie par avance pour ton aide.
Bonjour
donne au moins un modèle de ton fichier pour voir se que je peux faire
A+
Maurice
Bonsoir Archer,
Tout d'abord merci ^pour ton aide
Voici mon fichier exemple avec la macro que j'ai essayé de faire mais qui ne va pas.
Bien Cordialement