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
A voir également:
- Macro copie ligne par rapport a une donnée dans une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Partager photos en ligne - Guide
- Copie caché - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
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 :
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
nico006
Messages postés
2
Statut
Membre
Super je te remercie je vais tester ca