Une ligne que j'essaye de comprendre (VBA)

Pouvez vous m'aider à comprendre cette ligne svp?

L = Sheets("Feuil2").Range("A65536").End(xLUp).Row

j'ai compris que L= à tout ce qui suit

Par contre pourquoi L = à la cellule A65536?????

Et pourquoi il faut mettre End avant (xLUP)

Et justement, qu'est ce que xLUP signifie?

Et Row?

Merci

Bonjour,

Essai de traduction :

L est égal à la dernière ligne non vide de la colonne A en feuille 2

Amicalement

Nad

mais ça sert à quoi stp

nicom974 a écrit :

mais ça sert à quoi stp

Ben c'est le reste de la macro qui peut le dire !

Nad

Bonjour,

L est une variable qui est utilisée ensuite par le reste de ta macro.

L = Sheets("Feuil2").Range("A65536").End(xLUp).Row

veut dire que L = le numéro de la dernière ligne remplie en colonne A de la Feuil2

Ensuite dans ta macro tu dois retrouver L dans des lignes telles que :

For i = 10 to L

ou

Range("C" & L).Interior.ColorIndex = 8

Si tu veux plus de précisions, ou de l'aide pour modifier ou faire évoluer ta macro, joins le code complet de ta macro, et un bout de ton classeur.

Voici le code que j'essaye de comprendre, je me suis mis au VBA et je dois dire que j'ai l'impression de bloquer un petit peu. Même pour le langage C j'ai pas bloqué comme ça. lol

..................................................code.....................................................................

Sub copie()

Application.ScreenUpdating = False

Dim l As Integer

l = Sheets("Feuil2").Range("A65536").End(xlUp).Row

Application.CutCopyMode = False

Sheets("Feuil1").Range("A1").Cut

Sheets("Feuil2").Select

Range("A" & l + 1).Select

ActiveSheet.Paste

Sheets("Feuil1").Select

Range("A1").Select

Application.ScreenUpdating = True

End Sub

..................................................code..................................................................

nicom974 a écrit :

Voici le code que j'essaye de comprendre, je me suis mis au VBA et je dois dire que j'ai l'impression de bloquer un petit peu. Même pour le langage C j'ai pas bloqué comme ça. lol Expliquez moi surtout ce qui est en rouge svp

..................................................code.....................................................................

Sub copie()

Application.ScreenUpdating = False

Dim l As Integer

l = Sheets("Feuil2").Range("A65536").End(xlUp).Row

Application.CutCopyMode = False

Sheets("Feuil1").Range("A1").Cut

Sheets("Feuil2").Select

Range("A" & l + 1).Select

ActiveSheet.Paste

Sheets("Feuil1").Select

Range("A1").Select

Application.ScreenUpdating = True

End Sub

..................................................code..................................................................

Re,

Ce code te permet de :

  • Couper les données de la Feuille 1 Cellule A1
  • Passer en Feuille 2
  • Sélectionner en Colonne A, la dernière cellule non vide + 1 ligne plus bas
  • Coller lesdites données
  • Repasser en Feuille 1 Cellule A1

Amicalement

Nad

C'est bien ça...

Donc ta macro "coupe" (Ctrl + X) le contenu de la cellule A1 en Feuille 1

Et le colle dans la cellule après la dernière remplie, en colonne A de la feuille 2

Ton code commenté :

Sub copie()

Application.ScreenUpdating = False 'désactive la mise à jour de l'écran

Dim l As Integer 'déclare A comme étant un nombre compris entre -32 768 et 32 767 (voir ce sujet)

l = Sheets("Feuil2").Range("A65536").End(xlUp).Row 'l = la dernière cellule remplie de la colonne A, feuille 2

Application.CutCopyMode = False

Sheets("Feuil1").Range("A1").Cut 'coupe le contenu de A1, feuille 1

Sheets("Feuil2").Select 'active la feuille 2

Range("A" & l + 1).Select 'active la cellule de la colonne A, ligne l+1

ActiveSheet.Paste 'colle le contenu du presse papier dans la cellule active

Sheets("Feuil1").Select 'active la feuille 1

Range("A1").Select 'active la cellule A1

Application.ScreenUpdating = True 'réactive l'écran (ligne non obligatoire en fin de macro)

End Sub

Edit : re bonjour Nad. Moins rapide mais plus précis ...?

Bonjour,

Hello, Sylvain, Nad,

Bravo Sylvain TBM, ça te fait deux podium pour la même journée !

Cordialement,

Bonjour,

bonjour le fil

ton code un peu allégé, en évitant les .Select

Sub copie()
Dim l As Integer
l = Sheets("Feuil2").Range("A65536").End(xlUp).Row
Sheets("Feuil1").Range("A1").Cut
With Sheets("Feuil2")
    .Paste .Range("A" & l + 1)
End With
End Sub

Bonjour,

Variante plus rapide :

Sub copie()
Dim l As Integer
Application.ScreenUpdating = False
with sheets("feuil2")
l = .Range("A65536").End(xlUp).Row
Sheets("Feuil1").Range("A1").Cut Destination:=.Range("A" & l + 1)
End with
End Sub

Amicalement

Dan

Bonjour,

Application.CutCopyMode = False

Et ça, ça voudrait dire que le mode copier est désactivé???

With --> En anglais ça veut dire avec, là il veut dire toujours la même chose, des explications svp

Rechercher des sujets similaires à "ligne que essaye comprendre vba"