Petite question sur DoEvents non trouvée sur le forum

Résolu
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006 - 21 avril 2006 à 14:22
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006 - 21 avril 2006 à 20:01
Re !

Dans mon code vba, j'ai cela :
Workbooks.Open Filename:= _
"S:\RHcommun\Greg\STAGE\base.xls"

Cette feuille à son lancement execute un logiciel de requete : query, qui permet de la mettre à jour. Or en la lançant par ici, c'est à dire depuis une autre feuille, elle se lance et la suite du code de la feuille principale tourne du coup ce qu ema feuille appellée doit faire ne se fait pas. J'ai pensé à un DoEvents juste aprés mon :
Workbooks.Open Filename:= _
"S:\RHcommun\Greg\STAGE\base.xls"
DoEvents

Mais ça ne marche pas...
Help pleaseee ^^

12 réponses

Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 16:06
Pense à ajouter une ligne "on error resume next" avent ton test car je pense que si tu ne met pas de date dans ta cellule tu risque d'avoir une erreur de compatibilité de type. A moin que tu ne test ça avent avec isdate()
ex :
IsDate (Cells(i, 17)) then
If CDate("28/02/2006") < Cells(i, 17) And Cells(i, 17) < CDate("30/03/2006") Then
blablabla....
end if
end if

D'oh! Nuts!
Mmmmm...
DONUTS
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 14:38
Ca ne serait pas un probléme avec la securité office (onglet outils/macro/sécurité) car je viens de faire un test et pas de probléme chez moi???

D'oh! Nuts!
Mmmmm...
DONUTS
0
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006
21 avril 2006 à 14:47
Non j'ai tous les droits mais ça ne fonctionne pas ... Je viens de vérifier, c'est bizarre quand même !

En enregistrant une macro, je l'ai fait à la main voici son code :

Workbooks.Open(Filename:="S:\RHcommun\Greg\STAGE\essai.xls").RunAutoMacros _
Which:=xlAutoOpen
Application.Run Range("ScOnWindow")
Application.Run Range("ScOnData")



Range("A2").Select
Windows("ReportingRomans 2006.xls").Activate
Application.Run Range("ScOnWindow")
Range("I1").Select

Seulement, je lance et ça plante sur : Application.Run Range("ScOnWindow") qui entre nous est un truc qui m'est totalement inconnu lol !!!
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 14:59
A vrais dire je ne sait pas à cois serv "Application.Run Range("ScOnWindow")" et "Application.Run Range("ScOnData")".
Quel version d'office utilise tu? Moi 2003. Peut être un bug offce??????????
Les action sur ton fichier "enfant" sont bien défini dans "ThisDocument" avec "Private Sub Document_Open()" comme définition de procédure?

D'oh! Nuts!
Mmmmm...
DONUTS
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006
21 avril 2006 à 15:07
oula je n'est pas tout ça moi lol !! Tu me perds là ... ^^
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 15:30
Ques qui te pose probléme????
Quel version d'office utilise tu? Moi 2003. Peut être un bug offce?????????? (la je pense que tu comprend)
Les
action sur ton fichier "enfant" sont bien défini dans "ThisDocument" (nom du truc qui resemble à un module dans l'explorateur de projet)
avec "Private Sub Document_Open()" (nom de la procédure) comme définition de procédure?
Je ne voie pas ce qui te pose probléme????

D'oh! Nuts!
Mmmmm...
DONUTS
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 15:31
Les action sur ton fichier "enfant" (j'entand par fichier enfant le fichier que tu ouvre en code)

D'oh! Nuts!
Mmmmm...
DONUTS
0
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006
21 avril 2006 à 15:33
Oui mais ça c'est tout bon, mais en fait je me rend compte que c'est impossible ce que je veux faire ... :(
Completement à part de mon code entier j'ai juste mis de quoi lancer mon fichier qui la ça marchait me demandé si je voulais rafraichir ou conserver les données par le requeteur ShowCase Strategy Query. Je voulais automatiser l'appuis sur enter afin de rafraichir mais ça ne marche pas le send key ne se fait pas car c'est pas vmt une boite de dialogue dans excel puisque c'est à Strategy ... En gros c'est un gros bazarre lol !!!!
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 15:45
Je n'ai rien mais alors rien compris à ton dernier message???????????????????????????????

D'oh! Nuts!
Mmmmm...
DONUTS
0
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006
21 avril 2006 à 15:56
lol ! En gros ma feuille pere lance une feuille fils qui a son lancement récupere grace au logiciel ShowCase Strategy Query des données dans une base et les met dans cette feuille fils. Le pere aura pour objectif de pouvoir piocher dedans. Query se lance pas avec une macro ou autre mais c'est configuré par un menu d'Excel qui s'ajoute quand on installe la suite ShowCase.
Le fils au lancement demande si on veut ou non mettre a jour ses données, enfin c'est une boite de dialogue Query qui le demande mais c'est ce que je voulais automatiser en simulant des touches mais c'est apparement pas possible donc je laisse tombé.

Par contre est ce que tu saurais pourquoi ça ça marche :

If CDate("28/02/2006") < Cells(i, 17) And Cells(i, 17) < CDate("30/03/2006") Then
If Cells(i, 27) <> "S" Then
nbPersonne = nbPersonne + 1
MsgBox (Cells(i, 6))
End If
End If

Et pas ça lol :
If CDate("28/02/2006") <= Cells(i, 18) And Cells(i, 18) < CDate("30/03/2006") And Cells(i, 27) <> "S" Then
nbPersonne = nbPersonne + 1
MsgBox (Cells(i, 6))
End If
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 avril 2006 à 16:02
Tes formats de cellule sont bien en date (si non test en rajoutant cdate() partout)?

Pour ton code il n'est pas possible de crée une DDE pour faire se que tu veut????

Exemple de DDE pour Excel
Dim MyXl As Object ' Variable devant contenir la référence à Microsoft Excel.
Set MyXl = GetObject(, "Excel.Application") 'Recu de l'adrs d'excel
Set MyXl.Application.Workbooks(1).ActiveSheet = Nothing ' Libère la référence à l'application et à la feuille de calcul.

D'oh! Nuts!
Mmmmm...
DONUTS
0
DarkRider26 Messages postés 32 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 15 juin 2006
21 avril 2006 à 20:01
ouep c'est tout bon ça marche ! merci beauuucouuup !!!!
0
Rejoignez-nous