Insérer autant de ligne qu'il y a d'info dans une cellule

Fermé
Yazsou Messages postés 4 Date d'inscription mercredi 22 octobre 2014 Statut Membre Dernière intervention 23 octobre 2014 - 22 oct. 2014 à 10:44
Yazsou Messages postés 4 Date d'inscription mercredi 22 octobre 2014 Statut Membre Dernière intervention 23 octobre 2014 - 23 oct. 2014 à 11:18
Bonjour la communauté,

J'ai besoin d'aide sur un fichier excel comme vous pouvez vous en douter..
Sur mon tableau il y des centaines de lignes, sur chaque ligne dans la cellule c# il y une ou plusieurs informations séparées par un point virgule (ex : 3025210;302520;3025230;3026110;3026120;3026130 )

J'aimerais quand c'est le cas, pouvoir créer juste en dessous de la ligne mère autant de ligne qu'il y a d'information avec ces codes.

Je ne sais pas si c'est clair, en tout cas moi je ne sais pas vraiment comment faire..

Merci
A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
22 oct. 2014 à 11:20
Bonjour,

Code VBA a mettre dans un module

Sub Insert_x_Lignes()
Dim TInfos

With Worksheets("feuil1")
'derniere cellule non vide colonne A
derlig = .Range("A" & Rows.Count).End(xlUp).Row
'boucle de recherche
For lig = derlig To 1 Step -1
'mise en tableau des infos cellule avec ";" en separateur
TInfos = Split(.Range("A" & lig), ";")
'dimension du tableau
Nb_Infos = UBound(TInfos)
'si >0
If Nb_Infos > 0 Then
'insertion lignes fonction longueur tableau
.Rows(lig + 1 & ":" & lig + Nb_Infos + 1).Insert
'copie des infos dans les cellules inserees
.Range("A" & lig + 1).Resize(Nb_Infos + 1) = Application.Transpose(TInfos)
End If
Next lig
End With
End Sub
1
Yazsou Messages postés 4 Date d'inscription mercredi 22 octobre 2014 Statut Membre Dernière intervention 23 octobre 2014
22 oct. 2014 à 11:44
Merci beaucoup pour cette réponse rapide, je vais essayer ça.

:)
0
Yazsou Messages postés 4 Date d'inscription mercredi 22 octobre 2014 Statut Membre Dernière intervention 23 octobre 2014
23 oct. 2014 à 11:02
Bonjour F894009,

Le code marche très bien, merci encore. Serait-il possible de modifier pour que les lignes créées à partir de la ligne mère gardet les informations des deux premières cases ?

Chaque ligne comporte 3 cellules. Les informations à dissocier sont dans la cellules C. J'aimerais que le code VBA en créant les nouvelles lignes garde quand même les valeurs de A et B pour chaque ligne qu'il créera (et eventuellement me supprime la ligne mère)

Merci pour votre aide
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
23 oct. 2014 à 11:14
Bonjour,

c'est fait

Sub Insert_x_Lignes()
Dim TInfos

With Worksheets("feuil1")
'derniere cellule non vide colonne A
derlig = .Range("C" & Rows.Count).End(xlUp).Row
'boucle de recherche
For lig = derlig To 1 Step -1
'mise en tableau des infos cellule avec ";" en separateur
TInfos = Split(.Range("C" & lig), ";")
'dimension du tableau
Nb_Infos = UBound(TInfos)
'si >0
If Nb_Infos > 0 Then
'insertion lignes fonction longueur tableau
.Rows(lig + 1 & ":" & lig + Nb_Infos + 1).Insert
'copie des infos dans les cellules inserees
.Range("A" & lig + 1).Resize(Nb_Infos + 1) = .Range("A" & lig)
.Range("B" & lig + 1).Resize(Nb_Infos + 1) = .Range("B" & lig)
.Range("C" & lig + 1).Resize(Nb_Infos + 1) = Application.Transpose(TInfos)
.Rows(lig & ":" & lig).Delete
End If
Next lig
End With
End Sub
0
Yazsou Messages postés 4 Date d'inscription mercredi 22 octobre 2014 Statut Membre Dernière intervention 23 octobre 2014
23 oct. 2014 à 11:18
Je vais suivre des cours de VBA et excel cette année, j'espère avoir votre niveau. Merci beaucoup
0