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

comment simplifier cette macro ?

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

kinel

XLDnaute Occasionnel
bonjour à tous

suite aux conseils de certains membres du forum je souhaite simplifier cette macro que j'ai créée par l'enregistreur

Sub commande12()
Sheets("Liste").Select
Range("A5😀142").Select ( le😀 = ": D" sans espace)
ActiveWindow.SmallScroll Down:=-153
Range("A5😀142,Q5:Q142").Select
Range("Q5").Activate
Selection.Copy
Sheets("Bon de Commande").Select
Application.DisplayFullScreen = True
Range("C3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B2:G143").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("I1:I2"), Unique:=False
ActiveWindow.SmallScroll Down:=-54
Range("G3:G141").Select
Selection.FormatConditions.Delete
Range("B1:H1").Select
End Sub


merci de vos conseils

Kinel
 
Dernière édition:
Re : comment simplifier cette macro ?

SAlut KINEL
DAns un premier temps commence par supprimer les
ActiveWindow.SmallScroll Down:
C'est quand ton ecran descent il met une ligne de code pour rien.
ensuite le reste je sais pas lol 😛

A+

Code:
Sub commande12()
Sheets("Liste").Select
Range("A5142").Select ( le = ": D" sans espace)
Range("A5142,Q5:Q142").Select
Range("Q5").Activate
Selection.Copy
Sheets("Bon de Commande").Select
Application.DisplayFullScreen = True
Range("C3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B2:G143").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("I1:I2"), Unique:=False
Range("G3:G141").Select
Selection.FormatConditions.Delete
Range("B1:H1").Select
End Sub
 
Re : comment simplifier cette macro ?

Bonjour kinel, Titoy,
Essai comme ceci:

Edit: Dans une macro les Select ne sont généralement pas nécessaire et alourdissent inutilement ton code. Tu pourrais donc remplacer la première ligne comme ceci:
Sheets("Liste").Range("A5: D142,Q5:Q142").copy ( le = ": D" sans espace)
 
Dernière édition:
Re : comment simplifier cette macro ?

Bonjour tous

kinel
Peux-tu tester ce code VBA,stp ,

Code:
Sub commande12()
Dim f As Worksheet, f2 as Worksheet, source As Range, dest As ange
Set f = Sheets("Liste")
Set f2 = Sheets("Bon de Commande")
    With f
        Set source = .Range("A5:D142,Q5:Q142")
        Set dest = f2.Range("C3")
    source.Copy dest
    End With
    With f2
        .Range("B2:G143").AdvancedFilter Action:=xlFilterInPlace, _
        CriteriaRange:= _
        .Range("I1:I2"), Unique:=False
        .Range("G3:G141").FormatConditions.Delete
    End With
End Sub
 
Re : comment simplifier cette macro ?

Bonjour kinel, Titoy, alex67800 et vbacrumble, bonjour à toutes et à tous,

Pas sans les mains, mais sans les variables 🙂

J'ai supprimé le DisplayFullScreen mais à toi de voir.

Code:
Sub commande12()
  
  Sheets("Liste").Range("A5:D142,Q5:Q142").Copy Destination:=Sheets("Bon de Commande").Range("C3")
  Sheets("Bon de Commande").Activate
  With ActiveSheet
    .Range("B2:G143").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
                  Range("I1:I2"), Unique:=False
    .Range("G3:G141").FormatConditions.Delete
    .Range("B1:H1").Select
  End With
End Sub

Cordialement,
Lio

EDIT : vbacrumble, ta proposition est fort élégante 🙂
 
Dernière édition:
Re : comment simplifier cette macro ?

bonjour et merci à tous

je crois bien avoir retenu un petit morceau de chacune de vos propositions

sur la base de vbacrumble

j'ai juste ajouté une petite ligne qui ouvre la feuille bondecommande
pour visualiser le bon avant de l'imprimer

c'est beaucoup plus rapide que mon enregistrement "d'excelien en herbe ! "

merci encore de vos réponses

Kinel
 
- 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
1
Affichages
477
D
Réponses
3
Affichages
1 K
dilank
D
N
Réponses
4
Affichages
2 K
nomitse
N
F
Réponses
0
Affichages
866
fred2705
F
B
Réponses
1
Affichages
1 K
N
Réponses
7
Affichages
4 K
G
Réponses
5
Affichages
3 K
g.milano
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…