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

VBA Macro pour débutant

Kirseth

XLDnaute Nouveau
Bonjour a tou(te)s,

Etant néophyte en VBA (En fait j'en ai jamais fait ), je cherche un petit coup de pouce.
Je veux réaliser une macro simple, mais quelque chose m’échappe.

J'enregistre la macro suivante (un simple copié-collé) sur plusieurs lignes, et je l'affecte a un bouton.

Sub Lissage()
'
' Lissage Macro
'

'
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("B4:Q4").Select
Selection.Copy
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("B5:Q5").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWindow.SmallScroll Down:=6
ActiveSheet.Paste
End Sub

Toutefois a mon grand désespoir, elle s'applique sur toutes les pages de mon classeur.
je souhaiterai qu'elle ne concerne que : Feuil4 (Data)

Si je la copie dans la feuil4, et la sors de thisworbook, ça ne fonctionne pas.

Qu'est ce que je oublie ?

En vous remerciant par avance.
 

job75

XLDnaute Barbatruc
Bonjour Kirseth,

En VBA il est généralement inutile de sélectionner, votre macro peut s'écrire plus simplement :
VB:
Sub Lissage()
Feuil4.Range("B4:Q4").Copy Feuil4.Range(Feuil4.Range("B5:Q5"), Feuil4.Range("B5:Q5").End(xlDown))
End Sub
A+
 

job75

XLDnaute Barbatruc
Pour votre apprentissage, le code précédent peut aussi s'écrire :
VB:
Sub Lissage()
With Feuil4.Range("B5:Q5")
    .Rows(0).Copy .Parent.Range(.Rows, .End(xlDown))
End With
End Sub
 

Discussions similaires

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