XL 2010 VBA - sélection de lignes variable

  • Initiateur de la discussion Initiateur de la discussion La Haine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

La Haine

XLDnaute Nouveau
Bonjour à tous,

Débutant sur vba, et après avoir résolu pas mal de problèmes en farfouillant le forum (merci à tous les contributeurs au passage !), me voici bloqué. Je tente de sélectionner les 6 dernières lignes d'un tableau pour les copier / coller valeurs. Je n'arrive qu'à les sélectionner une par une en remontant pour arriver à mes fins, pas les 6 directement. Voici mon code :

VB:
Worksheets("exemple").Select
    Range("D1100").Select
    Selection.End(xlUp).Select
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    ActiveCell.Offset(-1, 0).Select
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        ActiveCell.Offset(-1, 0).Select
    Rows(ActiveCell.Row).Selec
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        ActiveCell.Offset(-1, 0).Select
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        ActiveCell.Offset(-1, 0).Select
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        ActiveCell.Offset(-1, 0).Select
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Bien entendu, le tableau a systématiquement des lignes qui s'ajoutent, ce ne sont jamais les mêmes lorsque l'on lance le programme.

J'ai cherché un problème similaire sur le forum mais je n'ai pas trouvé, ou pas compris ^^ Si quelqu'un peut me guider ou voir même me donner un lien que je n'ai pas trouvé pouvant m'aider, ce serait sympa !

Merci et bonne journée
 
Bonjour
essaie ceci

VB:
Sub test()
With ActiveSheet
    last = .Range("D" & .Rows.Count).End(xlUp).Row
    .Rows(last - 5).Resize(6).EntireRow.Copy
    .Rows(last - 5).Resize(6).PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=False
  
End With
End Sub

Hello @pierrejean
désolé, raffraichi trop tard :-D
 
Bonjour à tous,

Un autre essai qui tient compte qu'il peut y avoir moins de 6 lignes.
VB:
Sub toto()
Dim derlig As Long, premlig As Long
   With Worksheets("exemple")
      derlig = .Cells(Rows.Count, "d").End(xlUp).Row
      premlig = derlig - 6 + 1
      If premlig < 0 Then premlig = 1
      With .Cells(premlig, "d").Resize(derlig - premlig + 1).EntireRow
         .Value = .Value
      End With
   End With
End Sub
 
Re

Tu peux aussi faire comme ceci

VB:
Sub test()
Dim x&
  x = Range("d" & Rows.Count).End(3).Row
  Application.ScreenUpdating = False

  Application.Goto Range("d" & x)
  Range(ActiveCell, ActiveCell.Offset(-5, 0)).Copy
  'À modifier
  Range("f2").PasteSpecial xlPasteValues
  Application.CutCopyMode = False
  Application.Goto Range("d2")
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
560
Réponses
2
Affichages
290
Réponses
18
Affichages
329
Réponses
17
Affichages
1 K
Retour