VBA Macro pour rechercher et copier
vbajecherche
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
Bonjour,
j'ai un gros fichier excel et souhaiterai réaliser une macro, mais je sèche
Voici ce que je cherche à faire :
- chaque ligne de mon onglet DEPART contenant le mot TOTO en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé TOTO
- chaque ligne de mon onglet DEPART contenant le mot SOLEIL en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé SOLEIL
- chaque ligne de mon onglet DEPART contenant l'expression LES VACANCES en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé LES VACANCES
- etc, etc.
Qui peut m'aider à créer ma macro ??
Un grand merci par avance,
Caroline
j'ai un gros fichier excel et souhaiterai réaliser une macro, mais je sèche
Voici ce que je cherche à faire :
- chaque ligne de mon onglet DEPART contenant le mot TOTO en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé TOTO
- chaque ligne de mon onglet DEPART contenant le mot SOLEIL en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé SOLEIL
- chaque ligne de mon onglet DEPART contenant l'expression LES VACANCES en colonne J ou Z soit copiée / collée dans un nouvel onglet appelé LES VACANCES
- etc, etc.
Qui peut m'aider à créer ma macro ??
Un grand merci par avance,
Caroline
2 réponses
-
bonjour,
Lorsque l'on demande ce genre de choses, il faut être extrêmement précis.
Pour le nom est en j ou en Z ??
le mieux est de mettre une copie le fichier en cjoint.com
en attendant voici le bout de code qu'il faudra peut être réadapté car j'ai pris 2 hypothèses :
- ta colonne A est oujours renseigné
- Si la colonne J est vide, alors on prned la valeur dans Z
Sub x()
i = 2
'la macro tournera jusqu'à ce que la colonne A trouve une cellule vide
Do While Sheets("DEPART").Cells(i, 1) <> ""
'si la colonne j est vide, on cherche le nom dans la colonne Z
If Sheets("DEPART").Cells(i, 10) <> "" Then
nomfeuille = Sheets("DEPART").Cells(i, 10)
Else
nomfeuille = Sheets("DEPART").Cells(i, 26)
End If
' on va regarder se la feuille existe déjà pour ajouter la ligne sur la feuille
trouvve = 0
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = nomfeuille Then
lignefeuille = 2
Do While Sheets(feuille).Cells(lignefeuille, 1) <> ""
lignefeuille = lignefeuille + 1
Loop
Sheets("DEPART").Rows(i).Copy Sheets(feuille).Cells(lignefeuille, 1)
trouve = 1
End If
Next
'si la feuille n'existe pas, on la créé
If trouve = 0 Then
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = Sheets("DEPART").Cells(i, 1)
Sheets("DEPART").Rows(1).Copy Sheets(feuille).Cells(1, 1)
Sheets("DEPART").Rows(i).Copy Sheets(feuille).Cells(2, 1)
End If
i = i + 1
Loop
End Sub-
-
-
-
Si dans la ligne 1 le mot recherché TOTO apparait dans la colonne J ou s'il apparait dans la colonne Z, alors copier l'ensemble de la ligne dans un autre onglet
Si dans la ligne Z, le mot recherché TOTO apparait dans la colonne J ou s'il apparait dans la colonne Z, alors copier l'ensemble de la ligne dans un autre onglet
...
J'ai déjà créé tous mes onglets ;) -
-
-
Cross posting sauvage
https://www.developpez.net/forums/d1580987/logiciels/microsoft-office/excel/macros-vba-excel/copie-colle-lignes-sous-condition/
https://forum.excel-pratique.com/viewtopic.php?forum_uri=excel&t=77172&start=
Dans combien de forums cette question a t’elle été posée ?‼
Michel