Macro copie ligne par rapport a une donnée dans une colonne
nico006
Messages postés
2
Statut
Membre
-
nico006 Messages postés 2 Statut Membre -
nico006 Messages postés 2 Statut Membre -
Voila
j'ai un fichier excel avec 4 onglet
dans le 1er onglet qui se nomme Base j'ai 10 colonne qui m'intéresse
"S" "F" "C" "Sa" "Bo" "Si1" "Si2" "Civ" "Ti1" "Ti2"
j'ai a la suite 3 autre onglet qui se nomme "Bo" "BoSa" "BoSaC"
ce que je souhaiterai c'est implémenté la ligne correspondant du fichier de basse vers l'un de ces 3 onglets.
ex:
si dans le fichier de base la ligne 3 contient des données dans les colonnes "Sa" et "Bo"
la ligne 3 devra se copier dans l'onglet "BoSa"
si dans le fichier de base la ligne 15 contient des données dans les colonnes "Bo"
la ligne 15 devra se copier dans l'onglet "Bo"
si dans le fichier de base la ligne 21 contient des données dans les colonnes "Bo", "Sa" et "C"
la ligne 21 devra se copier dans l'onglet "BoSaC"
Voila je galère a mort parce je comprend pas tout sur les macro
Si vous avez une idée
merci tt le monde
j'ai un fichier excel avec 4 onglet
dans le 1er onglet qui se nomme Base j'ai 10 colonne qui m'intéresse
"S" "F" "C" "Sa" "Bo" "Si1" "Si2" "Civ" "Ti1" "Ti2"
j'ai a la suite 3 autre onglet qui se nomme "Bo" "BoSa" "BoSaC"
ce que je souhaiterai c'est implémenté la ligne correspondant du fichier de basse vers l'un de ces 3 onglets.
ex:
si dans le fichier de base la ligne 3 contient des données dans les colonnes "Sa" et "Bo"
la ligne 3 devra se copier dans l'onglet "BoSa"
si dans le fichier de base la ligne 15 contient des données dans les colonnes "Bo"
la ligne 15 devra se copier dans l'onglet "Bo"
si dans le fichier de base la ligne 21 contient des données dans les colonnes "Bo", "Sa" et "C"
la ligne 21 devra se copier dans l'onglet "BoSaC"
Voila je galère a mort parce je comprend pas tout sur les macro
Si vous avez une idée
merci tt le monde
1 réponse
-
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 :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