Bonjour à tous,
Tout nouveau sur ce super forum d'Expert!!
Voilà mon sujet:
J' utilise la macro suivante qui copie une feuille de chaque classeur fermé d'un dossier sur un classeur actif mais qui fonctionne seulement si le classeur destination comporte autant de feuille que de classeur source
J'ai 2 questions
1) Comment intégrer dans cette macro "Workbook Copy after" si le classeur destination ne comprend à l'origine qu'une seule feuille afin de rajouter une feuille après chaque boucle faite sur les classeurs sources?
2) Comment adapter cette macro si je veux copier seulement la feuille du dernier classeur enregistré dans le dossier source (dossier comprenant de 1 à 12 classeurs, un par mois)
Sub ImportCGM()
Dim Cn As ADODB.Connection
Dim Fichier As String, chemin As String, i As Long
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
chemin = "C:\Users\G\Desktop\Mensuel"
Fichier = Dir(chemin & "\*.xlsm")
NomFeuille = Feuil1.Name
i = 1
Do While Fichier <> ""
If Fichier <> ThisWorkbook.Name Then
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"""
.Open
End With
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
Sheets(i).Range("A1").CopyFromRecordset Rst
Cn.Close
Set Cn = Nothing
i = i + 1
End If
Fichier = Dir
Loop
End Sub
Merci infiniment pour vos réponses