Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Importer des données d'un classeur change de nom toutes les semaines

1 réponse
Avatar
oliver6
Bonjour,
je souhaite importer des donn=E9es d'un classeur qui est modifier chaque
matin =E0 6h00
Ce classeur change de nom chaque semaine (ex: semaine 32: SS32.csv,
semaine 33: SS33.csv)
Peut'on prendre comme r=E9f=E9rence la date de modification?

1 réponse

Avatar
Charabeuh
Bonjour,
deux pistes...
Chercher le fichier de plus grand numéro de semaine dans le répertoire
source.
en VBA, une fonction qui retourne le fichier de plus grande semaine.
Doit fonctionner que les fichiers des semaines 1 à 9 soient
enregistrés en SS01.cvs ou bien SS1.csv

Option Explicit

Public Function Ficher_Semaine() As String
Dim FileName As String, Path As String
Dim Nsem, X

Path = "c:extractSS*.csv"
Nsem = 0
FileName = Dir(Path)

While FileName <> ""
X = InStr(FileName, ".") - 1
X = CInt(Mid(Left(FileName, X), 3, 2))
If X >= Nsem Then
Nsem = X
Ficher_Semaine = FileName
End If
FileName = Dir
Wend

End Function

Utilisation en VBA
Sub test()
MsgBox Ficher_Semaine()
End Sub

ou bien une autre façon par saisie directe de la semaine
(permet de traiter des semaines passées)

Option Explicit

Sub Autrement()
Dim NumSem As Integer, FileName As String
Dim ImportFile As String, Continuer As Boolean

On Error GoTo Autrement_Err_1
Continuer = True
While Continuer
NumSem = Application.InputBox(prompt:="Quelle semaine importer (1 à
53) - 0=FIN ?:", Type:=1)
If NumSem = 0 Then Exit Sub
FileName = "c:extractSS" & NumSem & ".csv"

Select Case NumSem
Case 1 To 9
FileName = "c:extractSS" & NumSem & ".csv"
ImportFile = Dir(FileName)
If ImportFile = "" Then
FileName = "c:extractSS0" & NumSem & ".csv"
ImportFile = Dir(FileName)
End If
If ImportFile = "" Then
MsgBox "Fichier sem " & NumSem & " pas trouvé"
Else
MsgBox "Fichier à importer " & ImportFile
Continuer = False
End If
Case 10 To 53
FileName = "c:extractSS" & NumSem & ".csv"
ImportFile = Dir(FileName)
If ImportFile = "" Then
MsgBox "Fichier sem : " & NumSem & " pas trouvé"
Else
MsgBox "Fichier à importer " & ImportFile
Continuer = False
End If
Case Else
MsgBox "Erreur saisie sem : " & NumSem
End Select
Wend
Exit Sub

Autrement_Err_1:
MsgBox "Ereur non gérée : " & Error(Err)

End Sub


"oliver6" a écrit dans le message de groupe de discussion
:
Bonjour,
je souhaite importer des données d'un classeur qui est modifier chaque
matin à 6h00
Ce classeur change de nom chaque semaine (ex: semaine 32: SS32.csv,
semaine 33: SS33.csv)
Peut'on prendre comme référence la date de modification?