VBA Macro pour rechercher et copier

vbajecherche Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   -
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


A voir également:

2 réponses

melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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
0
vbajecherche Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci mélanie. Le mot recherché peut être en colonne J mais il peut aussi etre en colonne Z, et dès lors qu'il est dans l'une ou l'autre des colonnes, alors oui je veux sélectionner la ligne pour la mettre dans l'onglet correspondant
Caroline
0
vbajecherche Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Et mes colonnes J et Z sont systématiquement renseignées, donc pas de colonne vide
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
alors comment sait-on qu'il doit prendre la colonne j ou Z ????
0
vbajecherche Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 ;)
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
ok alors ou se trouve le mot cherché ?
dans une cellule, faut le demander à l'utilisateur ?
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
elle l'a posé une dizaine de fois
0