Bonjour !

À cause des problèmes de comportements de SendKeys dans VBA, j'ai dû recourir au wscript.shell pour le faire obéir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Sub Sendkeys(text$, Optional wait As Boolean = False)
 
Dim WshShell As Object
 
Set WshShell = CreateObject("wscript.shell")
 
WshShell.Sendkeys text, wait
 
Set WshShell = Nothing
End Sub
J'appelle la fonction de façon normale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Sendkeys "^v", 1
Sendkeys "%e{DOWN 17}~", 1
Sendkeys "^r", 1
Sendkeys "444", 1
Sendkeys "{ENTER}", 1
Sendkeys "s", 1
Sendkeys "{%}userprofile{%}\documents\555" + Switch(x = 0, "", x, Format(x)), 1
Sendkeys "{ENTER}", 1
Si je n'utilisais pas ce subterfuge en éliminant la procédure SendKeys, j'aurais ceci :

Nom : 000787.png
Affichages : 107
Taille : 4,1 Ko

Donc, normalement mon utilisation de SendKeys fonctionns sauf que, aujourd'hui, j'ai ajouté une procédure qui fonctionne une fois sur 4-5 (±).

Procédure CopieDansMesDocuments :

Copier une image sur le web (non codée : à faire manuellement)
1- Vérifier si IrfanView* est ouvert
2- Si Non, l'ouvrir
3- Si Oui, l'activer en modeFenêtre normale (windowStateNormal)
4- exécuter les SendKeys ci-haut.

(* le meilleur programme gratuit de traitement élémentaire d'images)

De 1 à 3, ça marche ! C'est dans le 4 que ça bloque... :

J'ai dû doubler le "coller" avec les deux premiers SendKeys car un seul ne fonctionne pas !

J'ai beau mettre un point d'arrêt au SendKeys #6 pour vérifier l'exécution et la pluspart du temps, le SendKeys #4 n'a pas été exécuté. Si Je pousse le point d'arrêt en dernier (#8), je constate que le #7 n'est pas exécuté la plupart du temps !!! Et pourtemps, le code a fonctionné 1 foi jusqu'au bout !!!!

Merci à l'avance pour vos lumières qq'un...
iBenny