Ouvrir dossier selon date de creation : Résolu

guigus

XLDnaute Nouveau
Bonjour à tous et bravo pour ce super forum, qui m'a dépanné plus d'une fois !

Je suis confronté à un problème dont je ne trouve aucune solution:

Des fichiers Excel sont enregistrés dans des dossiers portant le Numéro de la semaine (exemple S14 pour pour cette semaine).

J'ai donc des dossiers allant de la S1 à la S14.
Le programme ci-dessous est censé ouvrir les dossiers des semaines S1 à S14 pour aller piocher des infos dans les fichiers Excel qui y sont enregistrés.
Ces infos sont ensuite envoyées dans un fichier de synthèse, d'où est tiré le programme ci dessous.

Le problème est que le programme VB ouvre depuis peu les dossiers de façon aléatoire.
Il ouvre le dossier "S1" puis "S10" , "S11", "S2", etc...
Et ça fausse les données dans mon fichier de synthèse.

Je souhaite qu'il ouvre les dossiers dans l'ordre, c'est à dire S1, S2, S3, etc.

Pouvez vous m'aider à trouver une solution SVP ?

Sub transfert2_DWQ_vers_indicateur()
Dim wb As Workbook
Dim fSuiviTLSE, fSuivi, fChoix As Worksheet
Dim ligFin, ligAjoutIndic, ligIndicateur As Long
Dim pathIndicateurs, pathSuivi, nomFichier, NomFicActuel, plage As String


Set fChoix = ActiveWorkbook.Sheets("Choix")
Set fSuiviTLSE = ActiveWorkbook.Sheets("SuiviTLSE2")
ligFin = fSuiviTLSE.Cells(65536, 2).End(xlUp).Row
plage = "N12:N" & ligFin
fSuiviTLSE.Range(plage).ClearContents ' Efface le contenu des cellules
fSuiviTLSE.Activate
fSuiviTLSE.Range("B12").Select


Application.ScreenUpdating = False

pathIndicateur = ActiveWorkbook.Path & "\"
pathSuivi = pathIndicateur


' Ouvrir les suivis
nomRep = Dir(pathSuivi, vbDirectory) ' Extrait la première entrée.
NomFicActuel = ActiveWorkbook.Name
ligAjoutIndic = 12


Do While nomRep <> "" ' Commence la boucle
If nomRep <> "." And nomRep <> ".." And nomRep <> NomFicActuel Then ' Ignore le répertoire courant et le répertoire contenant le répertoire courant.
' Utilise une comparaison au niveau du bit pour vérifier que nomFichier est un fichier ou un repertoire
If (GetAttr(pathSuivi & nomRep) _
And vbDirectory) = vbDirectory Then
ligIndicateur = 12
Set fso = CreateObject("Scripting.FileSystemObject")
For Each f In fso.GetFolder(pathSuivi & nomRep & "/Version/").Files
If Right(f.Name, 4) = ".xls" Then
Set wb = Workbooks.Open(pathSuivi & nomRep & "/Version/" & f.Name)
Set fSuivi = wb.Sheets("Data")
If f.Name = "Drawing release.xls" Then

Else

ligAjoutIndic = transfert2DWQ(fSuiviTLSE, fSuivi, fChoix) ' Transfere les donnees PVA vers Suivi

End If
wb.Close False
End If
Next f
End If
End If
nomRep = Dir ' Extrait l'entrée suivante.
Loop



'plage = "12:" & ligAjoutIndic - 1
'fSuiviTLSE.Rows(plage).Select

'Selection.Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


Worksheets("SuiviTLSE2").Select
Application.ScreenUpdating = False

fSuiviTLSE.Cells(9, "D").Select

fSuiviTLSE.Cells(9, "D") = Now

Application.ScreenUpdating = True
MsgBox "Traitement terminé", vbOKOnly + vbInformation, "Message d'information"
End Sub
 
Dernière édition:

JBOBO

XLDnaute Accro
Re : Ouvrir dossier selon date de creation

Bonjour,

Je ne m'y connais pas trop en macro mais il semble que tes numeros de semaines devrait etre enregistrer comme ceci : S01;S02;S03....S10;S11;S12..... ainsi il s'ouvrirait dans l'ordre je pense, ou bien dans ton repertoire source, essai de trier les fichiers par date de modification et non par nom.
 

guigus

XLDnaute Nouveau
Re : Ouvrir dossier selon date de creation

Bonjour JBOBO et merci de ta rapide intervention.

En nommant les dossiers SXX, ça fonctionne parfaitement !

J'ai envie de reprendre le faux proverbe ironique ; "pourquoi faire simple quand on peut faire compliqué". Je cherche depuis hier une solution dans le code VB...

Encore merci
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino