Commande non executée

Signaler
Messages postés
6
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 août 2010
-
Messages postés
6
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 août 2010
-
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

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
34
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.
Messages postés
6
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 août 2010

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
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
34
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.
Messages postés
6
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 août 2010

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