Commande non executée

pconne Messages postés 8 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juillet 2022 - 1 août 2010 à 14:42
pconne Messages postés 8 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juillet 2022 - 2 août 2010 à 11:31
Bonjour,

Quelqu'un peut me dire pourquoi dans le code suivant Label1.Visible = True n'est pas exécuté, comme d'ailleur n'importe commande placée à cet endroit
-------------------
Private Sub Command1_Click()
Dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")
Label1.Visible = True
if filesys.FolderExists("c:\xxx") Then
filesys.CopyFolder "c:\xxx", "C:\zzz", True
End If
End Sub
-------------------

Comment faire pour exécuter une commande juste avant CopyFolder ?

Merci pour votre aide

Phil

4 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 août 2010 à 16:27
Salut,

A mon avis le code ne s'exécute pas car une erreur survient à la ligne qui précède.

Set filesys = CreateObject("Scripting.FileSystemObject") 


Mon vb6 est loin, mais il me semble que l'appel au FSO requière 'scrrun.dll' (dll <= pas sûr), ce composant doit se trouvé sur la machine et être enregistré via regsvr32.exe

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
pconne Messages postés 8 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juillet 2022
1 août 2010 à 19:19
Tu m'as mal compris. Ma commande de copie de répertoire fonctionne correctement

Seule la ligne Label1.Visible = True ne marche pas. Mon label1 reste invisible

Je précise que

1) Label1.Visible = True fonctionne ailleurs dans mon programme sans problème mais pas si je la place avant le lancement de ma copie de répertoire
2) n'importe quelle commande avant le lancement de ma copie de répertoire ne fonctionne pas non plus

D'ailleurs

Label1.Visible = True
Dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")

ou

Dim filesys
Label1.Visible = True
Set filesys = CreateObject("Scripting.FileSystemObject")

C'est pareil. Mon label1 reste invisible


pc
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 août 2010 à 19:35
Donc si je comprend bien,

Private Sub Command1_Click() 
Dim filesys 
Set filesys = CreateObject("Scripting.FileSystemObject") 
'Code n'étant pas exécuté
if filesys.FolderExists("c:\xxx") Then 
filesys.CopyFolder "c:\xxx", "C:\zzz", True 
End If 
End Sub 


Tu dis que le code n'est pas exécuté ? Quelque soit la ligne de code ? As-tu assayé le teste du msgbox ?

Je plancherais plutôt pour dire que : le fait que la copie du dossier puisse être longue et étant donné que la fonction de copie est synchrone, l'affichage du label n'a pas le temps de se faire, essaye donc avec Me.Refresh derrière.

Private Sub Command1_Click()
Dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")
Label1.Visible = True
Me.Refresh
if filesys.FolderExists("c:\xxx") Then
filesys.CopyFolder "c:\xxx", "C:\zzz", True
End If
End Sub

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
pconne Messages postés 8 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 juillet 2022
2 août 2010 à 11:31
J'avais déjà testé msgbox qui en effet fonctionne dans ce cas.

Mais le Me.Refresh a résolu le problème.

Un grand merci

pc
0
Rejoignez-nous