Dupliquer les lignes en fonction du contenu d'une colonne

Bonjour!

Je ne suis pas experte d'Excel et malgré mes recherches dans les forums je ne trouve pas de solution...

Voici une liste d'articles d'articles scientifiques. Je voudrais dupliquer les lignes en fonction du nombre d'affiliations (colonneQ ) et n'avoir qu'une seule affiliation par ligne...

J'ai réussi à convertir les cellules de la colonne Q en plusieurs colonnes (avec la fonction Données/Convertir, le séparateur est le point virgule).

Et j'ai un début de macro, mais ça ne fonctionne pas :

Sub copieLig()

Dim lig As Long, pos As Long, ch As String, ok As Boolean

Application.ScreenUpdating = False

For lig = [k65536].End(xlUp).Row To 2 Step -1

ch = Cells(lig, 11): pos = 0: ok = False

While InStr(pos + 1, ch, ",")

pos = InStr(pos + 1, ch, ",")

Cells(lig, 11).Offset(0, 1) = Mid(ch, pos + 1, 4)

Cells(lig, 1).Resize(1, 3).Copy

Rows(lig + 1).Insert Shift:=xlDown

ok = True

Wend

Next lig

Application.ScreenUpdating = True

End Sub

Merci pour votre aide!!!

onsoir,

voici la macro adaptée pour dupliquer les lignes avec plusieurs affiliations (colonne Q).

sélectionner la bonne feuille avant exécution de la macro.

(à tester sur une copie, de préférence).

Sub copieLig()
Dim ta As Variant
Dim lig As Long
Application.ScreenUpdating = False
For lig = [k65536].End(xlUp).Row To 2 Step -1
ta = Split(Cells(lig, "Q"), ";")
If UBound(ta, 1) > 0 Then
For i = 0 To UBound(ta, 1)
 Rows(lig).Copy
 Rows(lig + 1).Insert Shift:=xlDown
 Cells(lig + 1, "Q") = ta(i)
Next i
Rows(lig).Delete
End If
Next lig
Application.ScreenUpdating = True
End Sub

ça fonctionne! merci beaucoup!

Rechercher des sujets similaires à "dupliquer lignes fonction contenu colonne"