Bonjour,
En parcourant le forum, j'ai trouvé une macro correspondant que j'ai adapté à mon besoin, que voici:
Copier les données d'un fichier à (nom aléatoire) vers la dernière ligne d'un fichier base de données.
En gros:
Sélection du fichier "source" via message box
renommage de nom de feuille (pour facilité ma macro)
Sélection de la plage de données, c'est à dire de la ligne A5 jusqu'à la case vide
Copie
Collage dans le fichier base de données, dans l'onglet "bdd" dans la première case vide
Ma macro:
J'ai cependant une erreur à la ligne:
Qu'es-ce qui ne va pas dans ma macro ?
Merci d'avance de votre aide
En parcourant le forum, j'ai trouvé une macro correspondant que j'ai adapté à mon besoin, que voici:
Copier les données d'un fichier à (nom aléatoire) vers la dernière ligne d'un fichier base de données.
En gros:
Sélection du fichier "source" via message box
renommage de nom de feuille (pour facilité ma macro)
Sélection de la plage de données, c'est à dire de la ligne A5 jusqu'à la case vide
Copie
Collage dans le fichier base de données, dans l'onglet "bdd" dans la première case vide
Ma macro:
Code:
Sub CopieColleWbk()
Dim WbkS As Workbook ' Classeur source
Dim WbkD As Workbook ' Classeur de Destination
Dim Sht As Worksheet ' Feuille source
Dim VPathFic As String
' Demander de choisir le classeur Source
MsgBox "Merci de sélectionner le classeur source !"
' Choisir le fichier à ouvrir
VPathFic = ChoixFichier()
' Si aucun fichier, alors sortir
If VPathFic = "" Then Exit Sub
' Sinon ouvrir le classeur
Workbooks.Open VPathFic
' Définir le classeur source
Set WbkS = ActiveWorkbook
' Renommer la feuille
ActiveSheet.Name = "Feuil1"
' activation classeur destination
Windows("tableau de bord.xlsx").Activate
Sheets("Bdd").Select
' Définir le classeur de Destination
Set WbkD = ActiveWorkbook
' Effectuer la copie / collage
WbkS.Sheets(Feuil1).Range("A5:A" & [C65535].End(xlUp).Row).Copy Destination:=WbkD.Sheets(bdd).Range("A5:A" & [A65536].End(xlUp).Row + 1)
' Message de fin
MsgBox "La copie du classeur source vers le calsseur de destination est terminée"
' effacer les variables objet
Set Sht = Nothing
Set WbkD = Nothing
Set WbkS = Nothing
End Sub
Function ChoixFichier()
Dim fd As FileDialog
Dim vrtSelectedItem As Variant
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
If .Show = -1 Then
ChoixFichier = fd.SelectedItems(1)
Else
ChoixFichier = ""
End If
End With
Set fd = Nothing
End Function
J'ai cependant une erreur à la ligne:
Code:
WbkS.Sheets(Feuil1).Range("A5:A" & [C65535].End(xlUp).Row).Copy Destination:=WbkD.Sheets(bdd).Range("A5:A" & [A65536].End(xlUp).Row + 1)
Qu'es-ce qui ne va pas dans ma macro ?
Merci d'avance de votre aide
Dernière édition: