Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2011, 15h27   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
Par défaut barre de progression : formAttente+ autre call a faire

bonjour,

apres quelques recherche sur le net j'ai créé mon formulaire d'attente avec la barre de progression et tout fonctionne bien.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Private Sub Ouv_formAttente()
Dim lCptIteration1 As Long
Dim lCptIteration2 As Long
Dim lString As String
Dim lPercent As Single
Const lNbIterations As Long = 9000
On Error GoTo Gestion_Erreurs
' Ouverture du formulaire d'attente
DoCmd.OpenForm "FormAttente"
Forms("FormAttente").lblInfo.Caption = "Veuillez patienter durant le traitement ... "
Forms("FormAttente").lblProgressBar.Width = 0
' Nécessaire pour redonner la main à windows le temps de traiter les messages dans la pile
DoEvents
' Boucle de traitement
For lCptIteration1 = 1 To lNbIterations
For lCptIteration2 = 1 To 1000
lString = Chr((lCptIteration1 + lCptIteration2) Mod 256)
Next
' Toutes les 500 itérations
If lCptIteration1 Mod 500 = 0 Then
' Calcul du pourcentage d'avancement
lPercent = lCptIteration1 / lNbIterations
' Met à jour l'étiquette d'avancement
Forms("FormAttente").lblProgress.Caption = "Traitement en cours ... " & Format(lPercent, "00%")
' Met à jour la barre de progression
Forms("FormAttente").lblProgressBar.Width = Forms("FormAttente").lblProgressBack.Width * lPercent
' Repeint le formulaire
Forms("FormAttente").Repaint
End If
' Evite que l'application ne soit figée
DoEvents
Next
' Fermeture du formulaire d'attente
DoCmd.Close acForm, "FormAttente"
Exit Sub
Gestion_Erreurs:
MsgBox "Erreur lors du traitement, n° " & Err.Number & ", " & Err.Description, vbOKOnly
DoCmd.Close acForm, "FormAttente"
 
'----------------------------------------------------------------------------------------------------------
 
 
End Sub
maintenant, le pb est que via un bouton dans mon formulaire principal je fais appelle a 4 call qui prennent 10 min de traitement mais en fait j'arrive pas a ouvrir mon formAttente et en meme temps que mes 4 autres call tournent derriere.

j'ai un truc du genre :

call ouv_formAttente ' qui ouvre et fait defiler ma barre nickel
call toto1
call toto2
call toto3
call toto4


donc ca fait defiler ma barre de progression et seulement apres ca fait le boulot de mes 4 call.

PS : j'arrive pas a saisir cette notion de DoEvents.


merci d'avance
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 16h36   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
C'est un peu nornal et c'est du à

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
' Boucle de traitement
For lCptIteration1 = 1 To lNbIterations
For lCptIteration2 = 1 To 1000
lString = Chr((lCptIteration1 + lCptIteration2) Mod 256)
Next
' Toutes les 500 itérations
If lCptIteration1 Mod 500 = 0 Then
' Calcul du pourcentage d'avancement
lPercent = lCptIteration1 / lNbIterations
' Met à jour l'étiquette d'avancement
Forms("FormAttente").lblProgress.Caption = "Traitement en cours ... " & Format(lPercent, "00%")
' Met à jour la barre de progression
Forms("FormAttente").lblProgressBar.Width = Forms("FormAttente").lblProgressBack.Width * lPercent
' Repeint le formulaire
Forms("FormAttente").Repaint
End If
' Evite que l'application ne soit figée
DoEvents
Next
Ce qu'il faut que tu fasse :
  • soit tu fais tes appels à Toto1, 2, 3 et 4 dans le formulaire d'attente en gérant l'avancement de la barre là dedans
  • soit tu fais un formulaire d'attente qui ne fait qu'afficher du texte et une barre dont tu spécifie la longeur de l'extérieur.

Personnellement j'irai vers la 2ième solution qui est plus souple et permet de réutiliser ton formulaire d'attente.

Ton code d'appel ressemblerai à cela :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
dim fa as form_Attente
call ouv_formAttente ' qui ouvre affiche le formulaire d'attente à 0%
set fa = forms("Attente")
call toto1
call fa.AfficherProgression(25) '25%
call toto2
call fa.AfficherProgression(50) '50%
call toto3
call fa.AfficherProgression(75) '75%
call toto4
call fa.AfficherProgression(100) '100%
set fa=nothing
docmd.close acForm, "Attente"
Évidement il faut créer une sub public dans Form_Attente nommée AfficherProgression qui va se charger de modifier l'affichage en fonction du paramêtre passé.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 16h44   #3
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
c malheureusement c'que je craignais.
en effet, en réalité j'ai
toto1 et 2 = 1min
toto3=9min
toto4= 30 sec

donc pas terrible en progression, j'pensais que sachant que j'avais un traitement qui durait 10min (peu importe le nb de call....), c afficher un progression qui dure elle aussi 10 min

mais bien sur que mon traitement réel se fasse lui aussi pdt ce temps là.
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 17h01   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Est-ce que Toto1, 2 .. 4 pourrait mettre à jour ton formulaire au fur et à mesure de leur progression ?

Sinon tu pourrais aussi regarder l'événement OnTimer et faire avancer ta barre toutes les secondes au lieu d'utiliser une boucle for next.

Idée de code :

dans le module sous les Otpion

Code :
dim m_TempsEcoule as long 'en seconde
dans la sub OnTimer()
Code :
1
2
m_TempsEcoule=m_TempsEcoule + 1
'Ici MAJ de l'affichage avec la nouvelle valeur de m_TempsEcoule
Quand tu ouvres ton formulaire d'attente, tu lui passes en paramètre le temps maximum que tu prévois et tu t'en sert pour calculer le % d'avancement.

Je ne l'ai jamais fais ainsi mais cela devrait marcher.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 17h04   #5
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
mais qd j'ouvre mon formulaire d'attente, j'comprend toujours pas comment lui dire d'exectuer pdt ce temps mais toto's ...
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 17h55   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Parce qu'au lien de faire une boucle for next, il va être automatiquement appelé toute (par exemple) les secondes.

Donc logiquement Access
  1. va interrompre l'exécution d'un de tes Totos,
  2. changer la barre de progression,
  3. reprendre l'éxécution de ton toto.
Ça devrait donner le résultat attendu, la barre de progression qui avance en même temps que tes traitements.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 17h59   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Et au niveau logique on en revient à ta 1ière idée.

Code :
1
2
3
4
5
call ouv_formAttente ' qui va être MAJ toute les secondes.
call toto1
call toto2
call toto3
call toto4
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 09h01   #8
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
merci pour toutes ces idées mais j'arrive pas à savoir que mettre dans mon Ouv_formAttente et comment integrer les choses pour maj toutes les secondes.

meme si tu m'as detaillé au maxi les choses mais bon ...
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 19h31   #9
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Tu ne change rien à ton code il est pafait comme il est.

Code :
1
2
3
4
5
6
call ouv_formAttente ' Le formualire d'affichage va être set mettre à jour, de lui même, toutes les secondes.
call toto1
call toto2
call toto3
call toto4
call ferme_formAttente 'Ferme le formulaire d'attente en fin de traitement
La modification porte prinicpalement sur ton formulaire qui affiche la barre de progression.

Dans le module du formulaire d'affichage à l'extérieur des subs ou functions.

Code :
dim lCptIteration1 as long
Dans l'événement OnTimer (sur minuterie)

Code :
1
2
3
4
5
lCptIteration1=lCptIteration1+1
lPercent = lCptIteration1 / lNbIterations
me.lblProgress.Caption = "Traitement en cours ... " & Format(lPercent, "00%")
me.lblProgressBar.Width = me.lblProgressBack.Width * lPercent
me.Repaint
Le code est incomplet, il manque les déclarations de variables mais c'est une bonne piste.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 22h42   #10
Membre Expert
 
Inscription : avril 2006
Messages : 1 050
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 050
Points : 1 230
Points : 1 230
Bonsoir à tous,

il y a, je pense peu de chances pour que ce que tu souhaites faire réussisse.
D'une part, tu es dans un environnement procédurale, ce qui implique que toute procédure démarrée doit finir pour qu'une autre puisse être exécutée; d'autre part il faut impérativement que le formulaire d'attente ne soit pas en mode DialogBox, mode dans lequel tant que le formulaire est ouvert le code appelant est interrompu. En clair, si le formulaire d'attente à sa propriété "Fenêtre indépendante" à oui, alors les lignes
Code :
1
2
3
Call Toto1
Call Toto2
...
ne seront exécutés qu'après la fermeture du formulaire.

Le formulaire d'attente est censé être appelé par la procédure elle-même.
En clair, ce sont les procédures Toto1, Toto2 ... qui doivent créer, initialiser et mettre à jour leur propre formulaire d'attente.
Une dernière solution est d'utiliser ma solution de pseudo multithreading , qui est comme quelqu'un l'a indiqué une usine à gaz.
ilank est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 23h29   #11
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Je suis d'accord avec toi ilank mais je pense qu'un formulaire avec minuterie permettra du pseudo multitache. C'est la solution que je préconise.

Qu'en penses-tu ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 11h16   #12
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
ca a l'air de fonctionner mais mon formulaire d'attente s'affiche pas, enfin je vois juste le tour de la fenetre avec le libellé c tout ???
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 19h17   #13
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Ajoute une instruction doevents après le me.repaint, cela devrai forcer le raffraichissement de l'affichage.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 09h33   #14
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
non en fait, si j'ouvre le formulaire attente en cliquant dessus, ca marche bien mais c parce que je l'ouvre de mon autre formulaire principal que ca marche pas.
enfin ca marche mais j'vois pas mon formulaire attente auf le tour de la fentre avec n haut la legende dans la barre bleu du haut.

le DoEvents ne change rien !!
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 14h31   #15
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Désolé je ne saisi pas bien, tu as un truc du genre :
Code :
1
2
3
4
5
6
7
8
9
 
+------------------
| Formulaire principal
|
|  +--------------------
|  | Formulaire attente
|  |
|  +--------------------
+-------------------
et le formulaire d'attente ne s'affiche pas correctement. C'est cela ?

Sinon poste une copie d'écran cela aidera à fixer les idées.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 14h38   #16
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
non j'ai juste dans mon code de forumaire principal sur clic du bouton valider
....
DoCmd.OpenForm "FormAttente"
.....

et tu vas pas me croire le imprecran ne fonctionne pas sur ca.
il fonctionne qu'une fois mon forumaire d'attente fermer ??? bizarre ca?
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 14h55   #17
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Oui étrange.

Essaye de simplement ouvrir ton formulaire d'attente sans rien faire de plus.

Que se passe-t-il ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 15h03   #18
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
ca marche !

sinon le code ou ca marche pas :
Citation:

DoCmd.OpenForm "FormAttente"
Dim supprTGUIDE
supprTGUIDE = "delete * from T_GUIDE where [T_GUIDE]![employé] = '" & Me![Intervenant] & "';"
curBD.Execute supprTGUIDE


Dim insertion
insertion = "insert into T_GUIDE([employé] , [Date arreté] , [Partenaire]) values ('" & [Intervenant] & "','" & [Date_arreté] & "','" & [radical] & "')"
curBD.Execute insertion

If Dir("C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls") <> "" Then
Dim ObjXL As Excel.Workbook
Set ObjXL = GetObject("C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls")
ObjXL.Save
ObjXL.Application.Quit
End If


Dim fso As FileSystemObject
Dim fl As File

Set fso = New FileSystemObject
Set fl = fso.GetFile("C:\_boutot\CAC\Attestation_CAC.xls")
fl.Copy ("C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls")

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_H_DAV", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "DAV"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_H_CREDITS", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "CREDITS"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_H_TITRES", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "TITRES"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_H_EPARGNE", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "EPARGNE"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_H_GEN", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "GEN"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_SERVICES BANCAIRES", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "SERVICES_BANCAIRES"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_INTERETS DEBITEURS", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "INTERETS_DEBITEURS"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_COM ENGAG", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "COMMISSION_ENGAGEMENT"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_CAUTION", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "CAUTIONNEMENT"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_ESCOMPTE", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "ESCOMPTE"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_LCR", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "LCR"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "R_INTERRO_H_DEVISES", "C:\_boutot\CAC\Attestation_CAC_" & AgentConnecté() & ".xls", False, "DEVISES"

' Fermeture du formulaire d'attente
DoCmd.Close acForm, "FormAttente"
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 15h09   #19
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 17
Points : 2
Points : 2
le bug d'affichage :
mon formattente a pour libellé "Patientez..."
Images attachées
Type de fichier : jpg bug.JPG (37,0 Ko, 14 affichages)
pipo_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h41   #20
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
bjr,

il doit manquer le DoEvents :
http://arkham46.developpez.com/artic...tente/#LII-D-2
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h58.


 
 
 
 
Partenaires

Hébergement Web