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

XL 2016 [RESOLU]Simplifier macro issue de l'enregistreur

  • Initiateur de la discussion Initiateur de la discussion louatt
  • 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 !

L

louatt

Guest
Bonjour,

j'ai une macro ci-dessous issue de l'enregistreur de macro, je cherche à la simplifier.

Au lieu de sélectionner la plage de A4:A54 je cherche à sélectionner de A4 à la dernière cellule remplie et coller les éléments .

Par avance merci pour votre aide.

VB:
'Aller dans l'onglet BD_VGP
    Sheets("BD_VGP").Select
    'Sélectionner de la cellule A4 jusqu'a la dernière ligne remplie au lieu de A54
    Range("A4:A54").Select
    Selection.Copy
    'Aller dans l'onglet BD_PV2
    Sheets("BD_PV2").Select
    'Se positionner dans la cellule B3
    Range("B3").Select
    'Coller les éléments copiés
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 
Bonjour louatt
A tester:
VB:
Sheets("BD_VGP").Range("A4:A" & Sheets("BD_VGP").Range("A" & Rows.Count).End(xlUp).Row).Copy
   Sheets("BD_PV2").Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 
Bonjour

Une autre façon de faire.
VB:
Sub Version_Simple()
Dim t
t = Sheets("BD_VGP").Cells(4, 1).Resize(Cells(Rows.Count, 1).End(3).Row - 3).Value
Sheets("BD_PV2").[B3].Resize(UBound(t, 1)) = t
End Sub
EDITION: Bonjour pierrejean 😉
 
Re

Une autre version commise pour cause de confinement 😉
(Faut bien s'occuper!)
VB:
Sub Version_Simple2()
Dim Rng As Range: Set Rng = Sheets("BD_VGP").Cells(4, 1).CurrentRegion.Columns(1)
Sheets("BD_PV2").[B3].Resize(Rng.Rows.Count) = Rng.Value
End Sub
NB: Cette version peut sans doute avoir des effets de bord (may be)
 
Staple 1600

merci mais vais finir par en perdre mon latin ☺

Ne m'en veux pas mais suis parti sur le code proposé par PierreJean☺

Par contre mon format date est collé au format numérique et je voudrais qu'il soit coller au format jj/mm/dddd

je cherche à modifier le code pour simplement coller lpas avec l'option valeur

VB:
'Date du contrôle
'Sélectionne la page BD_VGP et sélectionne de B4 à la dernière cellule remplie les dates du contrôle
Sheets("BD_VGP").Range("B4:B" & Sheets("BD_VGP").Range("B" & Rows.Count).End(xlUp).Row).Copy

'Sélectionne la page BD_PV2 se range en E3 et colle les données des dates de contrôle
   Sheets("BD_PV2").Range("E3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…