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 !

louatt

XLDnaute Junior
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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
773
Réponses
5
Affichages
379
Réponses
5
Affichages
824
Réponses
3
Affichages
431
Retour