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 :

Bouton activ x ne se cache plus apres un reset


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut Bouton activ x ne se cache plus apres un reset
    Bonjour à tous
    j'ai un bouton activeX, que je cache tant qu'un champs n'est pas complété. Si je fais un "reset" (effacer tous les champs que l'utilisateur complete), le bouton ne disparait pas malgré que la case est vide. Par contre si je me rends dans la cellule et que je clic sur "effacer", le bouton disparait... on dirait que la macro ne reconnais pas le "reset"..

    voici les codes que j'utilise:

    Pour cacher le bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_change(ByVal target As Range)
        Application.ScreenUpdating = False
        If Cells(43, 5).Value <> "" Then
        Me.CommandButton4.Visible = True
        Else
        Me.CommandButton4.Visible = False
        End If
        Application.ScreenUpdating = True
     
    End Sub
    Pour reseter mon fichier

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub SpeedUpMacros()
        Application.Calculation = xlCalculationManual
        Application.ScreenUpdating = False
        Application.DisplayStatusBar = False
        Application.EnableEvents = False
        ActiveSheet.DisplayPageBreaks = False
    ActiveSheet.Unprotect Password:="JudeLyaJade0."
    Sheets("Basic requirement to create cod").Range("ACC_ASS_GRP").Value = "3 - Manufacturing - FG"
    Sheets("Basic requirement to create cod").Range("AFFILIATE").Value = ""
    Sheets("Basic requirement to create cod").Range("BRAND").Value = ""
    Sheets("Basic requirement to create cod").Range("BUoM").Value = ""
    Sheets("Basic requirement to create cod").Range("CHANNEL").Value = ""
    Sheets("Basic requirement to create cod").Range("COMMENTS").Value = ""
    Sheets("Basic requirement to create cod").Range("COUNTRY").Value = ""
    Sheets("Basic requirement to create cod").Range("CUSTOMER").Value = ""
    Sheets("Basic requirement to create cod").Range("CUSTOMER_NAME") = ""
    Sheets("Basic requirement to create cod").Range("EMAIL").Value = ""
    Sheets("Basic requirement to create cod").Range("GNPL") = "Please add GNPL ref here"
    Sheets("Basic requirement to create cod").Range("GTIN_S") = ""
    Sheets("Basic requirement to create cod").Range("GTIN_B") = ""
    Sheets("Basic requirement to create cod").Range("MATERIAL_GROUP") = ""
    Sheets("Basic requirement to create cod").Range("MSDS") = ""
    Sheets("Basic requirement to create cod").Range("NAME") = "=VLOOKUP(UGDN_CREATE,UGDN!$A:$B,2,0)"
    Sheets("Basic requirement to create cod").Range("NET_SELLING") = ""
    Sheets("Basic requirement to create cod").Range("PACK") = ""
    Sheets("Basic requirement to create cod").Range("PLANNED_D") = ""
    Sheets("Basic requirement to create cod").Range("PROFIT_CENTER") = ""
    Sheets("Basic requirement to create cod").Range("PURCHASING_KEY") = ""
    Sheets("Basic requirement to create cod").Range("RECIPE") = ""
    Sheets("Basic requirement to create cod").Range("REF") = ""
    Sheets("Basic requirement to create cod").Range("REG") = ""
    Sheets("Basic requirement to create cod").Range("REGISTRATION") = ""==> c est ce champs qui ne fonctionne pas
    Sheets("Basic requirement to create cod").Range("REGUL_ONE") = ""
    Sheets("Basic requirement to create cod").Range("ROLE").Value = ""
    Sheets("Basic requirement to create cod").Range("SALES_ORG") = ""
    Sheets("Basic requirement to create cod").Range("SELLING_PLANT") = ""
    Sheets("Basic requirement to create cod").Range("SHELF") = ""
    Sheets("Basic requirement to create cod").Range("SOURCE") = ""
    Sheets("Basic requirement to create cod").Range("STORAGE_LOCATION") = ""
    Sheets("Basic requirement to create cod").Range("TAX") = ""
    Sheets("Basic requirement to create cod").Range("TYPE") = ""
    Sheets("Basic requirement to create cod").Range("UGDN_CREATE") = "=GetUserName()"
    Sheets("Basic requirement to create cod").Range("VOLUME") = ""
    ActiveSheet.Protect Password:="JudeLyaJade0.", AllowFormattingColumns:=True, DrawingObjects:=False
    CreateObject("WScript.Shell").Popup "Form has been reset" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Send your creation file" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "using the Send to MD button ", 4, "MDM"
    Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = False
        Application.DisplayStatusBar = True
        Application.EnableEvents = True
        ActiveSheet.DisplayPageBreaks = False
    End Sub
    Aurriez vous une idée de coment solutionner ce problème ?
    Merci à tous et bonne semaine
    Guismo30

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut
    Bonjour,

    Cela vient du fait que vous avez indiqué Application.EnableEvents = False en tête de code, ce qui fait que Worksheet_change n'est pas activé.

    Cordialement.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Salut,

    La première chose que je remarque est toutes ces instructions de pseudo-optimisation.
    Comprends-tu leurs rôle ?
    En as-tu réellement besoin ?

    Dans le gestionnaire d'évènement Worksheet_change, clairement non.
    Dans la procédure SpeedUpMacros (quel nom mal choisit pour un reset !!), tu n'as besoin que de désactiver l'affichage.

    Fais toi une fleur, et vires tous ces parasites inutiles.

  4. #4
    Membre averti
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2019
    Messages : 30
    Par défaut
    Citation Envoyé par deedolith Voir le message
    Salut,

    La première chose que je remarque est toutes ces instructions de pseudo-optimisation.
    Comprends-tu leurs rôle ?
    En as-tu réellement besoin ?

    Dans le gestionnaire d'évènement Worksheet_change, clairement non.
    Dans la procédure SpeedUpMacros (quel nom mal choisit pour un reset !!), tu n'as besoin que de désactiver l'affichage.

    Fais toi une fleur, et vires tous ces parasites inutiles.
    Bonjour et merci pour ton commentaire
    alors c est simple, je ne connais pas du tout la VBA et tout ce que je "fais" c est du copier coller de trucs que je trouve sur le net, donc, oui, mon fichier est loin d'être parfait, mais je n'ai personne dans mes connaissances sui pourrait me faire cela sur mesure, donc, j'essaye de trouver de bon trucs...
    maintenant si vous avez le temps de me mettre cela au clair ce serai super gentil !

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Cela ne répond pas vraiment à votre question mais lorsque l'on doit modifier la propriété booléenne d'un objet en fonction d'une ou plusieurs conditions, il y a plus simple que de passer par le bloc d'instruction If...Then...Else.

    Ainsi au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      If Cells(43, 5).Value <> "" Then
        Me.CommandButton4.Visible = True
       Else
        Me.CommandButton4.Visible = False
      End If
    privilégiez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      With Me
      .CommandButton4.Visible = .Cells(43, 5).Value <> ""
      End With
    Si le sujet vous intéresse, j'ai écrit un billet sur ce sujet VBA - De la mauvaise utilisation d'un If...Then...Else pour modifier une propriété Booléenne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/06/2017, 14h07
  2. [XL-2010] Bouton activation feuilles ne marche plus après copie du classeur
    Par Denis_67 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/09/2015, 11h09
  3. Page ne répond plus après chargement depuis le cache
    Par vladimire dans le forum Zend Framework
    Réponses: 0
    Dernier message: 17/09/2012, 15h08
  4. [XL-2010] Macro affectée à un bouton ne marche plus après conversion
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/02/2012, 11h41
  5. [Thread]run une fois et plus apres
    Par maxvador dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 29/12/2004, 15h31

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