VBA : copie ligne vers un autre fichier selon numero de ligne

Bonjour a tous,

J´ai longuement recherche sur différents forums, mea culpa par avance si le sujet existe mais que je ne l´ai point trouvé.

Je dispose d´un fichier me permet de coller une ligne sur la dernière ligne vide d´un autre fichier.

A force de coller des centaines de lignes, la copie devient très longue (la macro met trop de temps a définir la dernière ligne vide)

Voici mon code :

Sub sav_vwl()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    'copy balance offer 
    If Sheets("vba").Range("d216").Value = Sheets("vba").Range("d217").Value Or Sheets("vba").Range("d216").Value = Sheets("vba").Range("d218").Value Then

    'copie recap grp
    Dim rangeDepart As Range
    Dim fichier_recap_grp As String
    fichier_recap_grp = Sheets("vba").Range("d127").Value

    'activation de la fiche recap_grp
    Sheets("RECAP").Visible = True
    Sheets("RECAP").Activate
    Sheets("RECAP").Select
    'copie des donnees
    Range("F3:CD3").Copy
    'desactivation de la fiche recap_grp
    Sheets("RECAP").Visible = False
    Sheets("START").Activate

    'ouverture du recap grp
            Workbooks.Open Filename:=fichier_recap_grp
            Set wb2 = ActiveWorkbook

            Sheets("balance").Select

            'premiere ligne ou chercher les lignes vides
            Set rangeDepart = Range("F17")
            derniereLigne = 1
            While Len(Trim(rangeDepart.Value)) > 0
            Set rangeDepart = rangeDepart.Offset(1, 0)
            Wend
            rangeDepart.Select

            'collage des donnees avec lien
            ActiveSheet.Paste Link:=True
            Application.ScreenUpdating = True
            'fermeture du recap grp
            wb2.Close True
    End If
    End Sub
    

(je sais, loin d´être parfait, je bricole comme je peux )

A la place de F17 qui est la première cellule non vide de mon tableau recap, je souhaiterais plutôt indiquer directement la cellule non vide (une cellule du tableau recap indiquerait par exemple le nb de lignes actuelles incrémenté d´1) ex : F + valeur d´une cellule

Est-ce possible ?

En vous remerciant par avance pour votre aide et en vous souhaitant une excellente journée.

Bien Cordialement

Bonjour

Pas sur que cela puisse convenir car sans fichier ....

Essayez ceci :

Sub sav_vwl()
With Application
  .ScreenUpdating = False
  .DisplayAlerts = False
 End with
'copy balance offer
If Sheets("vba").Range("d216").Value = Sheets("vba").Range("d217").Value Or Sheets("vba").Range("d216").Value = Sheets("vba").Range("d218").Value Then

'copie recap grp
Dim rangeDepart As Range
Dim fichier_recap_grp As String
Dim derniereligne as integer
fichier_recap_grp = ThisWorkbook.Sheets("vba").Range("d127").Value

'ouverture du recap grp
Workbooks.Open Filename:=fichier_recap_grp
Set Wb2 = ActiveWorkbook
With Wb2
    ThisWorkbook.Sheets("RECAP").Range("F3:CD3").Copy
    With .Sheets("balance")
        .Activate
         derniereligne = .Range("F" & .Rows.Count).End(xlUp).Row + 1
        .Range("F" & derniereligne).Select
        ActiveSheet.Paste Link:=True
    End With
    'fermeture du recap grp
    .Close True
End With
Application.ScreenUpdating = True
End If
End Sub

Cordialement

Rechercher des sujets similaires à "vba copie ligne fichier numero"