Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Macro vba dupliquer ligne selon conditions

nikki

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterais créer une macro (je ne m'y connais quasiment pas) me permettant de dupliquer des lignes de mon tableau selon certaines conditions.
Je vous mets un exemple, ce sera largement plus parlant.
J'espère que l'un d'entre vous pourra m'aider.
J'ai deux onglets me permettant de créer le 3ème qui lui sera mon tableau de résultat.
Merci à tous et bonne soirée.
 

Pièces jointes

  • test_couleurs.xlsx
    11 KB · Affichages: 16
Solution
bonjour nikki
cette macro fait ce que vous souhaitez.
un bouton dans la 1er feuille déclenche la macro
pour un test effacer la feuille résultat, déclencher la macro.
VB:
Sub ventilation()
Dim F1 As String
Dim F2 As String
Dim f3 As String
F1 = Sheets("Données").Name
F2 = Sheets("Critères").Name
f3 = Sheets("Résultat").Name
Sheets(f3).Range("A2:C20").ClearContents 'adapter la plage de cellules

Sheets(F2).Select
li_1 = Sheets(F1).Cells(36000, 1).End(xlUp).Row
li_2 = Sheets(F2).Cells(36000, 1).End(xlUp).Row
ligne = Sheets(f3).Cells(36000, 1).End(xlUp).Row + 1

For i_2 = 2 To li_2
For i_1 = 2 To li_1

  If Sheets(F2).Range("A" & i_2) = Sheets(F1).Range("A" & i_1) Then

   Sheets(f3).Cells(ligne, 1) = Sheets(F2).Cells(i_2, 2)...

GALOUGALOU

XLDnaute Accro
bonjour nikki
cette macro fait ce que vous souhaitez.
un bouton dans la 1er feuille déclenche la macro
pour un test effacer la feuille résultat, déclencher la macro.
VB:
Sub ventilation()
Dim F1 As String
Dim F2 As String
Dim f3 As String
F1 = Sheets("Données").Name
F2 = Sheets("Critères").Name
f3 = Sheets("Résultat").Name
Sheets(f3).Range("A2:C20").ClearContents 'adapter la plage de cellules

Sheets(F2).Select
li_1 = Sheets(F1).Cells(36000, 1).End(xlUp).Row
li_2 = Sheets(F2).Cells(36000, 1).End(xlUp).Row
ligne = Sheets(f3).Cells(36000, 1).End(xlUp).Row + 1

For i_2 = 2 To li_2
For i_1 = 2 To li_1

  If Sheets(F2).Range("A" & i_2) = Sheets(F1).Range("A" & i_1) Then

   Sheets(f3).Cells(ligne, 1) = Sheets(F2).Cells(i_2, 2)
    Sheets(f3).Cells(ligne, 2) = Sheets(F1).Cells(i_1, 2)
   Sheets(f3).Cells(ligne, 3) = Sheets(F1).Cells(i_1, 3)
 
ligne = ligne + 1
End If
Next
Next
MsgBox ("modifications effectuées")
Sheets(f3).Select
Range("A1").Select

End Sub
cordialement
galougalou
 

Pièces jointes

  • Copie de test_couleurs v1.xlsm
    19.3 KB · Affichages: 7
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…