Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Syntaxe différente avec Office 2019 ???????

6 réponses
Avatar
ThierryP
Bonjour le forum,

Depuis plusieurs années, j'utilise cette syntaxe dans une macro Outlook pour ouvrir un fichier Excel, trouver une valeur dans une colonne précise,et faire un traitement dans le fichier Excel.
'------------------------------
Set xlApp = CreateObject("Excel.Application")
'xlApp.Visible = True
xlApp.EnableEvents = False
Set XlClasseur = xlApp.Workbooks.Open(Chemin_Commandes & Fichier_Commandes)
XlClasseur.Worksheets("Cdes").Activate
'On Error GoTo erreur
XlClasseur.Worksheets("Cdes").Range("S:S").Select
Selection.Find(What:=Num_PO, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select
'---------------------------------
Tout ceci fonctionnait très bien avec Office 2013.... et rien ne va plus depuis que je suis passé Í  Office 2019.
Si une Í¢me charitable voulait bien m'expliquer ce qui vexe Office 2019, cela m'éviterait de m'arracher les cheveux, il n'y en a plus tant !!!
Merci d'avance,

ThierryP

6 réponses

Avatar
MichD
Le 08/11/21 Í  09:17, ThierryP a écrit :
Bonjour le forum,
Depuis plusieurs années, j'utilise cette syntaxe dans une macro Outlook pour ouvrir un fichier Excel, trouver une valeur dans une colonne précise,et faire un traitement dans le fichier Excel.
'------------------------------
Set xlApp = CreateObject("Excel.Application")
'xlApp.Visible = True
xlApp.EnableEvents = False
Set XlClasseur = xlApp.Workbooks.Open(Chemin_Commandes & Fichier_Commandes)
XlClasseur.Worksheets("Cdes").Activate
'On Error GoTo erreur
XlClasseur.Worksheets("Cdes").Range("S:S").Select
Selection.Find(What:=Num_PO, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Select
'---------------------------------
Tout ceci fonctionnait très bien avec Office 2013.... et rien ne va plus depuis que je suis passé Í  Office 2019.
Si une Í¢me charitable voulait bien m'expliquer ce qui vexe Office 2019, cela m'éviterait de m'arracher les cheveux, il n'y en a plus tant !!!
Merci d'avance,
ThierryP

Bonjour,
Je n'ai pas cette version, le code de la procédure semble bien, as-tu un
message d'erreur, si oui, lequel?
Est-ce que dans la fenêtre VBA d'Outlook - Outils - références, tu as
coché la référence suivante: "Microsoft Excel 17.0 Object Library" ?
Sans cette référence, il n'aime probablement pas les constantes
qu'utilise la méthode "Find".
Pour en être sur, désactive la gestion d'erreur de la procédure et fais
un test en lui demandant de trouver une valeur qui existe dans la plage
de cellules.
MichD
Avatar
Geo
Bonjour
il faudrait dire ce qui se passe, sinon on ne sait pas o͹ chercher.
si vous avez changé d'Office, peut-être n'avez vous pas les bonnes
références (Outils / References) dans le VBA Outlook pour accéder Í 
Excel.
Avatar
ThierryP
Le lundi 8 novembre 2021 Í  15:47:37 UTC+1, Geo a écrit :
Bonjour
il faudrait dire ce qui se passe, sinon on ne sait pas o͹ chercher.
si vous avez changé d'Office, peut-être n'avez vous pas les bonnes
références (Outils / References) dans le VBA Outlook pour accéder Í 
Excel.

Bonjour Geo,
Oui, j'ai posté un peu vite.... Le message dit : l'indice n'appartient pa Í  la sélection.
Je vais vérifier !
Cordialement,
ThierryP
Avatar
Geo
De ThierryP, le 08/11/2021 :
Le message dit : l'indice n'appartient pa Í 
la sélection.

C'est vrai que ce n'est pas explicite pour un pb de référence.
Je confirme que c'est bien 16 comme référence.
Il semble bien que les versions 19 et 21 ne soient que des habillages
commerciaux.
Avatar
Michel__D
Le 08/11/2021 Í  16:51, ThierryP a écrit :
Le lundi 8 novembre 2021 Í  15:44:14 UTC+1, MichD a écrit :
Le 08/11/21 Í  09:17, ThierryP a écrit :
Bonjour le forum,
Depuis plusieurs années, j'utilise cette syntaxe dans une macro Outlook pour ouvrir un fichier Excel, trouver une valeur dans une colonne précise,et faire un traitement dans le fichier Excel.
'------------------------------
Set xlApp = CreateObject("Excel.Application")
'xlApp.Visible = True
xlApp.EnableEvents = False
Set XlClasseur = xlApp.Workbooks.Open(Chemin_Commandes & Fichier_Commandes)
XlClasseur.Worksheets("Cdes").Activate
'On Error GoTo erreur
XlClasseur.Worksheets("Cdes").Range("S:S").Select
Selection.Find(What:=Num_PO, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Select
'---------------------------------
Tout ceci fonctionnait très bien avec Office 2013.... et rien ne va plus depuis que je suis passé Í  Office 2019.
Si une Í¢me charitable voulait bien m'expliquer ce qui vexe Office 2019, cela m'éviterait de m'arracher les cheveux, il n'y en a plus tant !!!
Merci d'avance,
ThierryP

Bonjour,
Je n'ai pas cette version, le code de la procédure semble bien, as-tu un
message d'erreur, si oui, lequel?
Est-ce que dans la fenêtre VBA d'Outlook - Outils - références, tu as
coché la référence suivante: "Microsoft Excel 17.0 Object Library" ?
Sans cette référence, il n'aime probablement pas les constantes
qu'utilise la méthode "Find".
Pour en être sur, désactive la gestion d'erreur de la procédure et fais
un test en lui demandant de trouver une valeur qui existe dans la plage
de cellules.
MichD

Bonjour Denis,
Effectivement, Géo m'a fait la même remarque !
Je viens de vérifier, et effectivement et effectivement la référence "Microsoft Excel 16.0 Object Library" était décochée (je n'ai de version 17.0), je ne sais pas trop pourquoi !
Du coup, je l'ai rajouté, et tout va bien !
Toujours aussi efficace Í  ce que je vois !
Un grand merci pour le coup de main !
ThierryP

Si tu ne tiens pas Í  cocher la référence "Microsoft Excel 16. Object Library" il
suffit de mettre la valeur correspondant aux variables utilisées.
Avatar
ThierryP
Le lundi 8 novembre 2021 Í  16:55:14 UTC+1, Geo a écrit :
De ThierryP, le 08/11/2021 :
Le message dit : l'indice n'appartient pa Í 
la sélection.
C'est vrai que ce n'est pas explicite pour un pb de référence.
Je confirme que c'est bien 16 comme référence.
Il semble bien que les versions 19 et 21 ne soient que des habillages
commerciaux.

Merci pour la précision :-)