OVH Cloud OVH Cloud

SendKeys

2 réponses
Avatar
Max
Bonjour,

J'ai une macro qui associe toutes les feuilles, sauf la première:

Sub AssocierToutesLesFeuillesSaufPremière()
Dim nbFeuilles, x
nbFeuilles = Sheets.Count
Sheets(2).Select
For x = 2 To nbFeuilles - 1
SendKeys "^+{PGDN}"
Next
End Sub

Elle fonctionne, avec la commande Exécuter, mais pas avec Pas à pas, ni avec
F8 ou F5. Pourquoi ?

Ensuite, si je veux ajouter quelques choses avec VBA dans ces feuilles
associées, ça ne marche pas,sauf sur la seule feuille active. Par contre si
je le fais manuellement (ce qui n'est pas le but) ça agit sur l'ensemble des
feuilles. Pouqoui ?

Ce sont vraiment des questons théoriques, parce que j'obtiens le même
résultat avec:

Sub BoucleFOR_NEXT1()
Dim n, nbFeuilles
nbFeuilles = Sheets.Count
For n = 2 To nbFeuilles
Sheets(n).Select
' le code pour ajouter quelque chose dans chaque feuille
Next
End Sub

Merci

Max

2 réponses

Avatar
Gilles MOUGNOZ
Bonjour, Max
La commande SendKeys est, dans la mesure du possible, à éviter car elle
envoie des commandes clavier dans la fenêtre ACTIVE.
Quand tu es en mode débogage, ta combinaison de touches Ctrl+Shift+PageDown
est donc envoyée à la fenêtre de l'éditeur VBA.
Pour le deuxième point, je ne sais pas vraiment. J'ai essayé avec
l'enregistreur de macros, la sélection des feuilles est suivie d'un
activate. Une piste à explorer...
Bonne continuation
--
"Max" a écrit
Bonjour,
J'ai une macro qui associe toutes les feuilles, sauf la première:
Sub AssocierToutesLesFeuillesSaufPremière()
Dim nbFeuilles, x
nbFeuilles = Sheets.Count
Sheets(2).Select
For x = 2 To nbFeuilles - 1
SendKeys "^+{PGDN}"
Next
End Sub
Elle fonctionne, avec la commande Exécuter, mais pas avec Pas à pas, ni
avec F8 ou F5. Pourquoi ?
Ensuite, si je veux ajouter quelques choses avec VBA dans ces feuilles
associées, ça ne marche pas,sauf sur la seule feuille active. Par contre
si je le fais manuellement (ce qui n'est pas le but) ça agit sur
l'ensemble des feuilles. Pouqoui ?
Ce sont vraiment des questons théoriques, parce que j'obtiens le même
résultat avec:
Sub BoucleFOR_NEXT1()
Dim n, nbFeuilles
nbFeuilles = Sheets.Count
For n = 2 To nbFeuilles
Sheets(n).Select
' le code pour ajouter quelque chose dans chaque feuille
Next
End Sub
Merci
Max


Avatar
Max
Bonjour Gilles,
Merci bien de tes explications. Tu as raison, je laisee tomber le SendKeys
puisqu'il y a un autre moyen d'arriver au même résultat.
Cordialement,
Max

"Gilles MOUGNOZ" a écrit dans le message de news:
uWiyYOO%
Bonjour, Max
La commande SendKeys est, dans la mesure du possible, à éviter car elle
envoie des commandes clavier dans la fenêtre ACTIVE.
Quand tu es en mode débogage, ta combinaison de touches
Ctrl+Shift+PageDown est donc envoyée à la fenêtre de l'éditeur VBA.
Pour le deuxième point, je ne sais pas vraiment. J'ai essayé avec
l'enregistreur de macros, la sélection des feuilles est suivie d'un
activate. Une piste à explorer...
Bonne continuation
--
"Max" a écrit
Bonjour,
J'ai une macro qui associe toutes les feuilles, sauf la première:
Sub AssocierToutesLesFeuillesSaufPremière()
Dim nbFeuilles, x
nbFeuilles = Sheets.Count
Sheets(2).Select
For x = 2 To nbFeuilles - 1
SendKeys "^+{PGDN}"
Next
End Sub
Elle fonctionne, avec la commande Exécuter, mais pas avec Pas à pas, ni
avec F8 ou F5. Pourquoi ?
Ensuite, si je veux ajouter quelques choses avec VBA dans ces feuilles
associées, ça ne marche pas,sauf sur la seule feuille active. Par contre
si je le fais manuellement (ce qui n'est pas le but) ça agit sur
l'ensemble des feuilles. Pouqoui ?
Ce sont vraiment des questons théoriques, parce que j'obtiens le même
résultat avec:
Sub BoucleFOR_NEXT1()
Dim n, nbFeuilles
nbFeuilles = Sheets.Count
For n = 2 To nbFeuilles
Sheets(n).Select
' le code pour ajouter quelque chose dans chaque feuille
Next
End Sub
Merci
Max