Besoin d'aide code simple en VBA excel, travail urgent
Résolu/Fermé
diabolo5495
Messages postés
109
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
10 février 2015
-
Modifié par diabolo5495 le 15/07/2013 à 09:02
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 juil. 2013 à 11:35
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 juil. 2013 à 11:35
A voir également:
- Besoin d'aide code simple en VBA excel, travail urgent
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Le code ascii en informatique - Guide
- Si et excel - Guide
- Code puk bloqué - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
15 juil. 2013 à 10:39
15 juil. 2013 à 10:39
Effectivement cela ne fonctionne pas du tout comme cela...
Regarde ce code :
!!! ATTENTION!!! Si le mot est trouvé en colonne A et/ou B, la macro plante!
Regarde ce code :
Sub test() Dim RngCherche As Range Dim mot_chercher As String, firstAddress As String Dim i As Integer i = 1 'le premier mot trouvé sera placé en A1 de la Feuil3 mot_chercher = "Fayer" Set RngCherche = Sheets("Feuil1").Cells.Find(mot_chercher, lookat:=xlWhole) If Not RngCherche Is Nothing Then firstAddress = RngCherche.Address Sheets("Feuil3").Range("A" & i) = RngCherche.Offset(0, -2).Value i = i + 1 Do Set RngCherche = Sheets("Feuil1").Cells.FindNext(RngCherche) Sheets("Feuil3").Range("A" & i) = RngCherche.Offset(0, -2).Value i = i + 1 Loop While Not RngCherche Is Nothing And RngCherche.Address <> firstAddress Else MsgBox "Mot non trouvé." End If Set RngCherche = Nothing End Sub
!!! ATTENTION!!! Si le mot est trouvé en colonne A et/ou B, la macro plante!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
15 juil. 2013 à 09:54
15 juil. 2013 à 09:54
Bonjour,
Pour chercher un mot dans une colonne, tu peux utiliser la méthode Find. Celle-ci va te renvoyer l'objet Range ou est situé ton mot, ou pas.
Comme ceci :
Complément d'information
Pour chercher un mot dans une colonne, tu peux utiliser la méthode Find. Celle-ci va te renvoyer l'objet Range ou est situé ton mot, ou pas.
Comme ceci :
Sub test() Dim RngCherche As Range Dim mot_chercher As String mot_chercher = "MonMot" Set RngCherche = Sheets("Feuil1").Columns(5).Cells.Find(mot_chercher, lookat:=xlwhole) If Not RngCherche Is Nothing Then 'traitement si le mot est trouvé Sheets("Feuil3").Range("A11") = RngCherche.Offset(0, -2).Value Else 'traitement si le mot n'est pas trouvé MsgBox "Mot non trouvé." End If Set RngCherche = Nothing End Sub
Complément d'information
diabolo5495
Messages postés
109
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
10 février 2015
27
15 juil. 2013 à 10:05
15 juil. 2013 à 10:05
Merci pour votre réponse, votre code correspond parfaitement à ce que je cherchais. Cependant, il me reste un problème que je n'avais pas résolu. Je dois réaliser cette action sur un tableau complet. Pour être plus précis, je dois dans un tableau trouvé le "MonMot" et à chaque fois qu'il apparait, copier donc la fameuse cellule dans un autre tableau. Le fait est que j'ai l'impression que l'action ne réalise qu'une seule fois. Faudrait-il utiliser une boucle ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
15 juil. 2013 à 10:14
15 juil. 2013 à 10:14
Non, pas de boucle, mais dans ce cas, il convient d'utiliser FindNext :
https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa195732(v=office.11)?redirectedfrom=MSDN
https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa195732(v=office.11)?redirectedfrom=MSDN
diabolo5495
Messages postés
109
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
10 février 2015
27
15 juil. 2013 à 10:27
15 juil. 2013 à 10:27
J'ai réaliser les modifications :
Cependant, il m'affiche une erreur de compilation. Aurais-je oublier quelque chose ?
Sub test() Dim RngCherche As Range Dim mot_chercher As String mot_chercher = "Fayer" Set RngCherche = Sheets("Feuil1").Columns(5).Cells.Find(mot_chercher, lookat:=xlWhole) If Not RngCherche Is Nothing Then Sheets("Feuil3").Range("A1") = RngCherche.Offset(0, -2).Value Set RngCherche = .FindNext(RngCherche) Else MsgBox "Mot non trouvé." End If Set RngCherche = Nothing End Sub
Cependant, il m'affiche une erreur de compilation. Aurais-je oublier quelque chose ?
15 juil. 2013 à 11:07
Bonne journée
15 juil. 2013 à 11:11
Bonne journée également,
A+
18 juil. 2013 à 11:15
Ne serait-ce pas ici :
Cordialement
18 juil. 2013 à 11:28
18 juil. 2013 à 11:32