OVH Cloud OVH Cloud

Pb avec macro "edition-rechercher"

2 réponses
Avatar
jerrykhann
Bonjour à tous,

un truc bizarre avec Excel 2002 (XP)
lorsque par le biais d'une macro je lance l'équivalent de la fonction
"edition - rechercher" (Ctrl+F) une boite de dialogue de recherche s'ouvre,
mais ce n'est pas exactement celle de Excel XP !
En fait c'est la même que celle de XL97 (càd une boite "simple" avec toutes
les options visibles par opposition à celle de XL XP qui comporte un bouton
"options" qui "étend" la boite et donnant accès à ces mêmes options)
Le problème pour moi n'est pas tant que cette boite soit légèrement
différente, mais plutôt (et c'est là qu'est le pb) que si d'aventure après
avoir fait cette recherche par macro je lance une recherche par
"edition-rechercher" Excel me plante ! (nia nia nia.. des erreurs... nia nia
nia... récupération... :-(
Quelqu'un a-t-il déjà rencontré ce problème ?
Merci de vos réponses

pour info le bout de macro :

Sub test2()
'
Application.Goto Reference:="COMMUNE"
'Application.Dialogs(xlDialogFormulaFind).Show Text, in_num(arg2
'DANS'), at_num(arg3 'Cell Entiere'), by_num(arg4 'Sens'), dir_num,
match_case(arg6 'respect casse'), match_byte
Application.Dialogs(xlDialogFormulaFind).Show arg1:="ASA de GA",
arg2:=1, arg3:=2, arg4:=2, arg6:=False
Cells(ActiveCell.Row, 1).Select
'
End Sub

2 réponses

Avatar
jerrykhann
Bonjour Michdenis et merci pour cette réponse...

Cependant la méthode "find" ne me convient pas tout à fait car le paramètre
"what" est obligatoire alors que je voudrais pouvoir intervenir dessus, en
effet, par défaut il prend la valeur d'une cellule de ma feuille mais je
dois avoir la possibilité d'intervenir dessus (changer des lettres etc...)
ce que me permet "xlDialogFormulaFind" puisque cela laisse à l'écran la
boite de dialogue ouverte (et cela me permet aussi de faire éventuellement
un "suivant" si la 1ère occurence trouvée ne me convient pas).
Certes, je pourrais contourner ce problème de "find" en demandant dans un
dialogbox ce que je veux avoir dans le paramètre "what" et lancer un find,
mais je trouve cela un peu 'lourd' (prévoir un bouton pour valider la
cellule trouvée et un autre pour un "findnext" - en cas de validation
continuer la macro, etc...)
Merci quand même pour ta réponse...

"michdenis" a écrit dans le message de
news:uVO$
Bonjour Jerry,


La méthode "Find" d'un objet "Range" comme la commande "Édition /
rechercher" retiennent les derniers paramètres que l'on a

défini lors de la dernière utilisation. Comme elles font toutes les 2
appellent à la même fonction, que tu utilises VBA ou la

commande "Remplacer" du menu "Édition", les paramètres sont retenus.

Lorsque tu appelles la commande Édition / remplacer, prend soin de définir
dans le bas de la fenêtre les paramètres de la

fonction en cochant les options nécessaires.

Je te suggère d'ouvrir la fenêtre VBE(visual basic editor) et de faire une
recheche sur la méthode "Find". On explique en

détail pourquoi il faut définir à chaque fois certains paramètres comme
"LookIn" , "LookAt " ...etc.

de la fonction.


Salutations!




"jerrykhann" a écrit dans le message de
news:%

Bonjour à tous,

un truc bizarre avec Excel 2002 (XP)
lorsque par le biais d'une macro je lance l'équivalent de la fonction
"edition - rechercher" (Ctrl+F) une boite de dialogue de recherche
s'ouvre,

mais ce n'est pas exactement celle de Excel XP !
En fait c'est la même que celle de XL97 (càd une boite "simple" avec
toutes

les options visibles par opposition à celle de XL XP qui comporte un
bouton

"options" qui "étend" la boite et donnant accès à ces mêmes options)
Le problème pour moi n'est pas tant que cette boite soit légèrement
différente, mais plutôt (et c'est là qu'est le pb) que si d'aventure après
avoir fait cette recherche par macro je lance une recherche par
"edition-rechercher" Excel me plante ! (nia nia nia.. des erreurs... nia
nia

nia... récupération... :-(
Quelqu'un a-t-il déjà rencontré ce problème ?
Merci de vos réponses

pour info le bout de macro :

Sub test2()
'
Application.Goto Reference:="COMMUNE"
'Application.Dialogs(xlDialogFormulaFind).Show Text, in_num(arg2
'DANS'), at_num(arg3 'Cell Entiere'), by_num(arg4 'Sens'), dir_num,
match_case(arg6 'respect casse'), match_byte
Application.Dialogs(xlDialogFormulaFind).Show arg1:="ASA de GA",
arg2:=1, arg3:=2, arg4:=2, arg6:úlse
Cells(ActiveCell.Row, 1).Select
'
End Sub





Avatar
jerrykhann
Bonjour Mich,

(avec un peu de retard, mais j'ai du faire quelques tests :-)
Mon problème ne venait pas du fait que j'avais un message d'Excel disant
qu'il n'avait pas trouvé, mais d'un bon gros plantage d'Excel lui-même (avec
récupération des feuilles ouvertes heureusement) ! :-(
donc je me suis fait une mise à jour office XP en SP2 pour voir ce que cela
donnait, et là miracle ! c'est PRESQUE bon :-)
je dis "presque", parce que XL XP ne plante plus comme un malpropre, mais
exécute bien mon "xlDialogFormulaFind" (toujours avec la boite de dialogue
style Excel 2000 et non pas celle de XP) autant de fois que j'en ai envie...
mais par contre il me "shunte" la fonction "Edition-rechercher" ! impossible
de la ravoir manuellement (ou par Ctrl+C ou même par Maj+F5) :-(
Sans doute un bug de microsoft, mais je n'ai rien trouvé sur le sujet dans
leur base de connaissances...

Amicalement.

"michdenis" a écrit dans le message de
news:
Bonjour jerrykhann,


Si tu lances ta macro avec ceci :

Application.Dialogs(xlDialogFormulaFind).Show arg1:="ASA de GA", _
arg2:=1, arg3:=2, arg4:=2, arg6:úlse
Cells(ActiveCell.Row, 1).Select

Tu dois au préalable sélectionner la feuille et la plage de cellules sur
laquelle la recherche s'effectuera. Cela enlèvera le

message d'excel à l'effet qu'il n'a rien trouvé.


Ta macro pourrais devenir cela : en supposant que tu veuilles faire une
recherche sur l'ensemble des données de la feuille 1

. sinon tu devras adapter le nom de la feuille et stipuler un objet
"Range" spécifique appartenant à cette feuille dans la

procédure.


With Worksheets("Feuil1")
.Select
.UsedRange.Select ' ou
'.Range("A1:G80") ' pour une plage spécifique
End With
Application.Dialogs(xlDialogFormulaFind).Show arg1:="ASA de GA", _
arg2:=1, arg3:=2, arg4:=2, arg6:úlse
Cells(ActiveCell.Row, 1).Select



Salutations!