Extraction de données d'un fichier vers un autre
Bonjour à toutes et à tous,
Le sujet a probablement été bien traité mais j'ai dû mal à faire du tri dans ce qui me sera utile.
Je vous explique mon petit soucis :
Je suis sous EXCEL 2010 et je désire réaliser une macro me permettant d'extraire des données d'un fichier vers un autre fichier, jusqu'ici ça va à peu près.
Le soucis étant que j'ai un fichier par mois (je précise d'avance qu'il m'est impossible de modifier le nom des fichiers), donc 12 fichiers vous l'aurez compris.
Leur nom est de la forme :
"01_Suivi_2017_Janvier"
"02_Suivi_2017_Février"
"12_Suivi_2017_Décembre"
Voilà mon code :
Sub Importation()
'Janvier
Workbooks.Open Filename:="C:\Suivi\2017\01_Suivi_2017_Janvier.xls"
Sheets("Janvier").Activate
ThisWorkbook.Worksheets("TEST").Range("A1:AC3").Value = Range("O384:AQ386").Value
ActiveWorkbook.Close ' pour fermer le fichier 'Et je fais ceci jusqu'à Décembre.. pas très light tout ça vous me direz..
J'aimerais, et il me semble que c'est possible mais je ne sais plus comment, faire varier l'adresse où je vais chercher mon fichier ainsi que mon fichier selon l'année actuelle et le mois actuel.
Et si possible faire varier les cellules de destination selon le mois aussi.
Le MUST serait que mes données qui arrivent sur 3 lignes puisse être directement transposées sur 3 colonnes directement via la macro ^^.
Est ce que cela est faisable assez simplement ?
J'espère avoir été assez clair dans mes propos, n'hésitez pas à me dire c'est flou tout ce que je raconte, j'essayerais de mieux expliquer dans ce présent
Merci par avance pour toutes les aides que vous pourrez m'apporter.
Bonjour Anthony, bonjour le forum,
Essaie comme ça :
Sub Importation()
Dim NC As String
Dim A As Integer
Dim AN As String
Dim M As Byte
Dim MO As String
A = Year(Date)
AN = CStr(A)
M = Month(Date)
MO = Application.WorksheetFunction.Proper(CStr(Format(M, "mmmm")))
NC = "C:\Suivi\" & AN & "\01_Suivi_" & AN & "_" & MO & ".xls"
Workbooks.Open Filename:=NC
Sheets(MO).Range("O384").Resize(29, 3).Value = Application.Transpose(Worksheets("TEST").Range("A1:AC3").Value)
ActiveWorkbook.Close ' pour fermer le fichier '
End SubMerci de ta réponse TauThème !
Sub Importation()
Dim NC As String
Dim A As Integer
Dim AN As String
Dim M As Byte
Dim MO As String
A = Year(Date)
AN = CStr(A)
M = Month(Date)
MO = Application.WorksheetFunction.Proper(CStr(Format(M, "mmmm")))
NC = "C:\Suivi\" & AN & "\01_Suivi_" & AN & "_" & MO & ".xls"
Workbooks.Open Filename:=NC
Sheets(MO).Range("O384").Resize(29, 3).Value = Application.Transpose(Worksheets("TEST").Range("A1:AC3").Value)
ActiveWorkbook.Close ' pour fermer le fichier '
End SubEst-il aussi possible de faire bouger le "01" du début de mon fichier ?
Ta macro fonctionne à peu près, excepter pour la transposition, si tu as une autre idées je suis preneur sinon je vais essayer de modifier ça à ma sauce ^^.
Encore merci !
Re,
Il y avait un bug sur le mois qui renvoyait toujours Janvier que j'ai corrigé. Chez moi la transposition marche impeccable...
le code modifié :
Sub Importation()
Dim A As Integer
Dim AN As String
Dim M As Byte
Dim NM As String
Dim MO As String
Dim NC As String
A = Year(Date)
AN = CStr(A)
M = Month(Date)
NM = CStr(Format(M, "00"))
MO = Application.WorksheetFunction.Proper(CStr(Format("1/" & M & "/" & A, "mmmm")))
NC = "C:\Suivi\" & AN & "\" & NM & "_Suivi_" & AN & "_" & MO & ".xls"
Workbooks.Open Filename:=NC
Sheets(MO).Range("O384").Resize(29, 3).Value = Application.Transpose(Worksheets("TEST").Range("A1:AC3").Value)
ActiveWorkbook.Close ' pour fermer le fichier '
End SubMerci beaucoup pour ton aide ça marche niquel maintenant !!