VBA XLS Boucle avec instruction de mise àjour

Fermé
guitad.gibs - Modifié par guitad.gibs le 8/07/2010 à 14:12
 guitad.gibs - 8 juil. 2010 à 15:04
Bonjour,



je suis débutant dans l'utilisation des boucles.

Voici mon souci: je lance une boucle pour attribuer une valeur entre 115 et 118 et je copie colle la valeur de la cellule trouvée sur une deuxième qui me permet de mettre à jour un tableau de gestion.

Problème la première boucle s'applique bien mais il attend la dernière valeur pour exécuter l'instruction de mise à jour (Application.SendKeys "%yFr", True).

voici le code:


Application.DisplayAlerts = True
Application.ScreenUpdating = True
Dim x
x = 115
Do While x <= 118
x = x + 1

Cela fonctionne bien: applique la boucle sur la cellule B&x puis copie colle valeur sur D12.

Range("B" & x).Select
Selection.Copy
Range("D12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Attention erreur cette instruction s'exécute qu'à la fin de ma boucle, moi je voudrais qui s'exécute à chaque valeur attribuée dans la boucle comme faire?.

Cela ne marche pas

With Selection
Range("A12").Select
Application.SendKeys "%yFr", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 5
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
End With

Loop
End Sub


Merci à vous tous pour les réponses
A voir également:

3 réponses

Salut

Ta macro fonctionne normalement : Application.SendKeys rempli un tampon. Tant que ta macro n'est pas fini, le tampon attend pour voir si qqch arrive encore.

Dans ton cas, la solution, c'est de ne pas utiliser Application.SendKeys mais plutot un appel a une autre macro pour la maj de ton application de gestion

A+
0
Merci François,

l'appli de gestion s'appelle Hyperion et on peut la mettre à jour par le biais du menu xls, ou des touches par le biais de send keys?

T'as une suggestion à tel sujet? Comment peux je éviter mon tampon en utilisant alt yFr?

Merci encore

Adriano
0
je ne connais pas Hyperion mais essaie d'enregistrer une macro en cliquant sur le menu qui l'appelle :
menu outil -> macro-> nouvelle macro
puis clique sur le menu Hyperion
arrete l'enregistrement de la macro et va voir dans le module ce que ca a donné

avec un peu de chance, tu aura directement le code a recopier dans ta premiere macro
0
Bien C'était déjà ma première solution qui n'a pas marché :O(
0
en fait je voudrais juste que a chaque code l'instruction
Application.SendKeys "%yFr", True
soit exécute pour chaque valeur de la cellule Range("D12").Select pendant la boucle.
0
pas de bol.

alors essaye
Execute, méthode (contrôles de barre de commandes)

qui te permet d'executer une commande d'un menu ou d'une barre de commande
0
je vais essayer merci
0