Macro copie ligne par rapport a une donnée dans une colonne
Fermé
nico006
Messages postés
2
Date d'inscription
jeudi 5 mars 2015
Statut
Membre
Dernière intervention
5 mars 2015
-
5 mars 2015 à 12:26
nico006 Messages postés 2 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 5 mars 2015 - 5 mars 2015 à 14:51
nico006 Messages postés 2 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 5 mars 2015 - 5 mars 2015 à 14:51
A voir également:
- Macro copie ligne par rapport a une donnée dans une colonne
- Déplacer une colonne excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Trier une colonne excel - Guide
- Copie cachée - Guide
- Formule somme excel colonne - Guide
1 réponse
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 741
5 mars 2015 à 14:30
5 mars 2015 à 14:30
Bonjour
En supposant les colonnes de Base de A à J et uyn ligne de titres dans les autres feuilles, style de macro possible, à adapter au besoin :
Cdlmnt
En supposant les colonnes de Base de A à J et uyn ligne de titres dans les autres feuilles, style de macro possible, à adapter au besoin :
Sub recopie() Dim Ligne As Long Dim Ligne2 As Long 'dernière ligne remplie en colonne 1 de base Ligne = Sheets("Base").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row 'boucle sur les lignes 2 à derniere de base For n = 2 To Ligne copier = 0 ' si 3 données feuille=BoSac et ligne2=première ligne vide de BoSaC If Sheets("Base").Range("C" & n) <> "" And Sheets("Base").Range("D" & n) <> "" And Sheets("Base").Range("E" & n) <> "" Then feuille = "BoSaC" Ligne2 = Sheets(feuille).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 copier = 1 ' sinon si 2 données feuille=BoSa et ligne2=première ligne vide de BoSa ElseIf Sheets("Base").Range("C" & n) = "" And Sheets("Base").Range("D" & n) <> "" And Sheets("Base").Range("E" & n) <> "" Then feuille = "BoSa" Ligne2 = Sheets(feuille).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 copier = 1 ' sinon si 1 donnée feuille=BoSac et ligne2=première ligne vide de Bo ElseIf Sheets("Base").Range("C" & n) = "" And Sheets("Base").Range("D" & n) = "" And Sheets("Base").Range("E" & n) <> "" Then feuille = "Bo" Ligne2 = Sheets(feuille).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 copier = 1 End If 'si copier =1 (3, 2 ou 1 colonnes remplies) If copier = 1 Then ' selection ligne dans Base et copie de la ligne Sheets("Base").Select Range(n & ":" & n).Select Selection.Copy 'selecttion ligne en feuille concernée etcollage de la ligne Sheets(feuille).Select Range("A" & Ligne2).Select ActiveSheet.Paste End If Next n End Sub
Cdlmnt
5 mars 2015 à 14:51