Fermer des fichiers excel ouvert à partir d'une macro VBA

Fermé
advisors - 31 mars 2015 à 23:56
 advisors - 1 avril 2015 à 16:17
Bonjour,
svp, j'ai crée une macro qui consiste à ouvrir (un à un) le fichier des factures paramétrés selon le n° de facture (variable) soit nnnn_Facture.xls"et de copier le chiffre d'affaires depuis ces fichiers sur un autre fichier intitulé Vente_Data.xlsx
nous cherchons à fermer chaque fichier de facture après avoir copier ses données dans le fichier de vente puis passer au fichier de facture suivant pour faire la même choses; où nnnn est le numéro de facture inscrit sur la 2éme feuille du fichier Vente_Data.xlsx
voici la macro que j'ai crée il fonctionne bien si je n'ajoute pas les 2 derniers lignes ( mais il laisse tous les fichiers de facture ouvert)
Donc il ya un problème au niveau des ces deux lignes :
Windows(" & t(i) & "_Facture.xls").Activate
ActiveWorkbook.Close

La macro est la suivante :

Sub Facturation()
'
' Facturation Macro
'

'
Dim i As Integer
Dim t As Variant
With Worksheets(2)
t = Application.Transpose(.Range("A2:A" & _
.Range("A" & .Rows.Count).End(xlUp).Row).Value)
End With
For i = LBound(t) To UBound(t)
Sheets("Feuil1").Select
Range("G2").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\" & t(i) & "_Facture.xls"
Range("F215").Select
Selection.PasteSpecial Paste:=xlPasteValues,

Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas,

Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("F217").Select
Selection.Copy
Windows("Vente_Data.xlsx").Activate
Sheets("Feuil2").Select
Range("B" & i + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues,

Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(" & t(i) & "_Facture.xls").Activate
ActiveWorkbook.Close
Next i
End Sub

Merci de m'aider


A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 1/04/2015 à 08:16
Bonjour,

t(i) est une variable, donc pourquoi la mettre entre double cotes

Windows(t(i) & "_Facture.xls").Activate
0
Merci f894009
génial j'ai remplaver les deux lignes comme ça et ça marche super bien
Windows(t(i) & "_Facture.xls").Activate
ActiveWorkbook.Close False


le False pour ne pas enregistrer les fichiers factures correspondants

A++
0