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

Microsoft 365 deux macros succesives et un bouton

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

MICHAEL

XLDnaute Occasionnel
Bonjour,
je souhaiterai executer à l'aide d'un sel bouton et dans cet ordre les marcros suivantes: macro4 et macroAlpha.

macro 4
Sub Macro4()
'
' Macro4 Macro
'

ActiveSheet.Unprotect
Range("l6").Select
Range("d1").Select

End Sub

puis macro Alpha
Sub Alpha()
ActiveSheet.Unprotect
Application.ScreenUpdating = False
Range("k1").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
Application.CutCopyMode = False
ActiveSheet.Unprotect
Range("o6😱125").Select
Selection.Copy
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.SmallScroll Down:=-117
Range("D6😀125").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-113
Range("D6:k125").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Membres").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Membres").Sort.SortFields.Add2 Key:=Range( _
"D6😀125"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Membres").Sort
.SetRange Range("D6:k125")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("k1:k118").Select
Range("k118").Activate
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
Range("d1,k1,f5,g5,k5,l5").Select

Selection.ClearContents
Range("A1").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True
ActiveSheet.Protect
End Sub

Merci de votre aide
 
Bonjour @MICHAEL

Ta 1ere macro ne sert absolument à rien !!!
Pourquoi :
Je traduis ta macro
Sub Macro4()
' Macro4 Macro
ActiveSheet.Unprotect
Range("l6").Select
Range("d1").Select
End Sub

'puis macro Alpha
Sub Alpha()
ActiveSheet.Unprotect
Application.ScreenUpdating = False
Range("k1").Select

La macro 4
ActiveSheet.Unprotect ==> je déprotège la feuille active
Range("l6").Select ==> je vais dans la cellule I6 😳
Range("d1").Select ==> je vais dans la cellule D1 donc je ne suis plus dans la cellule I6 😳

puis macro Alpha
ActiveSheet.Unprotect ==> je déprotège la feuille active mais c'est déjà fait 😵
Application.ScreenUpdating = False ==> je bloque l'affichage
Range("k1").Select ==> je vais dans la cellule K1 donc je ne suis plus dans la cellule D6 😳

Donc tu t'es promené dans la cellule I6 puis D6 et enfin K1 et tu as déprotégé 2 fois la même feuille !!!
Est ce utile toute cette promenade !!! 🤣

Et tout le reste de ta macro est du même genre plus de 60 lignes de promenade .... qui devrait tenir en moins de 10 lignes .....

Si tu mettais ton fichier avec les explications que tu veux faire . 😉
 
@MICHAEL

Sans fichier donc non testé je te propose cette macro

VB:
Sub test()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Range("D6:D125") = Range("O6:O125").Value
Range("D6:k125").Sort Key1:=Range("D6:D125"), Order1:=xlAscending, Header:=xlNo
Range("d1,k1,f5,g5,k5,l5").ClearContents
ActiveSheet.Protect
End Sub

Si cela ne fonctionne pas fourni ton fichier
Merci de ton retour
 
Dernière édition:
Désolé, je reviens.
la macro 4 sert a valider une ligne, car je ne sais pas enregistrer une cellule sans en saisir une autre.
pour le reste, sur que l'on pourrait nettoyer un peu celle ci.
je prends note de tes remarques et t'en remercie
 
je ne peux pas fournir ce fichier, celui ci comporte des données confidentiels
(noms adresses et num telephone)
 
@MICHAEL

Je maintiens que ta macro 4 ne sert à rien
Ton curseur va successivement dans la cellule I6 puis dans la cellule D6 il n'y a aucune validation en se promenant de cellule en cellule.

Fourni ton fichier avec les explications pour ce que tu veux faire

Rappel les "select" et les "activate" sont à proscrire dans 99% des cas

je ne peux pas fournir ce fichier, celui ci comporte des données confidentiels
(noms adresses et num telephone)

Rien ne t’empêche de fournir un fichier représentatif 😳

C'est quoi représentatif ?

- représentatif, même organisation des lignes et des colonnes, mêmes libellés, même nom des TS, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être un simple copier coller du code.
 
Certaines de tes macros ne sont pas "ergonomique' voir exotique je voudrais essayer de tout remettre dans l'ordre.

Dit autrement :
Le postier pourrait faire le tour du monde pour livrer ton courrier (tu aurais bien ton courrier) mais il irait plus vite si il allait directement à ton adresse pour mettre le courrier dans ta boite .
 
Dernière édition:
Tu veux le même principe que ce fichier ?


Et pour les autres macros elle font quoi ?
 
- 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 modifier un code
Réponses
1
Affichages
426
Réponses
5
Affichages
379
Réponses
22
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…