Pouvez-vous m'aider à comprendre svp?

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 !

kllmoon

XLDnaute Occasionnel
Bonjour, j'ai une série de macros (afin de protéger 2 feuilles de toutes modifications) qui se mettent en boucle lorsque la valeur est fausse (n'égal pas 4550)

Code:
Private Sub Worksheet_Activate()
Sheets("Nom").Unprotect
Sheets("Chambre").Unprotect
Dim Valeur_Chercher
Dim usename As String
Sheets("Exemple").Range("A194").Value = ("Vert")
usename = Sheets("Exemple").Range("A194").Value
Valeur_Chercher = Range("G3")
      If Valeur_Chercher = 4550 Then
      Range("C3:D721").Select
    Selection.ClearContents
    Range("C3").Select
    MsgBox "Vous n'avez aucun dossier actif", vbInformation, "Attention"
    Sheets("Exemple").Range("A194").Value = ("Rouge")
    Exit Sub
    Else
Application.Run "'statssocial-MAJ-2009-02-04.xls'!trierrnom"
Application.Run "'statssocial-MAJ-2009-02-04.xls'!Module11.trierchambre"
End If
Sheets("Nom").Protect
Sheets("Chambre").Protect
Sheets("Exemple").Range("A194").Value = ("Rouge")
End Sub

Macro triernom
Code:
Sub trierrnom()
    Sheets("Dossiers Actifs").Select
    Range("C3:C721").Select
    Selection.ClearContents
    Sheets("Nom").Select
    Columns("A:A").Select
    Selection.SpecialCells(xlCellTypeFormulas, 2).Select
    Selection.Copy
    Sheets("Dossiers Actifs").Select
    Range("C3").Select
    ActiveSheet.Paste
End Sub

et trier chambre
Code:
Sub trierchambre()
 Sheets("Dossiers Actifs").Select
    Range("D3:D721").Select
    Selection.ClearContents
    Sheets("Chambre").Select
    Range("A2:A706").Select
    Selection.SpecialCells(xlCellTypeFormulas, 1).Select
    Selection.Copy
    Sheets("Dossiers Actifs").Select
    Range("D3").Select
    ActiveSheet.Paste
      Cells.Select
    Range("C1").Activate
    Selection.Find(What:="nillllllllll", After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Replace What:="nillllllllll", Replacement:="", LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
     Selection.Find(What:="8779645", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Replace What:="8779645", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        Range("C3").Select
End Sub

Le problème que je rencontre c'est lorsque les macros "triernom" et "trierchambre" sont appelées, excel semble faire une boucle entre la feuille "dossiers actifs" et "nom" puis la macro plante et me rapporte une erreur. Je n'arrive pas à comprendre pourquoi lorsque je regarde mon code, quelqu'un a une idée???
 
Re : Pouvez-vous m'aider à comprendre svp?

Bonsoir kllmoon,

A quelle feuille correspond la macro événementielle
Private Sub Worksheet_Activate()?
Car celle-ci est relancée soit ici:
Code:
Sheets("Chambre").Select
ou ici:
Code:
Sheets("Dossiers Actifs").Select

Il faut désactiver les macros événementielles au départ du code et le réactiver à la fin:

Code:
Private Sub Worksheet_Activate()
Application.enableevents=false
......
..........
Application.enableevents=true
End Sub
 
- 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
2
Affichages
465
Réponses
1
Affichages
279
Réponses
3
Affichages
543
Réponses
12
Affichages
863
Retour