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

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
 

pierrejean

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

Staple1600

XLDnaute Barbatruc
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 ;)
 

Staple1600

XLDnaute Barbatruc
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)
 

louatt

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

Discussions similaires

Réponses
3
Affichages
211