Récupération d'info suite à excution de commande

Patmos

XLDnaute Nouveau
Bonjour, je suis à la recherche d'une solution pour exécuter une commande dos depuis un VBA.

Après une recherche sur le forum je n'ai rien trouvé de satisfaisant (mais je ne suis peut-être pas allé assez loin).

Bref, voici mon souci :

Je dispose d'un répertoire (.\2013\03 - mars par exemple) contenant des fichiers excel dont le nom est : RENxxyyzz.xls
xx = l’année sur 2 caratères que je récupère avec Mid(Date, 9, 2)
yy = le numéro de la semaine en cours que je récupère avec 3 lignes de code glanées sur le net (je le met plus bas)
zz = un numéro d'incrément (qui repart à zéro à chaque nouvelle semaine)

Je souhaite récupérer des infos contenues dans mes fichiers REN pour les intégrer dans un autre fichier excel (qui contient la macro que j'exécute).

Exemple de liste :
REN130943.xls
REN130944.xls
REN130945.xls
REN131001.xls
REN131002.xls
REN131003.xls
REN131101.xls
REN131102.xls
REN131103.xls

Méthode envisagée :
1 - Récupéré le numéro de la semaine pour n'avoir que l'incrément à traiter
2 - Faire la boucle :
For i = 43 to 45
récupérer les infos souhaitées depuis mon fichier mes fichiers REN1309i.xls vers mon fichier de synthèse
Passer au fichier REN* suivant


J'ai aussi penser à d'abord lister tous les numéro de semaine pour boucler dessus, puis faire une sous boucle pour les numéro d'incrément, mais je n'arrive pas à récupérer dans une variable le contenu de mon dossier (une fois faite la fonction mid() me permettra de tout découpé comme je le souhaite) genre avec un dir *.xls


J'ai placé un fichier de travail en pièce jointe.


Merci d'avance



Patmos,


-------------------------------------------------------
Récupération du ne numéro de la semaine en cours :

Dim nb_date_annee As Date
Dim num_semaine As Integer

nb_date_annee = DateValue("1 janvier " & (Year(Date)))
prem_date = nb_date_annee
num_semaine = Abs(Date - prem_date) / 7

msgbox num_semaine
-------------------------------------------------------
 

Pièces jointes

  • Synthèse annuelle.xls
    140.5 KB · Affichages: 34

Yaloo

XLDnaute Barbatruc
Re : Récupération d'info suite à excution de commande

Bonsoir Patmos, le forum,

Peut-être avec quelque chose comme ça :

VB:
Private Sub Données()
Dim i, j
Dim Temp As String
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False
Temp = Dir(ActiveWorkbook.Path & "\*.xls")
Do While Temp <> ""
  If Temp Like "REN" & Année & NSem & "*.xls" Then
    i = Cells(65536, 2).End(xlUp).Row + 1
    Application.DisplayAlerts = False
    Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Temp
    With ThisWorkbook.Sheets("Synthèse")
      'Ce que tu as à copier
      .Cells(i, 1) = ActiveSheet.Range("A1")
      'etc....
    End With
  Workbooks(Temp).Close
  End If
  Temp = Dir
Loop
End Sub

A te relire

Martial
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 481
Membres
103 232
dernier inscrit
logan035