Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-marc
free.fr wrote:
Bonjour ,
je voudrais faire l'equivalent de ce : md c:abc dans une boite DOS avec commandes etendues ca marche. Comment le faire en VB ?
Hello,
En VB la fonction permettant de créer un répertoire est MkDir. Voir la doc ici: http://msdn.microsoft.com/en-us/library/aa266169(VS.60).aspx
Pour créer plusieurs répertoires en une fois, tu peux faire ceci:
' path must be like c:tototititutu ' Private Function CreateDir(ByVal path As String) As Boolean Dim t() As String Dim i As Long
t = Split(path, "") For i = 0 To UBound(t()) If i = 0 Then ChDir t(0) & "" Else MkDir t(i) ChDir t(i) End If Next i CreateDir = True
CreateDir_END: Exit Function
CreateDir_ERR: CreateDir = False Resume CreateDir_END End Function
Et tu appelles comme cela: Private Sub Command1_Click() Dim ret As Boolean
ret = CreateDir("c:tototititutu") If ret Then MsgBox "répertoire créé avec succès" Else MsgBox "erreur" End If End Sub
Attention toutefois : je ne donne ici qu'un code destiné à servir d'exemple. Tel quel, il fonctionne parfaitement, mais il faut bien sur compléter cette fonction pour gérer les cas d'erreurs et ils sont nombreux. Mais bon, c'est la base :-)
je voudrais faire l'equivalent de ce :
md c:abc
dans une boite DOS avec commandes etendues ca marche.
Comment le faire en VB ?
Hello,
En VB la fonction permettant de créer un répertoire est MkDir.
Voir la doc ici:
http://msdn.microsoft.com/en-us/library/aa266169(VS.60).aspx
Pour créer plusieurs répertoires en une fois, tu peux faire ceci:
' path must be like c:tototititutu
'
Private Function CreateDir(ByVal path As String) As Boolean
Dim t() As String
Dim i As Long
t = Split(path, "")
For i = 0 To UBound(t())
If i = 0 Then
ChDir t(0) & ""
Else
MkDir t(i)
ChDir t(i)
End If
Next i
CreateDir = True
CreateDir_END:
Exit Function
CreateDir_ERR:
CreateDir = False
Resume CreateDir_END
End Function
Et tu appelles comme cela:
Private Sub Command1_Click()
Dim ret As Boolean
ret = CreateDir("c:tototititutu")
If ret Then
MsgBox "répertoire créé avec succès"
Else
MsgBox "erreur"
End If
End Sub
Attention toutefois : je ne donne ici qu'un code destiné à servir
d'exemple. Tel quel, il fonctionne parfaitement, mais il
faut bien sur compléter cette fonction pour gérer les cas d'erreurs
et ils sont nombreux. Mais bon, c'est la base :-)
je voudrais faire l'equivalent de ce : md c:abc dans une boite DOS avec commandes etendues ca marche. Comment le faire en VB ?
Hello,
En VB la fonction permettant de créer un répertoire est MkDir. Voir la doc ici: http://msdn.microsoft.com/en-us/library/aa266169(VS.60).aspx
Pour créer plusieurs répertoires en une fois, tu peux faire ceci:
' path must be like c:tototititutu ' Private Function CreateDir(ByVal path As String) As Boolean Dim t() As String Dim i As Long
t = Split(path, "") For i = 0 To UBound(t()) If i = 0 Then ChDir t(0) & "" Else MkDir t(i) ChDir t(i) End If Next i CreateDir = True
CreateDir_END: Exit Function
CreateDir_ERR: CreateDir = False Resume CreateDir_END End Function
Et tu appelles comme cela: Private Sub Command1_Click() Dim ret As Boolean
ret = CreateDir("c:tototititutu") If ret Then MsgBox "répertoire créé avec succès" Else MsgBox "erreur" End If End Sub
Attention toutefois : je ne donne ici qu'un code destiné à servir d'exemple. Tel quel, il fonctionne parfaitement, mais il faut bien sur compléter cette fonction pour gérer les cas d'erreurs et ils sont nombreux. Mais bon, c'est la base :-)
> Attention toutefois : je ne donne ici qu'un code destiné à servir > d'exemple.
C'est surtout n'importe quoi. Ca se fait avec l'api Shell en ... ligne de code !
Misère.
Alors que de tout façon rien ne vaut le FileSystemObject.
François Picalausa
On Feb 5, 6:49 am, "Jean" wrote:
"Jean-marc" wrote in message
news:498a0b96$0$2853$
> Attention toutefois : je ne donne ici qu'un code destiné à servir > d'exemple.
C'est surtout n'importe quoi. Ca se fait avec l'api Shell en ... ligne de code ! Ah, ces stagaires qui ne savent pas utiliser Google...
Hello,
<pour what="oil" target="fire"> De mon temps, les stagiaires qui se prétendaient si tellement supérieurs à l'utilisation de google fournissaient des exemples qu'ils avaient eux-même retravaillé, de sorte à partager leur savoir. En ce qui concerne les professionnels respectables et plus savants, ils n'avaient pas comme catch-phrase GFGI (hint: pour avoir la définition, go freaking google it!): ils n'avaient pas besoin de prétendre que le monde autour d'eux n'était composé que de stagiaires incompétents pou r se sentir supérieurs!
Mais... ce n'est probablement plus la norme! </pour>
L'API en question est probablement SHPathPrepareForWrite dont voici un exemple de wrapper: Private Declare Function SHPathPrepareForWrite _ Lib "shell32.dll" _ Alias "SHPathPrepareForWriteA" _ ( _ ByVal hwnd As Long, _ ByVal punkEnableModless As Long, _ ByVal pszPath As String, _ ByVal dwFlags As Long _ ) _ As Long
Public Function PreparePath(strPath As String, ParentWindow As Long, ShowUI As Boolean) As Long If ParentWindow And ShowUI Then PreparePath = SHPathPrepareForWrite ParentWindow, _ 0, strPath, _ SHPPFW_ASKDIRCREATE Or SHPPFW_IGNOREFILENAME Else PreparePath = SHPathPrepareForWrite 0, _ 0, strPath, _ SHPPFW_DEFAULT Or SHPPFW_IGNOREFILENAME End If End Function
Elle a a peu près les mêmes limitations que la méthode proposée par Jean-Marc aux exceptions suivantes: - Le support d'erreur est différent: la valeur de retour est probablement significative, mais *non documentée* cd. http://msdn.microsoft.com/en-gb/library/bb762237(VS.85).aspx - SHPathPrepareForWrite ne fonctionne que pour Windows 2000 et suivants (la méthode proposée par Jean-Marc fonctionne sur tout OS sur lequel VB/VBA est supporté)
Je vous laisse deviner quelle méthode (implémentée par les stagiaires de chez microsoft ?) le package & deployment wizard utilise. (cf. MakePathAux dans COMMON.BAS)
François
On Feb 5, 6:49 am, "Jean" <j...@gtk.com> wrote:
"Jean-marc" <j...@nowhere.invalid> wrote in message
news:498a0b96$0$2853$ba620e4c@news.skynet.be...
> Attention toutefois : je ne donne ici qu'un code destiné à servir
> d'exemple.
C'est surtout n'importe quoi.
Ca se fait avec l'api Shell en ... ligne de code !
Ah, ces stagaires qui ne savent pas utiliser Google...
Hello,
<pour what="oil" target="fire">
De mon temps, les stagiaires qui se prétendaient si tellement
supérieurs à l'utilisation de google fournissaient des exemples qu'ils
avaient eux-même retravaillé, de sorte à partager leur savoir. En ce
qui concerne les professionnels respectables et plus savants, ils
n'avaient pas comme catch-phrase GFGI (hint: pour avoir la définition,
go freaking google it!): ils n'avaient pas besoin de prétendre que le
monde autour d'eux n'était composé que de stagiaires incompétents pou r
se sentir supérieurs!
Mais... ce n'est probablement plus la norme!
</pour>
L'API en question est probablement SHPathPrepareForWrite dont voici un
exemple de wrapper:
Private Declare Function SHPathPrepareForWrite _
Lib "shell32.dll" _
Alias "SHPathPrepareForWriteA" _
( _
ByVal hwnd As Long, _
ByVal punkEnableModless As Long, _
ByVal pszPath As String, _
ByVal dwFlags As Long _
) _
As Long
Public Function PreparePath(strPath As String, ParentWindow As Long,
ShowUI As Boolean) As Long
If ParentWindow And ShowUI Then
PreparePath = SHPathPrepareForWrite ParentWindow, _
0, strPath, _
SHPPFW_ASKDIRCREATE Or SHPPFW_IGNOREFILENAME
Else
PreparePath = SHPathPrepareForWrite 0, _
0, strPath, _
SHPPFW_DEFAULT Or SHPPFW_IGNOREFILENAME
End If
End Function
Elle a a peu près les mêmes limitations que la méthode proposée par
Jean-Marc aux exceptions suivantes:
- Le support d'erreur est différent: la valeur de retour est
probablement significative, mais *non documentée*
cd. http://msdn.microsoft.com/en-gb/library/bb762237(VS.85).aspx
- SHPathPrepareForWrite ne fonctionne que pour Windows 2000 et
suivants (la méthode proposée par Jean-Marc fonctionne sur tout OS sur
lequel VB/VBA est supporté)
Je vous laisse deviner quelle méthode (implémentée par les stagiaires
de chez microsoft ?) le package & deployment wizard utilise. (cf.
MakePathAux dans COMMON.BAS)
> Attention toutefois : je ne donne ici qu'un code destiné à servir > d'exemple.
C'est surtout n'importe quoi. Ca se fait avec l'api Shell en ... ligne de code ! Ah, ces stagaires qui ne savent pas utiliser Google...
Hello,
<pour what="oil" target="fire"> De mon temps, les stagiaires qui se prétendaient si tellement supérieurs à l'utilisation de google fournissaient des exemples qu'ils avaient eux-même retravaillé, de sorte à partager leur savoir. En ce qui concerne les professionnels respectables et plus savants, ils n'avaient pas comme catch-phrase GFGI (hint: pour avoir la définition, go freaking google it!): ils n'avaient pas besoin de prétendre que le monde autour d'eux n'était composé que de stagiaires incompétents pou r se sentir supérieurs!
Mais... ce n'est probablement plus la norme! </pour>
L'API en question est probablement SHPathPrepareForWrite dont voici un exemple de wrapper: Private Declare Function SHPathPrepareForWrite _ Lib "shell32.dll" _ Alias "SHPathPrepareForWriteA" _ ( _ ByVal hwnd As Long, _ ByVal punkEnableModless As Long, _ ByVal pszPath As String, _ ByVal dwFlags As Long _ ) _ As Long
Public Function PreparePath(strPath As String, ParentWindow As Long, ShowUI As Boolean) As Long If ParentWindow And ShowUI Then PreparePath = SHPathPrepareForWrite ParentWindow, _ 0, strPath, _ SHPPFW_ASKDIRCREATE Or SHPPFW_IGNOREFILENAME Else PreparePath = SHPathPrepareForWrite 0, _ 0, strPath, _ SHPPFW_DEFAULT Or SHPPFW_IGNOREFILENAME End If End Function
Elle a a peu près les mêmes limitations que la méthode proposée par Jean-Marc aux exceptions suivantes: - Le support d'erreur est différent: la valeur de retour est probablement significative, mais *non documentée* cd. http://msdn.microsoft.com/en-gb/library/bb762237(VS.85).aspx - SHPathPrepareForWrite ne fonctionne que pour Windows 2000 et suivants (la méthode proposée par Jean-Marc fonctionne sur tout OS sur lequel VB/VBA est supporté)
Je vous laisse deviner quelle méthode (implémentée par les stagiaires de chez microsoft ?) le package & deployment wizard utilise. (cf. MakePathAux dans COMMON.BAS)
François
Driss HANIB
Aller, je vais faire mon pro !!!
Mais je k'ai trouvé sur le net*
le mieux c'est d'utiliser l'API :
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Elle crée le chemin en une fois !
je l'ai utilisée dans une petite procédure
Sub RépertoireCréation(Chemin As String) 'Dim Chem() As String 'Dim Nouv As String Dim rep As Long If Right$(Chemin, 1) <> "" Then Chemin = Chemin & "" End If rep = MakeSureDirectoryPathExists(Chemin)
End Sub
cela fonctionne bien sur W98 et XP, sur des lecteurs Réseaux etc..
Driss
"François Picalausa" a écrit dans le message de news:
On Feb 5, 6:49 am, "Jean" wrote:
"Jean-marc" wrote in message
news:498a0b96$0$2853$
> Attention toutefois : je ne donne ici qu'un code destiné à servir > d'exemple.
C'est surtout n'importe quoi. Ca se fait avec l'api Shell en ... ligne de code ! Ah, ces stagaires qui ne savent pas utiliser Google...
Hello,
<pour what="oil" target="fire"> De mon temps, les stagiaires qui se prétendaient si tellement supérieurs à l'utilisation de google fournissaient des exemples qu'ils avaient eux-même retravaillé, de sorte à partager leur savoir. En ce qui concerne les professionnels respectables et plus savants, ils n'avaient pas comme catch-phrase GFGI (hint: pour avoir la définition, go freaking google it!): ils n'avaient pas besoin de prétendre que le monde autour d'eux n'était composé que de stagiaires incompétents pour se sentir supérieurs!
Mais... ce n'est probablement plus la norme! </pour>
L'API en question est probablement SHPathPrepareForWrite dont voici un exemple de wrapper: Private Declare Function SHPathPrepareForWrite _ Lib "shell32.dll" _ Alias "SHPathPrepareForWriteA" _ ( _ ByVal hwnd As Long, _ ByVal punkEnableModless As Long, _ ByVal pszPath As String, _ ByVal dwFlags As Long _ ) _ As Long
Public Function PreparePath(strPath As String, ParentWindow As Long, ShowUI As Boolean) As Long If ParentWindow And ShowUI Then PreparePath = SHPathPrepareForWrite ParentWindow, _ 0, strPath, _ SHPPFW_ASKDIRCREATE Or SHPPFW_IGNOREFILENAME Else PreparePath = SHPathPrepareForWrite 0, _ 0, strPath, _ SHPPFW_DEFAULT Or SHPPFW_IGNOREFILENAME End If End Function
Elle a a peu près les mêmes limitations que la méthode proposée par Jean-Marc aux exceptions suivantes: - Le support d'erreur est différent: la valeur de retour est probablement significative, mais *non documentée* cd. http://msdn.microsoft.com/en-gb/library/bb762237(VS.85).aspx - SHPathPrepareForWrite ne fonctionne que pour Windows 2000 et suivants (la méthode proposée par Jean-Marc fonctionne sur tout OS sur lequel VB/VBA est supporté)
Je vous laisse deviner quelle méthode (implémentée par les stagiaires de chez microsoft ?) le package & deployment wizard utilise. (cf. MakePathAux dans COMMON.BAS)
François
Aller, je vais faire mon pro !!!
Mais je k'ai trouvé sur le net*
le mieux c'est d'utiliser l'API :
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal
lpPath As String) As Long
Elle crée le chemin en une fois !
je l'ai utilisée dans une petite procédure
Sub RépertoireCréation(Chemin As String)
'Dim Chem() As String
'Dim Nouv As String
Dim rep As Long
If Right$(Chemin, 1) <> "" Then
Chemin = Chemin & ""
End If
rep = MakeSureDirectoryPathExists(Chemin)
End Sub
cela fonctionne bien sur W98 et XP, sur des lecteurs Réseaux etc..
Driss
"François Picalausa" <fpicalausa@gmail.com> a écrit dans le message de news:
f180b170-32e1-4489-8176-ecb2fb857408@r15g2000prd.googlegroups.com...
On Feb 5, 6:49 am, "Jean" <j...@gtk.com> wrote:
"Jean-marc" <j...@nowhere.invalid> wrote in message
news:498a0b96$0$2853$ba620e4c@news.skynet.be...
> Attention toutefois : je ne donne ici qu'un code destiné à servir
> d'exemple.
C'est surtout n'importe quoi.
Ca se fait avec l'api Shell en ... ligne de code !
Ah, ces stagaires qui ne savent pas utiliser Google...
Hello,
<pour what="oil" target="fire">
De mon temps, les stagiaires qui se prétendaient si tellement
supérieurs à l'utilisation de google fournissaient des exemples qu'ils
avaient eux-même retravaillé, de sorte à partager leur savoir. En ce
qui concerne les professionnels respectables et plus savants, ils
n'avaient pas comme catch-phrase GFGI (hint: pour avoir la définition,
go freaking google it!): ils n'avaient pas besoin de prétendre que le
monde autour d'eux n'était composé que de stagiaires incompétents pour
se sentir supérieurs!
Mais... ce n'est probablement plus la norme!
</pour>
L'API en question est probablement SHPathPrepareForWrite dont voici un
exemple de wrapper:
Private Declare Function SHPathPrepareForWrite _
Lib "shell32.dll" _
Alias "SHPathPrepareForWriteA" _
( _
ByVal hwnd As Long, _
ByVal punkEnableModless As Long, _
ByVal pszPath As String, _
ByVal dwFlags As Long _
) _
As Long
Public Function PreparePath(strPath As String, ParentWindow As Long,
ShowUI As Boolean) As Long
If ParentWindow And ShowUI Then
PreparePath = SHPathPrepareForWrite ParentWindow, _
0, strPath, _
SHPPFW_ASKDIRCREATE Or SHPPFW_IGNOREFILENAME
Else
PreparePath = SHPathPrepareForWrite 0, _
0, strPath, _
SHPPFW_DEFAULT Or SHPPFW_IGNOREFILENAME
End If
End Function
Elle a a peu près les mêmes limitations que la méthode proposée par
Jean-Marc aux exceptions suivantes:
- Le support d'erreur est différent: la valeur de retour est
probablement significative, mais *non documentée*
cd. http://msdn.microsoft.com/en-gb/library/bb762237(VS.85).aspx
- SHPathPrepareForWrite ne fonctionne que pour Windows 2000 et
suivants (la méthode proposée par Jean-Marc fonctionne sur tout OS sur
lequel VB/VBA est supporté)
Je vous laisse deviner quelle méthode (implémentée par les stagiaires
de chez microsoft ?) le package & deployment wizard utilise. (cf.
MakePathAux dans COMMON.BAS)
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Elle crée le chemin en une fois !
je l'ai utilisée dans une petite procédure
Sub RépertoireCréation(Chemin As String) 'Dim Chem() As String 'Dim Nouv As String Dim rep As Long If Right$(Chemin, 1) <> "" Then Chemin = Chemin & "" End If rep = MakeSureDirectoryPathExists(Chemin)
End Sub
cela fonctionne bien sur W98 et XP, sur des lecteurs Réseaux etc..
Driss
"François Picalausa" a écrit dans le message de news:
On Feb 5, 6:49 am, "Jean" wrote:
"Jean-marc" wrote in message
news:498a0b96$0$2853$
> Attention toutefois : je ne donne ici qu'un code destiné à servir > d'exemple.
C'est surtout n'importe quoi. Ca se fait avec l'api Shell en ... ligne de code ! Ah, ces stagaires qui ne savent pas utiliser Google...
Hello,
<pour what="oil" target="fire"> De mon temps, les stagiaires qui se prétendaient si tellement supérieurs à l'utilisation de google fournissaient des exemples qu'ils avaient eux-même retravaillé, de sorte à partager leur savoir. En ce qui concerne les professionnels respectables et plus savants, ils n'avaient pas comme catch-phrase GFGI (hint: pour avoir la définition, go freaking google it!): ils n'avaient pas besoin de prétendre que le monde autour d'eux n'était composé que de stagiaires incompétents pour se sentir supérieurs!
Mais... ce n'est probablement plus la norme! </pour>
L'API en question est probablement SHPathPrepareForWrite dont voici un exemple de wrapper: Private Declare Function SHPathPrepareForWrite _ Lib "shell32.dll" _ Alias "SHPathPrepareForWriteA" _ ( _ ByVal hwnd As Long, _ ByVal punkEnableModless As Long, _ ByVal pszPath As String, _ ByVal dwFlags As Long _ ) _ As Long
Public Function PreparePath(strPath As String, ParentWindow As Long, ShowUI As Boolean) As Long If ParentWindow And ShowUI Then PreparePath = SHPathPrepareForWrite ParentWindow, _ 0, strPath, _ SHPPFW_ASKDIRCREATE Or SHPPFW_IGNOREFILENAME Else PreparePath = SHPathPrepareForWrite 0, _ 0, strPath, _ SHPPFW_DEFAULT Or SHPPFW_IGNOREFILENAME End If End Function
Elle a a peu près les mêmes limitations que la méthode proposée par Jean-Marc aux exceptions suivantes: - Le support d'erreur est différent: la valeur de retour est probablement significative, mais *non documentée* cd. http://msdn.microsoft.com/en-gb/library/bb762237(VS.85).aspx - SHPathPrepareForWrite ne fonctionne que pour Windows 2000 et suivants (la méthode proposée par Jean-Marc fonctionne sur tout OS sur lequel VB/VBA est supporté)
Je vous laisse deviner quelle méthode (implémentée par les stagiaires de chez microsoft ?) le package & deployment wizard utilise. (cf. MakePathAux dans COMMON.BAS)
François
free.fr
Merci Driss
c'est ce que je voulais
pour celui qui parlait du shell , comment fait-il ?
Merci Driss
c'est ce que je voulais
pour celui qui parlait du shell , comment fait-il ?