VBA variable

Bonjour à tous;

    Rows("3:4").Copy
    Rows("5:329").Select
    Selection.PasteSpecial Paste:=xlFormats

Je voudrais remplacer "329" par la dernière ligne de mon tableau. (qui évolue)

Je ne sais pas comment déclarer et écrire la variable.

pouvez-vous m'aider

Claude.

Bonjour Claude,

Essaie quelque chose du genre :

    Rows("3:4").Copy 
    Rows("5:5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.PasteSpecial Paste:=xlFormats

Amicalement,

V_Elbie

Bonjour,

V_Elbie, ta solution fonctionne si la dernière ligne occupée est dans la colonne A

Pour connaître la dernière ligne occupée dans toute la feuille :

Dim DerLig As Long
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Rows("3:4").Copy
Rows("5:" & DerLig).PasteSpecial Paste:=xlFormats

Bonjour,

Effectivement Félix, c'est dans ces conditions que je l'ai testée, sans trop me poser de questions d'ailleurs.

Donc, Claude devrait adopter ta solution, techniquement plus valable.

Amicalement,

V_Elbie

re,

Merci à vous deux, les 2 solutions fonctionnent, mais celle de felix m'intéresse + car je

souhaite me familiariser avec les variables. (si c'est comme çà qu'on appelle "DerLig")

Dim DerLig As Long
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
Rows("3:4").Copy
Rows("5:" & DerLig).PasteSpecial Paste:=xlFormats 

toujours dans la même macro, j'ai besoin de copier la formule en L3, jusqu'à la dernière ligne.

- j'essaye d'utiliser "DerLig", mais je n'y arrive pas.

pour tester, j'ai fait :

Range("L" & DerLig).Select

çà marche, mais je coince pour la plage L3:L&DerLig

encore merci

amicalement

Claude.

Re-,

comme ceci :

Dim DerLig As Long
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).row
Range("L3:L" & DerLig).Select

mais il faut savoir que le .Select est rarement nécessaire

Quelle est la suite de ton code?

re,

Je tournais autour, quillemets mal placés.

Je mets Select , çà me permet de voir si çà marche, mais je n'en ai pas besoin.

la suite de mon code c'est : copier la formule en L3 jusqu'en bas. (DerLig)

comment l'écrirais-tu ?

Claude.

Re-,

comme ceci :

Dim DerLig As Long
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).row
Range("L3").AutoFill Destination:=Range("L3:L" & DerLig)

re,

c'est nickel, code complet :

Sub felix()
Dim DerLig As Long
DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Application.EnableEvents = False
        Range("m3:n4").AutoFill Destination:=Range("M3:n" & DerLig)
        Rows("3:4").Copy
        Rows("5:" & DerLig).PasteSpecial Paste:=xlFormats
    Application.EnableEvents = True
End Sub

j'ai mis 2 lignes sur "l'AutoFill" pour conserver une ligne grisée sur 2.

merci felix

à+...Claude.

Rechercher des sujets similaires à "vba variable"