Dupliquer des lignes d’un fichier Excel
Imaginons un fichier excel composé de lignes du type :
Col1 Col2 Col3 … Col10
Maison Adresse 1 Adresse 2 … Chambre, Salon, Cuisine
Appart Adresse 3 Adresse 4 …
Bateau Adresse 5 Adresse 6 … Salle des machines, Plage
Cet exemple est complètement inutile, mais c’est le principe qui compte : imaginons que nous souhaitons construire des requêtes d’insertion en base, qui permettent d’insérer dans notre exemple, 6 lignes :
Maison Adresse 1 Adresse 2 … Chambre
Maison Adresse 1 Adresse 2 … Salon
Maison Adresse 1 Adresse 2 … Cuisine
Appart Adresse 3 Adresse 4 …
Bateau Adresse 5 Adresse 6 … Salle des machines
Bateau Adresse 5 Adresse 6 … Plage
Voici la macro que j'ai trouvé sur internet et qui est supposer permettre de générer le tableau 2 à partir du tableau 1. Attention, on suppose que les lignes à dupliquer sont celles qui contiennent en colonne 10, des valeurs séparées par des virgules.
Sub gogoJonyGo()
Dim iligne As Integer
iligne = 2
While Cells(iligne, 1).Value <> "" And iligne < 1000
If InStr(1, Cells(iligne, 10).Value, ",") > 0 Then
ichar = InStr(1, Cells(iligne, 10).Value, ",")
sgauche = Trim(Left(Cells(iligne, 10).Value, ichar - 1))
sdroite = Trim(Right(Cells(iligne, 10).Value, Len(Cells(iligne, 10).Value) - ichar))
Rows(iligne + 1).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows(iligne).Select
Selection.Copy
Rows(iligne + 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Cells(iligne, 10) = sgauche
Cells(iligne + 1, 10) = sdroite
End If
iligne = iligne + 1
Wend
End Sub