Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : mai 2012
    Messages : 16
    Points : 0
    Points
    0

    Par défaut HTA (Vbscript html javascript) chemin + création de répertoires

    Bonjour/Bonsoir

    Alors voilà je dois créer une application HTA qui doit pouvoir réaliser les point suivants :

    but du programme en résumé : Un chef de projet lance le programme choisis les dossiers qu'il veut avoir dans son projet (checkbox) puis s'il n'a pas crée son dossier de projet il le crée à l'endroit souhaité (bouton parcourir) puis on appui sur valider pour créer tous les dossiers et sous-dossiers.

    Alors voilà à quoi ressemble mon ébauche de code :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <HTML>
    <HEAD>
    <HTA:APPLICATION INNERBORDER="no" SCROLL="no" ID="Structurerep" 
     BORDER="thin" 
    BORDERSTYLE="complex"/>
    <TITLE>HTA - Création structure de projets</TITLE>
    </HEAD>
    <STYLE type="text/css">
    body
    {
    font-family:"Verdana";
    font-size:16px;
    background-color:#d0e4fe;
    }
    h1
    {
    font-family:"Verdana";
    font-size:16px;
     
    }
    p
    {
    font-family:"Verdana";
    font-size:16px;
    }
    </STYLE>
    <BODY>
    <H2>HTA - Création structure de projets</H2>
    <div width=""  id="divFile">
     
    Emplacement : <input type="Text" size="50" name="repchemin" id="repchemin" value="" /> <input type="submit" value="Parcourir" size="50" onclick="parcourir()" />
    </div>
     
    <FORM name="form2">
    <input type="checkbox" name="chemin" value="gestionproj">01 - Gestion de Projet<br>
    <input type="checkbox" name="chemin" value="dlt">02 - DLT<br> 
    <input type="checkbox" name="chemin" value="photos">03 - Photos<br> 
    <input type="checkbox" name="chemin" value="technique">04 - Technique<br> 
    <input type="checkbox" name="chemin" value="mes">05 - MES<br> 
    <input type="checkbox" name="chemin" value="documentation">06 - Documentation<br> 
    <br>
     
    <input type="submit" value="Valider" onclick="CreerRep()" />
    </FORM>
     
    <script language="vbscript">
    Function parcourir()	
    Const RETURNONLYFSDIRS = &H1
     
    Set oShell = CreateObject("Shell.Application")
    Set oFolder = oShell.BrowseForFolder(&H0&, "Choisir un répertoire", RETURNONLYFSDIRS, "c:\")
    If oFolder is Nothing Then 
    MsgBox "Abandon opérateur",vbCritical
    Else
    Set oFolderItem = oFolder.Self
     'oFolderItem.path
    MsgBox oFolderItem.path
    End If
     
    Set oFolderItem = Nothing
    Set oFolder = Nothing
    Set oShell = Nothing
     
    end Function
     
    Dim ofso
    Set ofso = CreateObject("Scripting.FileSystemObject")
     
    '		Sub CreerRep()
    '		Dim oFSO,oFld 
    '		Set oFSO = CreateObject("Scripting.FileSystemObject")
    '		'Crée le repertoire
    '		Set oFld=oFSO.CreateFolder ("C:\")
    '		end Sub			
    </script>
     
    <p>Statut</p>
     
    <script language="Javascript">
    window.resizeTo(600, 512);
    </script>
    </BODY>
    </HTML>
    (Désolé pour l'indentition qui n'est pas du tout la même que sur mon notepad ) EDIT j'ai tenter de limiter la casse pour l'identation!

    Mon problème est que lorsque je veux modifié mon formulaire repchemin et lui mettre comme valeur le path que j'ai trouvé je recois beaucoup d'erreurs différentes.

    A l'état actuel mon code fonctionne je peux choisir avec mon bouton parcourir le dossier de déstination (il ya aussi le paramètre que j'ai spécifié pour avoir un dossier de départ) lorsque je met ok mon message box s'affiche et me donne mon path, mais lorsque je veux récupérer cela de différentes manières j'ai des erreurs tels que : cette element ne peut pas utiliser cette propriété quelque chose du genre .... J'ai essayé avec les get element etc ...

    Auriez-vous une manière simple ? Et si vous avez des corrections à me proposer j'en serais ravis merci et bonne soirée ! Si vous avez des questions n'hésitez pas

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro Moncef Ben Othman
    Directeur de lycée
    Inscrit en
    juillet 2009
    Messages
    1 347
    Détails du profil
    Informations personnelles :
    Nom : Homme Moncef Ben Othman
    Âge : 58
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur de lycée
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2009
    Messages : 1 347
    Points : 2 619
    Points
    2 619

    Par défaut

    Il y a pas mal de modifications à faire dans ton code, en voici une esquisse :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <HTML>
    <HEAD>
    <HTA:APPLICATION INNERBORDER="no" SCROLL="no" ID="Structurerep" 
     BORDER="thin" 
    BORDERSTYLE="complex"/>
    <TITLE>HTA - Création structure de projets</TITLE>
    </HEAD>
    <STYLE type="text/css">
    body
    {
    font-family:"Verdana";
    font-size:16px;
    background-color:#d0e4fe;
    }
    h1
    {
    font-family:"Verdana";
    font-size:16px;
    }
    p
    {font-family:"Verdana";
    font-size:16px;}
    </STYLE>
    <BODY>
    <H2>HTA - Création structure de projets</H2>
    <div width=""  id="divFile">
     
    Emplacement : <input type="Text" size="50" name="repchemin" id="repchemin" value="" /> <input type="submit" value="Parcourir" size="50" onclick="parcourir()" />
    </div>
     
    <FORM name="form2">
    <input type="checkbox" name="chemin" value="gestionproj">01 - Gestion de Projet<br>
    <input type="checkbox" name="chemin" value="dlt">02 - DLT<br> 
    <input type="checkbox" name="chemin" value="photos">03 - Photos<br> 
    <input type="checkbox" name="chemin" value="technique">04 - Technique<br> 
    <input type="checkbox" name="chemin" value="mes">05 - MES<br> 
    <input type="checkbox" name="chemin" value="documentation">06 - Documentation<br> 
    <br>
     
    <input type="button" value="Valider" onclick="CreerRep()"> <!-- On remplace submit par button --!>
     
    </FORM>
    <script language="vbscript">
     
    Option Explicit
     
      Const RETURNONLYFSDIRS = &H1
      Dim oShell, oFolder, oFolderItem
      ' ========================
    Function parcourir()
    	Set oShell = CreateObject("Shell.Application")
    	Set oFolder = oShell.BrowseForFolder(&H0&, "Choisir un répertoire", RETURNONLYFSDIRS, "")
    	If oFolder is Nothing Then 
    	    MsgBox "Abandon opérateur",vbCritical
    	Else
    		Set oFolderItem = oFolder.Self
    		'oFolderItem.path
    		'MsgBox oFolderItem.path 
    		repchemin.Value = oFolderItem.path
    	End If
     
    	Set oFolderItem = Nothing
    	Set oFolder = Nothing
    	Set oShell = Nothing
    	End Function
    	'========================
    	' Fonction de test pour pouvoir créer au moins un répertoire
    	Function TestCheckBox()
    	   Dim T
    	   For T = 0 To form2.chemin.length - 1
    	      If form2.chemin(T).checked Then
    		     TestCheckBox = True
    			 Exit For
    		  End If
           Next
        End Function	   
    	'========================
    	Sub CreerRep()
    	    Dim oFld , i, oFso
    	    If repchemin.Value ="" Then 
    		    Msgbox "Vous devez d'abord remplir le champ Emplacement",VbCritical
    			Exit Sub
    		End If	
    		If TestCheckBox Then	
    			Set oFSO = CreateObject("Scripting.FileSystemObject")
    		    ' Crée le repertoire
                For i = 0 To form2.chemin.length - 1
    		       If form2.chemin(i).checked Then
    		  	      If Not oFSO.FolderExists(repchemin.Value & "\" & form2.chemin(i).Value) Then
    		             Set oFld=oFSO.CreateFolder(repchemin.Value & "\" & form2.chemin(i).Value)
    				  End If   
    			   End If
                Next
    		Else : MsgBox "Aucun choix n'a été entré, Veuillez en choisir au moins un"	
            End If			
     	     Set oFld = Nothing
    		 Set oFso = Nothing
    	End Sub
    </script>
     
    <p>Statut</p>
     
    <script language="Javascript">
    window.resizeTo(600, 512);
    </script>
    </BODY>
    </HTML>
    En espérant avoir bien compris la demande et avoir pu aider.
    A cœur vaillant rien d'impossible
    Ne pas oublier le tag si satisfait.
    Vous pouvez voir Mes contributions

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : mai 2012
    Messages : 16
    Points : 0
    Points
    0

    Par défaut

    Merci beaucoup c'est exactement ce que je cherchais . Je cherchais beaucoup trop loin pour utiliser mon formulaire en Vbscript alors qu'en faite c'est tout simple ! Merci beaucoup et au plaisirs

  4. #4
    Invité de passage
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : mai 2012
    Messages : 16
    Points : 0
    Points
    0

    Par défaut

    J'ai une dernière question en rapport avec la réponse donnée. Est-il possible d'ajouter des sous-repertoires avec ce script ou doit-on modifier un tant soi peu le code ? Parce que je sais qu'on pourrait utiliser copyfolder avec tout une arborescence ...

    Quelle est selon vous la meilleur solution ?

    - Copier une arborescence qui sera toujours au même endroit .

    ou

    - Créer à chaque fois les dossiers.

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro Moncef Ben Othman
    Directeur de lycée
    Inscrit en
    juillet 2009
    Messages
    1 347
    Détails du profil
    Informations personnelles :
    Nom : Homme Moncef Ben Othman
    Âge : 58
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur de lycée
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2009
    Messages : 1 347
    Points : 2 619
    Points
    2 619

    Par défaut

    OUI et NON
    OUI si on veut les créer dans l'un des répertoires déjà créés, par exemple, en recommençant par le bouton Parcourir et en sélectionnant l'un de ces répertoires mais les noms seront parmi la liste des CheckBox.

    NON si le nom voulu est différent et par conséquent la modification du script est obligatoire.

    Un peu plus de précisions quant aux sous-dossiers à créer sera utile et permettra de mieux voir les choses. Le choix de la méthode en dépend aussi.
    A cœur vaillant rien d'impossible
    Ne pas oublier le tag si satisfait.
    Vous pouvez voir Mes contributions

  6. #6
    Invité de passage
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : mai 2012
    Messages : 16
    Points : 0
    Points
    0

    Par défaut

    Alors je peux vous répondre que OUI les sous-dossiers ont des noms différents et qu'ils ne sont jamais les mêmes.

    Je pense donc qu'il est préférable d'utiliser copyfolder pour copier une arborescence ! Mon seul problème étant j'ai disons 6 dossiers contenant environ 3-4 sous-dossiers chacun et chacun de ces sous-dossiers contient d'autres dossiers ...

    J'ai peut-être une solution :

    J'utilise le compteur pour parcourir mon repertoire sourceDir qui contient mon arborscence avec tous les dossiers selon les checkbox qui sont remplissent je copy les dossiers qui correspondent au chiffre des checkbox exemple : je click sur la checkbox 2 et donc ca me copie le dossier 2 avec tout ce qui va derrière ...

    Est-ce que mon raisonnement tiens la route ? Y a -til une manière plus simple de faire encore ? Je vais déjà essayer comme ça et je vous redis

  7. #7
    Invité de passage
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : mai 2012
    Messages : 16
    Points : 0
    Points
    0

    Par défaut

    Voilà j'ai terminé mon pour ceux qui chercherait des solutions . Je ne dis pas que c'est parfait mais ça fait ce que je voulais. Merci grandement pour l'aide et j'espère que ça aidera d'autres personnes !

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    <HTML>
    <HEAD>
    <HTA:APPLICATION INNERBORDER="no" SCROLL="no" ID="Structurerep" 
     BORDER="thin" 
    BORDERSTYLE="complex"/>
    <TITLE>HTA - Création structure de projets</TITLE>
    </HEAD>
    <STYLE type="text/css">
    body
    {
    font-family:"Verdana";
    font-size:16px;
    background-color:#d0e4fe;
    }
    h1
    {
    font-family:"Verdana";
    font-size:16px;
    }
    p
    {font-family:"Verdana";
    font-size:16px;}
    fieldset {
    	padding : 5px;
    }
     
    </STYLE>
    <BODY>
    <H2>HTA - Création structure de projets</H2>
    <div width=""  id="divFile">
     
    Emplacement : <input type="Text" size="50" name="repchemin" id="repchemin" value="" /> <input type="submit" value="Parcourir" size="50" onclick="parcourir()" />
    </div>
     
    <FORM name="form2">
    <input type="checkbox" name="chemin" value="gestionproj">01 - Gestion de Projet<br>
    <input type="checkbox" name="chemin" value="dlt">02 - DLT<br> 
    <input type="checkbox" name="chemin" value="photos">03 - Photos<br> 
    <input type="checkbox" name="chemin" value="technique">04 - Technique<br> 
    <input type="checkbox" name="chemin" value="mes">05 - MES<br> 
    <input type="checkbox" name="chemin" value="documentation">06 - Documentation<br> 
    <br>
     
    <input type="button" value="Valider" onclick="CreerRep()"> 
    </FORM>
    <script language="vbscript">
     
    Option Explicit
     
      Const RETURNONLYFSDIRS = &H1
      Dim oShell, oFolder, oFolderItem
    '==================================================================================================================================================================================
    Function parcourir()
    	Set oShell = CreateObject("Shell.Application")
    	Set oFolder = oShell.BrowseForFolder(&H0&, "Choisir un répertoire", RETURNONLYFSDIRS, "")
    	If oFolder is Nothing Then 
    	    MsgBox "Abandon opérateur",vbCritical
    	Else
    		Set oFolderItem = oFolder.Self
    		'oFolderItem.path
    		'MsgBox oFolderItem.path 
    		repchemin.Value = oFolderItem.path
    	End If
     
    	Set oFolderItem = Nothing
    	Set oFolder = Nothing
    	Set oShell = Nothing
    	End Function
    '==================================================================================================================================================================================
    	' Fonction de test pour pouvoir créer au moins un répertoire
    	Function TestCheckBox()
    	   Dim T,CHK
    	   For T = 0 To form2.chemin.length - 1
    	      If form2.chemin(T).checked Then
    		     TestCheckBox = True
    			 Exit For
    		  End If
           Next
        End Function	
    '==================================================================================================================================================================================    
     
    '==================================================================================================================================================================================
    	Sub CreerRep()
    	    Dim oFld , i, oFso
    	    If repchemin.Value ="" Then 
    		    Msgbox "Vous devez d'abord remplir le champ Emplacement",vbCritical
    			Exit Sub
    		End If	
    		If TestCheckBox Then	
    			Set oFSO = CreateObject("Scripting.FileSystemObject")
    		    ' Crée le repertoire
                For i = 0 To form2.chemin.length - 1 
     
    		  	     if form2.chemin(0).checked Then
    		  	     oFSO.CopyFolder "sourceDir\01-Gestion De Projets", repchemin.value & "\01-Gestion De Projets"  ,True ' True : pour copier en "écrasant" destination si existe..
    		  	     End If 
     
    		  	     if form2.chemin(1).checked Then
    		  	     oFSO.CopyFolder "sourceDir\02-Gestion DLT",repchemin.value & "\02-Gestion DLT",True ' True : pour copier en "écrasant" destination si existe..
    		  	     End If 
     
    		  	     if form2.chemin(2).checked Then
    		  	     oFSO.CopyFolder "sourceDir\03-Photos",repchemin.value & "\03-Photos",True ' True : pour copier en "écrasant" destination si existe..
    		  	     End If 
     
    		  	     if form2.chemin(3).checked Then
    		  	     oFSO.CopyFolder "sourceDir\04-Technique",repchemin.value & "\04-Technique",True ' True : pour copier en "écrasant" destination si existe..
    		  	     End If 
     
    		  	     if form2.chemin(4).checked Then
    		  	     oFSO.CopyFolder "sourceDir\05-MES",repchemin.value & "\05-MES",True ' True : pour copier en "écrasant" destination si existe..
    		  	     End If 
     
    		  	     if form2.chemin(5).checked Then
    		  	     oFSO.CopyFolder "sourceDir\06-Documentation ",repchemin.value & "\06-Documentation",True ' True : pour copier en "écrasant" destination si existe..
    		  	     End If 
     
                Next
    		Else : MsgBox "Aucun choix n'a été entré, Veuillez en choisir au moins un"	
            End If			
     	     Set oFld = Nothing
    		 Set oFso = Nothing
    	End Sub
    '==================================================================================================================================================================================
     
    </script>
     
    <fieldset>
    	<legend><b>Astuce</b></legend>
    	- Le bouton parcourir vous permet de choisir dans quel dossier l'arborescence sera ajouté. 
    	<br>
    	- Après avoir crée et choisis votre dossier vous pouvez ajouter les dossiers de votre choix en checkant ceux dont vous avez besoin.
    </fieldset>
     
    <script language="Javascript">
    window.resizeTo(600, 512);
    </script>
    </BODY>
    </HTML>
    La ou vous avez votre hta il faut une dossier nommé sourceDir contenant votre arborescence et il faudra changer quelque trucs dans mon code.

  8. #8
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro Moncef Ben Othman
    Directeur de lycée
    Inscrit en
    juillet 2009
    Messages
    1 347
    Détails du profil
    Informations personnelles :
    Nom : Homme Moncef Ben Othman
    Âge : 58
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur de lycée
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2009
    Messages : 1 347
    Points : 2 619
    Points
    2 619

    Par défaut

    </script>
    <fieldset>
    <legend><b>Astuce</b></legend>
    - Le bouton parcourir vous permet de choisir dans quel dossier l'arborescence sera ajoutée.
    <br>
    - Après avoir crée créé et choisis choisi votre dossier vous pouvez ajouter les dossiers de votre choix en checkant cochant(ou choisissant) ceux dont vous avez besoin.
    </fieldset>

    <script language="Javascript">
    window.resizeTo(600, 512);
    </script>
    Cette partie du code est à corriger(une présentation ne devrait pas contenir d'erreurs d'orthographe ou de langue, c'est en quelque sorte la façade de l'application)
    A cœur vaillant rien d'impossible
    Ne pas oublier le tag si satisfait.
    Vous pouvez voir Mes contributions

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •