Recherche d'une chaine de caractère dans une feuill
Résolu/Fermé
winflow
Messages postés
157
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
-
4 déc. 2013 à 13:59
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 4 déc. 2013 à 16:04
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 4 déc. 2013 à 16:04
A voir également:
- Recherche d'une chaine de caractère dans une feuill
- Caractère ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
3 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
Modifié par pijaku le 4/12/2013 à 14:07
Modifié par pijaku le 4/12/2013 à 14:07
Bonjour,
Si tu nous disait tout, tout de suite, pour changer...
1- que souhaites tu faire?
2- indiques nous ton code (ça tu l'as fait partiellement du moins)
3- le code erreur (ça c'est bon)
4- ta question
exemple de question explicite (qui ressemble à ta question, mais version détaillée) :
Cordialement,
Franck
Si tu nous disait tout, tout de suite, pour changer...
1- que souhaites tu faire?
2- indiques nous ton code (ça tu l'as fait partiellement du moins)
3- le code erreur (ça c'est bon)
4- ta question
exemple de question explicite (qui ressemble à ta question, mais version détaillée) :
Je dois chercher (et trouver) le mot "observations" dans les colonnes de B à G de ma feuille Feuil1. (1-)
J'ai écrit ce code : (2-)Column(2).Cells.Find("Observations").Row - 2Code qui me renvoie une erreur 91. (3-)
Qu'est ce qui cloche et que modifier (et comment modifier) pour qu'il me trouve le mot "observations"? (4-)
Pour info, dans mon test, le mot "observations" était situé dans la cellule E25, à l'intérieur de la phrase : "Notez ici vos observations"...
Cordialement,
Franck
winflow
Messages postés
157
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
Modifié par winflow le 4/12/2013 à 14:13
Modifié par winflow le 4/12/2013 à 14:13
1- Je dois chercher (et trouver) le mot "observations" dans les cellules fusionnées de B à G dans ma feuille Feuil1. Une fois ceci fait, je récupère la ligne correspondante je la soustrait à 2 afin de déterminer où se trouve la dernière ligne d'un tableau de données.
2-J'ai écrit ce code :
3-Code qui me renvoie une erreur 91.
4- Qu'est ce qui cloche et que modifier (et comment modifier) pour qu'il me trouve le mot "observations"?
C'est mieux ?
Cordialement
Winflow
2-J'ai écrit ce code :
Column(2).Cells.Find("Observations").Row - 2
3-Code qui me renvoie une erreur 91.
4- Qu'est ce qui cloche et que modifier (et comment modifier) pour qu'il me trouve le mot "observations"?
C'est mieux ?
Cordialement
Winflow
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
4 déc. 2013 à 14:26
4 déc. 2013 à 14:26
C'est mieux ?
Nettement.
Il y a plus d'infos, c'est plus clair, on va pouvoir t'apporter une réponse.
En fait, tu utilises la méthode Find pour faire une recherche.
Très bonne idée.
Encore faut il la décortiquer un peu pour voir l'erreur.
- 1ère erreur : Columns(2) avec un "s". (ça je suppose que c'est une erreur de recopie ici, sinon le message d'erreur eut été différent...)
- 2nde, si tu cherches Columns(2) (colonne B), il ne trouvera pas si Observations est écrit en colonne G...
Essaye ceci :
Sache tout de même, que quelque soit la manière dont tu écris ton code, la méthode find renverra une erreur si Observations n'est pas écrit ou est mal orthographié.
Il faut donc prendre les devants et ne pas chercher directement le numéro de ligne.
Le principe :
Au lieu de chercher le mot Observations, on va chercher l'objet Range qui éventuellement contient le mot Observations.
Exemple (adapté à ta situation) :
Reste à traiter de deux sujets :
1- Les options facultatives de la méthode Find :
=> Lookat : permet de chercher soit la totalité, soit dans une partie :
=> Lookin : permet de chercher dans les valeurs, dans les formules etc...
=> ...
2- est ce que Find va fonctionner avec des cellules fusionnées? Pour ça, tu testes et reviens nous dire...
Nettement.
Il y a plus d'infos, c'est plus clair, on va pouvoir t'apporter une réponse.
En fait, tu utilises la méthode Find pour faire une recherche.
Très bonne idée.
Encore faut il la décortiquer un peu pour voir l'erreur.
- 1ère erreur : Columns(2) avec un "s". (ça je suppose que c'est une erreur de recopie ici, sinon le message d'erreur eut été différent...)
- 2nde, si tu cherches Columns(2) (colonne B), il ne trouvera pas si Observations est écrit en colonne G...
Essaye ceci :
Columns("B:G").Cells.Find("Observations")
Sache tout de même, que quelque soit la manière dont tu écris ton code, la méthode find renverra une erreur si Observations n'est pas écrit ou est mal orthographié.
Il faut donc prendre les devants et ne pas chercher directement le numéro de ligne.
Le principe :
Au lieu de chercher le mot Observations, on va chercher l'objet Range qui éventuellement contient le mot Observations.
Exemple (adapté à ta situation) :
Dim monRange As Range Set monRange = Columns("B:G").Cells.Find("Observations") If Not monRange Is Nothing Then MsgBox "trouvé à la ligne : " & monRange.Row
Reste à traiter de deux sujets :
1- Les options facultatives de la méthode Find :
=> Lookat : permet de chercher soit la totalité, soit dans une partie :
Lookat:=xlwhole: va trouver Observations dans "Observations", mais pas dans "Notez ici vos observations"
Lookat:=xlpartva trouver Observations dans les deux cas.
=> Lookin : permet de chercher dans les valeurs, dans les formules etc...
=> ...
2- est ce que Find va fonctionner avec des cellules fusionnées? Pour ça, tu testes et reviens nous dire...
winflow
Messages postés
157
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
Modifié par winflow le 4/12/2013 à 14:33
Modifié par winflow le 4/12/2013 à 14:33
Columns("B:G").Cells.Find("Observations").Row
Cela fonctionne cependant j'ai plusieurs fois le mot "Observations" comment fait on pour récupérer la première occurence uniquement ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
4 déc. 2013 à 14:38
4 déc. 2013 à 14:38
Qu'appelles tu la première occurrence?
Supposons ceci :
Tu as le mot Observations en :
B22
C5
D2
Tu as donc deux cellules qui peuvent être considérées comme première occurrence :
B22 = 1ère en colonne
D2 = 1ère en ligne.
Tu souhaites quoi donc?
ps : j'ai fait un peu de ménage suite à ton édition, pour la clarté de cette discussion.
Supposons ceci :
Tu as le mot Observations en :
B22
C5
D2
Tu as donc deux cellules qui peuvent être considérées comme première occurrence :
B22 = 1ère en colonne
D2 = 1ère en ligne.
Tu souhaites quoi donc?
ps : j'ai fait un peu de ménage suite à ton édition, pour la clarté de cette discussion.
winflow
Messages postés
157
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
4 déc. 2013 à 14:43
4 déc. 2013 à 14:43
Le mot "Observations" se trouve actuellement en B23:G23, B48:G48 je veux récupérer uniquement celui en B23:G23
winflow
Messages postés
157
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
4 déc. 2013 à 15:39
4 déc. 2013 à 15:39
Problème résolu avec
grâce à la doc CCM https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel#le-code-vba-correspondant
Columns("B:G").Cells.Find("Observations", Cells(18, 2)).Row - 2
grâce à la doc CCM https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel#le-code-vba-correspondant
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
4 déc. 2013 à 14:20
4 déc. 2013 à 14:20
On ne peut pas faire de recherche sur des cellules fusionnées ... Il faut choisir entre : se servir d'Excel pour faire de belles présentations ou se servir d'Excel comme outil de gestion.
Sinon voir ici pour l'erreur 91
Sinon voir ici pour l'erreur 91
winflow
Messages postés
157
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
4 déc. 2013 à 14:23
4 déc. 2013 à 14:23
D'accord je vais prendre une autre référence