Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 Pierrejean,

Ça fonctionne, merci ! J'ai juste enlevé le -1 et en avant Guingamps ! J'ai encore du mal avec ces déclarations, mais du coup tu concatènes puis c'est tout bête.

Merci et bonne journée !
 
Bonjour La Haine et bienvenue sur XLD 🙂

derlig = Cells(Rows.Count, "D").End(3).Row

Cells(derlig, "D").Select
Range(ActiveCell, ActiveCell.Offset(-5, 0)).Select

EDIT: bonjour vgendron, pierrejean 🙂
 
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
567
Réponses
2
Affichages
290
Réponses
18
Affichages
332
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…