VBA Macro pour rechercher et copier
Fermé
vbajecherche
Messages postés
9
Date d'inscription
jeudi 21 avril 2016
Statut
Membre
Dernière intervention
21 avril 2016
-
21 avril 2016 à 08:05
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 21 avril 2016 à 14:17
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 21 avril 2016 à 14:17
A voir également:
- VBA Macro pour rechercher et copier
- Rechercher ou entrer l'adresse - Guide
- Rechercher et remplacer word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Copier une vidéo youtube - Guide
- Macro word - Guide
2 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
21 avril 2016 à 08:40
21 avril 2016 à 08:40
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 21/04/2016 à 14:21
Modifié par michel_m le 21/04/2016 à 14:21
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
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
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
21 avril 2016 à 14:17
21 avril 2016 à 14:17
elle l'a posé une dizaine de fois
21 avril 2016 à 08:48
Caroline
21 avril 2016 à 08:49
21 avril 2016 à 09:03
21 avril 2016 à 09:09
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 ;)
21 avril 2016 à 09:11
dans une cellule, faut le demander à l'utilisateur ?