Partager via

Masquer une feuille Excel et exécuter une macro

Anonyme
2022-04-07T15:48:09+00:00

Bonjour,

J'ai créé une macro pour désactiver les cases d'option (remettre à zéro un questionnaire). Des éléments de la macro se trouvent dans la feuille "Réponses" : lorsque je la masque, la macro ne s'exécute pas (logique).

Y a-t-il une solution pour pallier ce problème ? J'aimerais vraiment masquer cette feuille.

Merci d'avance pour réponse.

Malica

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

6 réponses

  1. Anonyme
    2022-04-07T22:12:10+00:00

    Ah oui, j'ai "sauté" cette ligne lorsque j'ai transcrit (et Daniel l'a mieux observé ! 🤗).

    En fait, tu devrais plutôt écrire cette partie comme suit (et comme l'avait indiqué Daniel) :

    With Sheets("TEST")
    
        .Range("B4:C8").FormulaR1C1 = _
    
    "........................................................................................................................................................................................"
    
        .Range("B4:E4").AutoFill Destination:=Range("B4:E8")
    
    End With
    

    En effet, il ne sert à rien de "nettoyer" la plage B4:C8 avant de la remplir de pointillés, ni de sélectionner la plage B4:E8 avant de faire le remplissage par recopie.

    Mais bon, l'essentiel est que tu en voies le bout ! 😉

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-04-07T20:57:48+00:00

    Les cases d'options n'ont pas été remise à zéro.

    J'ai eu ma réponse. Merci encore.

    With Sheets("Réponses")

    .Range("C3:C26").ClearContents 
    
    .Range("E11:E13").ClearContents 
    

    End With

    With Sheets("TEST")

    .Range("B4:C8").ClearContents 
    
    Selection.FormulaR1C1 = \_ 
    
        "........................................................................................................................................................................................" 
    
    Range("B4:E8").Select 
    
    .Range("B4:E4").AutoFill Destination:=Range("B4:E8") 
    

    End With

    End Sub

    0 commentaires Aucun commentaire
  3. Anonyme
    2022-04-07T20:43:42+00:00

    Effectivement, j'ai utilisé l'enregistreur de macro :) Merci encore pour votre réactivité, j'ai pu finaliser le questionnaire et appris de nouvelles choses en VBA.

    J'ai juste ajouté ce qui est entouré en rouge pour que les pointillés réapparaissent.

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2022-04-07T16:30:09+00:00

    Bonjour,

    Essaie :

    Sheets("Réponses").[C23:C26,E11:E13].ClearContents
    With Sheets("TEST")
    .[B4:C8] = "..........................."
    .[B4:E4].AutoFill Destination:=.[B4:E8], Type:=xlFillDefault
    End With

    Daniel

    0 commentaires Aucun commentaire
  5. Anonyme
    2022-04-07T16:18:56+00:00

    Mmmmmh, ça sent bon la macro enregistrée et non reprise. 😉

    Il y a beaucoup de "select" inutiles dans ta macro, qui en pénalisent l'exécution et qui sont probablement à l'origine de tes soucis. Pour ma part, en optimisant ta macro comme suit, je ne rencontre pas de souci, je pense qu'elle fait ce qui est attendu :

    Sub DesactiverCaseOption()
    
    With Sheets("Réponses")
        .Range("C3:C26").ClearContents
        .Range("E11:E13").ClearContents
    End With
    
    With Sheets("TEST")
        .Range("B4:C8").ClearContents
        .Range("B4:E4").AutoFill Destination:=Range("B4:E8")
    End With
    
    End Sub
    
    0 commentaires Aucun commentaire