phenX
Messages postés704Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention28 août 2012
-
9 mars 2006 à 14:46
phenX
Messages postés704Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention28 août 2012
-
10 mars 2006 à 09:55
Bon, ca fait quelques heures que je m'enerve sur ce code et la je craque alors je vous le confi. Voila les données: J'ai un dossier que je choisis dans une DirListBox, dedans il y des fichiers divers (.doc, .xls, .txt etc...), en cliquant sur un bouton je suissupposé créer un dossier par extention différentes dans le dossier principale, et mettre chaque fichier dans le dossier correspondant à son type (sachant que les dossiers créer portent comme nom l'extention, par exemple: doc, xls, txt)
Voila le code que j'ai mis sous le bouton:
quand je lance il bug et me met "indice en dehors de la plage" en pointant sur ExtFile = Tabl(UBound(Tabl))
merci de m'aider
PreviousFile = ""
direct = MainForm.DirList.Path
std = Dir(direct, vbNormal)
org = direct
Salut phenX
Si j'ai bien compris tu as un répertoire avec des fichiers.Dans ce répertoire tu veux créer des sous-répertoires qui portent comme nom l'extension des fichiers du répertoire d'origine et y déplacer tous les fichiers qui ont la même extension
Essaie ceci : pour moi cela fonctionne
Je mets l'extension entre 2 espaces pour différencier les extensions frm et frm1 par exemple car instr dans ce cas ne créerait pas le répertoire frm1 car frm existe déjà
Une feuille form1,un bouton de commande Command1,une liste de lecteurs Drive1 et une liste de répertoire Dir1
Dim repertoire As String
Dim fich As String
Dim ext As String
Dim extension As String
Dim sousrepertoire As String
Private Sub Command1_Click()
repertoire = Form1.Dir1.Path + ""
extension = " " ' 1 espace
Do
fich = Dir(repertoire, vbNormal)
If fich = "" Then Exit Do
sousrepertoire = Right$(fich, Len(fich) - InStr(fich, "."))
ext = " " & sousrepertoire & " " ' 1 espace au début et à la fin pour différencier les extensions
If InStr(extension, ext) = 0 Then
MkDir repertoire & sousrepertoire
extension = extension & ext & " " ' 1 espace
End If
FileCopy repertoire & fich, repertoire & sousrepertoire & "" & fich
Kill repertoire & fich
Loop
End Sub
phenX
Messages postés704Date d'inscriptionmercredi 4 mai 2005StatutMembreDernière intervention28 août 2012 9 mars 2006 à 16:34
j'ai retravailler le code:
Option Explicit
Dim direct As String
Dim std As String
Dim org As String
Dim PreviousFile As String
Dim ExtFile As Variant
Dim Tabl() As String
Dim supr As String
Private Sub CmdContinu_Click()
ReDim Tabl(UBound(Tabl) - 1)