Bonjour
Après avoir fait une petite recherche sur le forum, je suis tombé la dessus :
issu de ce sujet : https://www.excel-downloads.com/threads/importer-une-feuille-excel-depuis-un-autre-classeur.176033/
Je souhaite l'adapter pour insérer 2 fichiers dans mon fichier de synthèse, voilà ce que j'ai écrit (recopié) mais ça ne marche pas tout à fait :
2 problèmes apparaissent :
- je suis obligé d'éxécuter et d'insérer cette macro dans le fichier qui va me servir de résultat
- J'ai une erreur d'exécution '9': L'indice n'appartient pas à la sélection
- le code ne m'apparaît pas très optimisé.
Merci de m'aider.
Cordialement.
Après avoir fait une petite recherche sur le forum, je suis tombé la dessus :
Code:
Sub c()
Dim nom$, WBKSource As Workbook
With Application.FileDialog(msoFileDialogOpen)' ton bout de code
.Title = "Choisissez le fichier"
.Filters.Clear
.Filters.Add "Fichier Excel", "*.xls*"
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Set WBKSource = Workbooks.Open(nom) ' mon petit bout à moi ;-)
With WBKSource
.Sheets("Activités").Copy Before:=ThisWorkbook.Sheets(1)
.Close False
End With
Else
MsgBox "Aucun fichier n'a été sélectionné", , "Erreur": Exit Sub
End If
End With
End Sub
Je souhaite l'adapter pour insérer 2 fichiers dans mon fichier de synthèse, voilà ce que j'ai écrit (recopié) mais ça ne marche pas tout à fait :
Code:
Sub IMPORT()
Dim nom$, nom2$, WBKSource, WBKSource2 As Workbook
' sélectionne et copie la feuille Rejets du fichier sélectionné
' et la colle dans la feuille avant la feuille Synthese
With Application.FileDialog(msoFileDialogOpen) '
.Title = "Choisissez le fichier où les Rejets sont comptabilisés"
.Filters.Clear
.Filters.Add "Fichier Excel", "*.xlsx*"
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Set WBKSource = Workbooks.Open(nom) ' mon petit bout à moi ;-)
With WBKSource
.Sheets("Rejets").Copy before:=ThisWorkbook.Sheets("Synthese")
.Close False
End With
Else
MsgBox "Aucun fichier n'a été sélectionné", , "Erreur": Exit Sub
End If
End With
' sélectionne et copie la feuille Totaux du fichier sélectionné
' et la colle dans la feuille avant la feuille Synthese
With Application.FileDialog(msoFileDialogOpen) '
.Title = "Choisissez le fichier où les totaux sont comptabilisés"
.Filters.Clear
.Filters.Add "Fichier Excel", "*.xlsx*"
.AllowMultiSelect = False
If .Show <> 0 Then
nom2 = .SelectedItems(1)
Set WBKSource2 = Workbooks.Open(nom) ' mon petit bout à moi ;-)
With WBKSource2
.Sheets("Totaux").Copy before:=ThisWorkbook.Sheets("Synthese")
.Close False
End With
Else
MsgBox "Aucun fichier n'a été sélectionné", , "Erreur": Exit Sub
End If
End With
End Sub
- je suis obligé d'éxécuter et d'insérer cette macro dans le fichier qui va me servir de résultat
- J'ai une erreur d'exécution '9': L'indice n'appartient pas à la sélection
- le code ne m'apparaît pas très optimisé.
Merci de m'aider.
Cordialement.