Bonjour à tous, la communauté
Je débute vraiment en VBA, j'espère pouvoir être clair dans l'explication de mon problème.
1 - Je souhaite copier les données de plusieurs feuilles d'un classeur ( fichier sol source) et coller vers un seul fichier ( fichier comp cible) qui lui a aussi plusieurs feuilles.
2 - mon but est d'ouvrir le fichier source, pour chaque feuille de ce classeur, sélectionner les données ( cellules sans entetes) copier et coller vers chaque feuille correspondante du fichier cible mais dans une plage de cellules précise de la feuille (en vert dans le fichier).
j'ai commencé un code mais quand je bloque après l'ouverture du fichier source, le code bug et j'ai pas trop d idées pour avancer .
PS :
Si quelqu'un pourrait m'aider, je vous joint le code et les fichiers
Merci par avance pour vos aides
code VBa dans fichier xlsm:
Option Explicit
Sub copie_Solaar()
Dim fd As Object
Dim chemin$, nom$
Dim SolaarSource As Workbook 'fichier à ouvrir'
Dim compareCible As Workbook 'fihcier où on écrit les données'
Dim MaxLignes As Integer
Application.DisplayAlerts = False 'empecher message d'alertes'
Application.ScreenUpdating = False 'cacher la MAJ d'excel'
Set compareCible = ThisWorkbook
MaxLignes = Range("B" & Rows.Count).End(xlUp).Row
compareCible.Sheets("Metier").Range("B3:H" & MaxLignes).ClearContents
compareCible.Sheets("Secteur").Range("B3:G" & MaxLignes).ClearContents
'compareCible.Sheets("Produit").Range("B3:G" & MaxLignes).ClearContents
'compareCible.Sheets("Portefeuille").Range("B3:G" & MaxLignes).ClearContents
'compareCible.Sheets("etc....feuill").Range("B3:J" & MaxLignes).ClearContents
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Title = "Choisissez le fichier à partir du quel vous souhaitez importer les données"
.InitialFileName = ""
.Filters.Clear
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Else
MsgBox "Vous n'avez selectionné aucun fichier", , "Recommencer": GoTo 1
End If
End With
Set SolaarSource = Workbooks.Open(nom) " mon code bloque juste parès l'ouverture du fichier"
SolaarSource.Sheets("EntiteVersionMetierDevise").Range("A1:G").Copy
compareCible.Sheets("EntiteVersionMetierDevise").Range("B3" & MaxLignes).PasteSpécial Paste:=xlPasteValues
'"Je reflechis si je peux utiliser le décompte des feuilles et selectionner les cellules à copier coller voir ci-dessous"
'SolaarSource.Activate
'With SolaarSource
'For Each ws In .Worksheets
'ws.
SolaarSource.Close 0
MsgBox "Bon alors tu es
Je débute vraiment en VBA, j'espère pouvoir être clair dans l'explication de mon problème.
1 - Je souhaite copier les données de plusieurs feuilles d'un classeur ( fichier sol source) et coller vers un seul fichier ( fichier comp cible) qui lui a aussi plusieurs feuilles.
2 - mon but est d'ouvrir le fichier source, pour chaque feuille de ce classeur, sélectionner les données ( cellules sans entetes) copier et coller vers chaque feuille correspondante du fichier cible mais dans une plage de cellules précise de la feuille (en vert dans le fichier).
j'ai commencé un code mais quand je bloque après l'ouverture du fichier source, le code bug et j'ai pas trop d idées pour avancer .
PS :
Si quelqu'un pourrait m'aider, je vous joint le code et les fichiers
Merci par avance pour vos aides
code VBa dans fichier xlsm:
Option Explicit
Sub copie_Solaar()
Dim fd As Object
Dim chemin$, nom$
Dim SolaarSource As Workbook 'fichier à ouvrir'
Dim compareCible As Workbook 'fihcier où on écrit les données'
Dim MaxLignes As Integer
Application.DisplayAlerts = False 'empecher message d'alertes'
Application.ScreenUpdating = False 'cacher la MAJ d'excel'
Set compareCible = ThisWorkbook
MaxLignes = Range("B" & Rows.Count).End(xlUp).Row
compareCible.Sheets("Metier").Range("B3:H" & MaxLignes).ClearContents
compareCible.Sheets("Secteur").Range("B3:G" & MaxLignes).ClearContents
'compareCible.Sheets("Produit").Range("B3:G" & MaxLignes).ClearContents
'compareCible.Sheets("Portefeuille").Range("B3:G" & MaxLignes).ClearContents
'compareCible.Sheets("etc....feuill").Range("B3:J" & MaxLignes).ClearContents
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Title = "Choisissez le fichier à partir du quel vous souhaitez importer les données"
.InitialFileName = ""
.Filters.Clear
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Else
MsgBox "Vous n'avez selectionné aucun fichier", , "Recommencer": GoTo 1
End If
End With
Set SolaarSource = Workbooks.Open(nom) " mon code bloque juste parès l'ouverture du fichier"
SolaarSource.Sheets("EntiteVersionMetierDevise").Range("A1:G").Copy
compareCible.Sheets("EntiteVersionMetierDevise").Range("B3" & MaxLignes).PasteSpécial Paste:=xlPasteValues
'"Je reflechis si je peux utiliser le décompte des feuilles et selectionner les cellules à copier coller voir ci-dessous"
'SolaarSource.Activate
'With SolaarSource
'For Each ws In .Worksheets
'ws.
SolaarSource.Close 0
MsgBox "Bon alors tu es