XL 2013 Macro qui duplique les lignes d'un tableau en fonction d'un nombre précis

  • Initiateur de la discussion Initiateur de la discussion onyirimba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour,

Je souhaiterai obtenir une Macro/VBA qui créée un autre tableau (tableau ci dessous en partie basse) en dupliquant les lignes (du tableau de la partie haute) en fonction du nombre indiqué en colonne O du fichier Excel ci joint.
ex : si le chiffre est 3 en colonne O => il y aura 3 lignes dans le nouveau tableau etc...
J'ai joint un fichier Excel illustrant ma demande.

Merci de votre aide

Cordialement

1749658262571.png
 

Pièces jointes

Bonjour @onyirimba, le fil

@onyirimba
Test OK sur mon PC (Office 365)
NB: Test fait sur une feuille ne contenant qu'un seul tableau structuré
VB:
Sub Dupliquer_Lignes_Tableau()
Dim tbl As ListObject, derLg&, i&, j&, nbCopies%
Application.ScreenUpdating = False
Set tbl = ActiveSheet.ListObjects(1)
derLg = tbl.ListRows.Count
For i = derLg To 1 Step -1
    nbCopies = tbl.ListRows(i).Range.Cells(1, "O").Value
    If IsNumeric(nbCopies) And nbCopies > 1 Then
        For j = 1 To nbCopies - 1
            tbl.ListRows.Add (i + 1)
            tbl.ListRows(i).Range.Copy Destination:=tbl.ListRows(i + 1).Range
        Next j
    End If
Next i
End Sub
 
Bonjour @onyirimba, le fil

@onyirimba
Test OK sur mon PC (Office 365)
NB: Test fait sur une feuille ne contenant qu'un seul tableau structuré
VB:
Sub Dupliquer_Lignes_Tableau()
Dim tbl As ListObject, derLg&, i&, j&, nbCopies%
Application.ScreenUpdating = False
Set tbl = ActiveSheet.ListObjects(1)
derLg = tbl.ListRows.Count
For i = derLg To 1 Step -1
    nbCopies = tbl.ListRows(i).Range.Cells(1, "O").Value
    If IsNumeric(nbCopies) And nbCopies > 1 Then
        For j = 1 To nbCopies - 1
            tbl.ListRows.Add (i + 1)
            tbl.ListRows(i).Range.Copy Destination:=tbl.ListRows(i + 1).Range
        Next j
    End If
Next i
End Sub
Bonjour @Staple1600 ,
j'ai ce message d'erreur lorsque j'active la Macro sur la Feuil 1
quel es l'origine du blocage ?

Merci

1749667314168.png

1749667348442.png
 
Re

j'ai bien précisé ceci dans mon premier message, non ?
Staple à dit:
NB: Test fait sur une feuille ne contenant qu'un seul tableau structuré
Si il y a plusieurs tableaux, il faut modifier le code VBA en conséquence
En nommant le tableau en dur dans le code par exemple

PS: En tout logique, ce devrait être le message#2 la solution, non ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
223
Retour