IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Excel redémarre à chaque exécution d'un code sur une feuille protégée [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Par défaut Excel redémarre à chaque exécution d'un code sur une feuille protégée
    Bonjour à tous,

    En exécutant le code ci-dessous, Excel redémarre systématiquement sans raison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub CommandButton1_Click()
    ActiveSheet.Unprotect Password:="suivi"
    Dim ctrl As Control, Verif As Boolean
     
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Or TypeOf ctrl Is MSForms.ComboBox Then
            If ctrl.Value = "" Then Verif = True
        End If
    Next
     
    If Verif = True Then
        MsgBox "Sélectionne ton Nom!", vbInformation, "Attention !"
    Else
     
       Range("B10") = ComboBox1.Value
     
         Unload Me
        UserForm3.Show
     
     
    End If
     ActiveSheet.Protect Password:="suivi"
    End Sub
    Je ne comprends pas à quoi cela est dû !
    Quelqu'un pourrait-il m'aider à résoudre ce problème?
    Un grand merci par avance
    Je précise que la cellule B10 est verrouillée et que la feuille est protégée par un mot de passe "suivi".
    Je ne rencontre pas ce souci tant que la feuille n'est pas protégée.

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Plusieurs choses
    • Il vaudrait pieux mettre les lignes unprotect et protect de part et d'autre de la modification de la cellule B10
    • Une fois Unload me appelé, le userform est fermé, donc tout le code qui suit cette ligne ne sera pas exécuté
    • Pour limiter le temps de boucle, soit mettre un exit sub si Verif passe à true, soit utiliser un structure de boucle while Wend en contrôlant "Verif" pour sortir de la boucle.


    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 516
    Par défaut
    Salut,
    En complément des notes de Qwazety, je suppose que la boucle te sert à contrôler si un TextBox ou ComboBox est vide ? donc en l'état actuel du code à ton avis il se passe quoi si le premier est égal à "" et le deuxième ou troisième n'est pas vide ?

    Sinon mis à part le fait que tu fasses un Unload Me en milieux de procédure je ne vois pas pourquoi cela planterais Excel. donc change cela. Mets en commentaire 'UserForm3.Show on ne sait jamais. Et refais les tests

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Excel VBA : Problème pour ouvrir un classeur sur une feuille précise
    Par relenaheero dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/09/2021, 13h52
  2. Réponses: 0
    Dernier message: 26/08/2015, 15h31
  3. [XL-2007] Insertion d'un contrôle ActiveX avec code sur une feuille
    Par enerjp dans le forum Excel
    Réponses: 2
    Dernier message: 19/05/2014, 07h35
  4. Ecrire par programmation sur une feuille protégé !
    Par Freiya dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2007, 21h54
  5. Comment générer du code sur une feuille de calcul?
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2007, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo