Ecriture sur la dernière ligne identifiée par une variable

Bonjour

Après avoir déterminé la dernière ligne occupée par "lignajout", je voudrais faire en sorte que ce qui est dans le presse papier soit recopié sur la ligne "lignajout"...sachant que la totalité de la ligne sera occupée comme avec le "range('"3:3").

Autrement dit par quoi remplacer "range('"3:3") ?

A quoi correspond : Range("A" & Rows.Count).End(xlUp).Row + 1 ?

Merci

If Sheets("Stat").[A1] = "" Then

ActiveSheet.Paste Destination:=Worksheets("stat").Range("3:3")

'

Bonjour,

à tester,

ActiveSheet.Paste Destination:=Worksheets("stat").Range("A" & lignajout)

Bonjour Jpmalb, bonjour le forum,

Travailler avec un bout de code ne simplifie pas la compréhension... Je te propose, à tout hasard :

If Sheets("Stat").[A1] = "" Then
    lignajout = 1
Else
    lignajout = Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
ActiveSheet.Paste Destination:=Worksheets("stat").Range("3:" & lignajout)

Pour l'explication du code :

Range("A" & Rows.Count).End(xlUp).Row + 1

permet de connaître le numéro de ligne de la première cellule vide d'une colonne, ici, la colonne A.

On par de la dernière ligne de la colonne :

Range("A" & Rows.count)

on remonte jusqu'à la dernière cellule éditée de cette colonne avec :

.End(xlUp)

On obtient le numéro de celle dernière ligne éditée avec :

.Row

On obtient le numéro de la première cellule vide en rajoutant +1 à ce numéro obtenu.

De la même manière pour obtenir par exemple la première cellule vide de la ligne 1 on aurait :

Cells(1, Application.Columns.Count).End(xlToLeft).Column + 1

Merci pour vos réponses...et les explications...

Rechercher des sujets similaires à "ecriture derniere ligne identifiee variable"