Bonjour le fil, bonjour le forum,
Tout à fait d'accord avec Galopin !...
On doit coller une colonne unique Euros dans un tableau qui en comporte 3 de colonnes Euros !?... Mais, d***rdez-vous...
Essaie ce code à adapter :
Private Sub CommandButton1_Click()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim TS As ListObject 'déclare la variable TS (Tableau Source)
Dim PS As Range 'déclare la variable PS (Plage Source)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim LR As Integer 'déclare la variable LR (Ligne de Référence)
Set CS = ThisWorkbook 'définit la classeur source CS
Set OS = CS.Worksheets("Base de données") 'définit l'onglet source OS
CA = CS.Path & "\" 'définit le chemin d'accès CA
Set TS = OS.ListObjects(1) 'ou set TS=OS.ListObjects("Base3") définit le tableau source TS
Set PS = TS.DataBodyRange 'définit la plage source PS
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CD = Workbooks("tableau-maj-suivi.xlsx") 'définit le classeur destination (génère une erreur si ce classeur n'est pas ouvetrt)
If Err <> 0 Then 'condition : si une erreur a été générée
Err.Clear 'supprime l'erreur
Set CD = Workbooks.Open(CA & "tableau-maj-suivi.xlsx") 'définit le classseur destination en l'ouvrant (le code suppose que les deux classeurs sont dans le même dossier, sinon ça plantera...)
End If 'fin d ela condition
On Error GoTo 0 'annule la gestion des erreurs
Set OD = CD.Worksheets("Suivi ") 'définit l'onglet destination OD (attention il y a un espace à la fin !?...)
LR = OD.Cells(Application.Rows.Count, "E").End(xlUp).Row + 1 'définit la ligne de référence de LR
OS.Range(PS.Columns(1), PS.Columns(3)).Copy OD.Cells(LR, "E") 'copie les colonnes 1 à 3 de PS et les colle dans la cellule ligne LR colonne E de OD
OS.Range(PS.Columns(4), PS.Columns(5)).Copy OD.Cells(LR, "J") 'copie les colonnes 4 et 5 de PS et les colle dans la cellule ligne LR colonne J de OD
OS.Range(PS.Columns(6), PS.Columns(8)).Copy OD.Cells(LR, "O") 'copie les colonnes 6 à 8 de PS et les colle dans la cellule ligne LR colonne O de OD
'TS.DataBodyRange.Delete 'cette ligne efface les donnée de la base mais je ne savais pas si il fallait la mettre ou pas...
End Sub
Ton fichier devient, par conséquent, .xlms. :