Je chercher à copier une ligne d'un tableau et la coller dans un autre tableau sans écraser les lignes précédentes. J'ai fait des cherches et j'ai élaboré un bout de code mais qui ne fonctionne pas
Pouvez vous m'aider?
Dim ligne_destination As Integer
ligne_destination = Destination.Cells(Rows.Count, 1).End(xlUp).Row + 1
À adapter et à placer dans le classeur source. Si les deux classeurs sont ouverts, essaie comme ça :
VB:
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set CS = ThisWorkbook 'définit le classeur source CS (Celui qui contient ce code)
Set OS = CS.worSheets("TRIAGE") 'définit l'onglet source OS
Set CD = Workbooks("BD.xlsx") 'définit le classeur destination CD
Set OD = CD.Worksheets("ABB") 'définit l'onglet destination OD
Set DEST = OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
OD.Rows(TA_Ligne).Copy 'copie la ligne à réciser (je n'ai pas compris ton code pour cela)
DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST
End Sub
À adapter et à placer dans le classeur source. Si les deux classeurs sont ouverts, essaie comme ça :
VB:
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set CS = ThisWorkbook 'définit le classeur source CS (Celui qui contient ce code)
Set OS = CS.worSheets("TRIAGE") 'définit l'onglet source OS
Set CD = Workbooks("BD.xlsx") 'définit le classeur destination CD
Set OD = CD.Worksheets("ABB") 'définit l'onglet destination OD
Set DEST = OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
OD.Rows(TA_Ligne).Copy 'copie la ligne à réciser (je n'ai pas compris ton code pour cela)
DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST
End Sub
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set CS = ThisWorkbook 'définit le classeur source CS (Celui qui contient ce code)
Set OS = CS.worSheets("TRIAGE") 'définit l'onglet source OS
Set CD = Workbooks("BD.xlsx") 'définit le classeur destination CD
Set OD = CD.Worksheets("ABB") 'définit l'onglet destination OD
Set DEST = OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
OS.Range("A2:J2").Copy DEST 'Option1 copie/colle
'DEST.Resize(1, 10).Value = OS.Range("A2:J2") 'option2 : récupère uniquement les valeurs
End Sub
@Bruno
Mais p... Tu es carrément flippant toi ! C'est Poutine qui te fait croire qu'être psychorigide à ce point c'est bien ?
Hé David ! Modère tes modérateurs par pitié. Ils vont faire fuir les participants !... Os court... Ha laide... Elpe...
Sub Copier_sans_Copier()
Dim ValeursSeules
ValeursSeules = Cells(1).CurrentRegion.Value
Workbooks("Classeur3").Sheets(1).Cells(Rows.Count, 1).End(3)(2).Resize(UBound(ValeursSeules, 1), UBound(ValeursSeules, 2)).Value = ValeursSeules
End Sub
Condition de test
Deux classeurs ouverts (non enregistrés): Classeur2 et Classeur3
Le code est dans le Classeur2
Il y a des données sur la feuille1 de Classeur 2 et la macro est stockée et lancée dans le Classeur2.
(avec des classeurs enregistrés et ouverts, il faudra adapté ainsi : Workbooks("Classeur3.xlsm")
NB: Je propose cette syntaxe car dans le message introductif cette option du collage
Paste:=xlPasteValues
indique qu'on ne colle que les valeurs seules.
J'aurais cru que tu aurais la curiosité de tester
Juste pour voir comment on peut faire un copier/coller sans justement passer
par
Selection.Copy
puis
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False