Reduire macro

hutch57

XLDnaute Occasionnel
Bonjour le forum
J'ai créer une macro qui me permet de copier les données de plusieurs cellule et d'effacer la dernière, elle fonctionne bien
ma question est donc: est ce qu'on peut maintenant faire plus simple avec la macro.
Sub avance1()
Feuil1.Unprotect
Range("F6:H43").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=-17
Range("A6").Select
ActiveSheet.Paste
Range("I18").Select
Application.CutCopyMode = False
Selection.Copy
Range("D18").Select
ActiveSheet.Paste
Range("K6:M43").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=-17
Range("F6").Select
ActiveSheet.Paste
Range("N18").Select
Application.CutCopyMode = False
Selection.Copy
Range("I18").Select
ActiveSheet.Paste
Range("L6:L11").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("N18").Select
Selection.ClearContents
Range("K19:M43").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-9
Range("D1").Select
Feuil1.Protect
End Sub

Merci a tous
Cdt
hutch
 

Papou-net

XLDnaute Barbatruc
Re : Reduire macro

Bonjour hutch57,

Voici un premier jet, d'où j'ai retiré des instructions inutiles.

Code:
Sub avance1()
Range("F6:H43").Copy
ActiveWindow.SmallScroll Down:=-17
Range("A6").Select
ActiveSheet.Paste
Range("I18").Copy
Range("D18").Select
ActiveSheet.Paste
Range("K6:M43").Copy
ActiveWindow.SmallScroll Down:=-17
Range("F6").Select
ActiveSheet.Paste
Range("N18").Copy
Range("I18").Select
ActiveSheet.Paste
Range("L6:L11,N18,K19:M43").ClearContents
ActiveWindow.SmallScroll Down:=-9
Range("D1").Select
End Sub

Il y a moyen de raccourcir encore les instructions Copy...Paste, mais je ne me souviens plus la syntaxe exacte.

Espérant t'avoir aidé.

Cordialement.
 

Staple1600

XLDnaute Barbatruc
Re : Reduire macro

Bonjour


Comme cela le résultat est-il le même ?

Code:
Sub avance1()
Feuil1.Unprotect
Range("F6:H43").Copy Range("A6")
Range("I18").Copy Range("D18")
Range("K6:M43").Copy Range("F6")
Range("N18").Copy Range("I18")
Range("L6:L11,N18,K19:M43").ClearContents
Feuil1.Protect
End Sub
EDITION: Houps collision, bonjour Papou-net
 

Papou-net

XLDnaute Barbatruc
Re : Reduire macro

Bonjour hutch57, staple1600, tacti6,

Eh bien voilà, staple, tu as répondu à mon trou de mémoire : je savais bien qu'il y avait plus direct pour copier-coller.

tacti6 : eh oui, il n'est pratiquement jamais utile de sélectionner des cellules ou plages de cellules pour y effectuer des opérations. On y gagne en rapidité d'écriture du code et d'exécution des procédures.

Cordialement à tous.
 

hutch57

XLDnaute Occasionnel
Re : Reduire macro

Bonjour le forum
Merci de votre réponse rapide
J'ai une erreur dans le code a l'effacement

Sub avance1()
Feuil1.Unprotect
Range("F6:H43").Copy Range("A6")
Range("I18").Copy Range("D18")
Range("K6:M43").Copy Range("F6")
Range("N18").Copy Range("I18")
Range("L6:L11,N18,K19:M43").ClearContents
Feuil1.Protect
End Sub

Cdt
Hutch
 

hutch57

XLDnaute Occasionnel
Re : Reduire macro

Re bonjour le forum
C'est bon ca fontionne
Sub avance1()
Feuil1.Unprotect
Range("F6:H43").Copy Range("A6")
Range("I18").Copy Range("D18")
Range("K6:M43").Copy Range("F6")
Range("N18").Copy Range("I18")
Range("L6:L9,L11:M11,N18,K19:M43").ClearContents
Feuil1.Protect
End Sub

en fait comme j'avais une cellule fusionné LM11 ca bloqué
encore merci a tous
Cdt
Hutch
 

ROGER2327

XLDnaute Barbatruc
Re : Reduire macro

Re...
Re bonjour le forum
C'est bon ca fontionne
Sub avance1()
Feuil1.Unprotect
Range("F6:H43").Copy Range("A6")
Range("I18").Copy Range("D18")
Range("K6:M43").Copy Range("F6")
Range("N18").Copy Range("I18")
Range("L6:L9,L11:M11,N18,K19:M43").ClearContents
Feuil1.Protect
End Sub

en fait comme j'avais une cellule fusionné LM11 ca bloqué
encore merci a tous
Cdt
Hutch
Merci d'avoir répondu, je suis rassuré. En fait le problème venait de la structure de la feuille, pas du code.
Bon dimanche.
ROGER2327
#2323
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 078
Membres
103 455
dernier inscrit
saramachado