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 :

Problème avec Screenupdating = False


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Par défaut Problème avec Screenupdating = False
    Bonjour,

    J'ai développé un petit utilitaire qui doit ouvrir certains fichiers, appliquer certains changement, puis refermer les fichiers.
    Afin que l'utilisateur n'ait pas à subir mes manip', mon code commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Screenupdating = False
    Ca fige donc l'écran, et ca fonctionne presque partout (chez moi + les utilisateurs...) ...sauf un...

    Et là... Je ne vois pas d'où peut venir cela ?
    L'utilisateur en question voit donc les fenêtres qui s'ouvrent, etc... comme si la commande de Screenupdating n'étaient pas prise en compte.

    Quelqu'un aurait une idée ?
    Merci de votre aide,
    Elise

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Sans aucun code, c'est difficile à dire je pense

    Si c'est carrément les programmes qui s'ouvrent, il est peut être possible qu'il y ai un changement de plan ? Si le programme passe au premier plan... La mise à jour de l'affichage par ScreenUpdating ne concernant que Excel...

  3. #3
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Par défaut
    Il s'agit d'ouverture de fichier Excel depuis l'instance Excel existante.

  4. #4
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Par hasard dans les fichiers que tu ouvres, n 'y aurait-il pas un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating= True
    dans la procédure Open? Lances-tu des macros appartenant à ces classeurs?

    Trace l'état de la valeur ScreenUpdating après chaque ouverture de classeur, pour avoir une idée desquels posent problème.

  5. #5
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Par défaut
    Il y a effectivement une procédure au démarrage du fichier, mais elle ne spécifie pas "screen... = true".
    J'ai effectivement une modification de la valeur lorsque le fichier s'ouvre lorsque je suis sur le poste de l'utilisateur en question, mais pas depuis mon poste.

    Du coup, je ne vois pas pourquoi ça passe à true... surtout lorsque sur les autres ordinateurs ça ne le fait pas (??!!)

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    C'est lié aux paramètres application, mais je n'ai pas trouvé où dans les options avancées d'excel
    Donc .... le mieux, forcer un screenupdating à false et .... le remettre à la fin

  7. #7
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Par défaut
    Il me semble que j'avais déjà testé cela sans résultat...

    Je n'ai pas accès pour le moment à l'ordinateur en question, je vous reviens dès que j'aurai pu faire des tests...

    Merci de vos idées...

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    désactiver les évènements avant d'ouvrir les fichiers, voir l'aide de la propriété EnableEvents

  9. #9
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Par défaut
    Erreur de ma part... je pensais que c'était l'ouverture du fichier qui posait pbl, et non, c'était juste avt ds mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Workbooks(CeFichier).Worksheets("Table").Range("MaListe").ClearContents
    L'utilisateur ne semble pas avoir d'évenement particulier sur le nettoyage de données... pourtant, en modifiant la caractéristique EnableEvents, la caractéristique screenupdating se maintient à false... Curieux autant qu'étrange... !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.EnableEvents = False
    Application.Workbooks(CeFichier).Worksheets("Table").Range("MaListe").ClearContents
    Application.EnableEvents = True
    Si qq un à de l'inspiration pour me dire ce qui pourrait induire cela... je suis preneuse...

    Merci à chacun !

  10. #10
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par Lilou51 Voir le message
    Curieux autant qu'étrange... !
    Non si la cause provient bien d'un évènement d'un classeur ouvert en modifiant des cellules par exemple …

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé

  11. #11
    Membre éprouvé
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 174
    Par défaut
    Justement... il n'y a pas de macro événementiel sur les classeurs ouverts sur le poste en question.

    Bon, reprenons... Parce que ce n'est tjs pas résolu, en fait !

    La variable Screenupdating passait à true au moment de Clearcontents
    J'ai donc mis le code enableEvent à false.
    Ca semblait fonctionner, mais finalement, à l'ouverture du fichier appelé ça passait à true aussi.
    Donc j'ai encadré les 2 phrases :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Application.EnableEvents = False
    Application.Workbooks(CeFichier).Worksheets("Table").Range("MaListe").ClearContents
     
    Call OuvreBDDLectSeule
    Application.EnableEvents = True
    Là, je suis contente... ça fonctionne... C'est une macro qui a lieu à l'ouverture.

    MAIS l'utilisateur a parfois besoin d'accéder de nouveau aux info du fichier BDD (le même que celui utilisé à l'ouverture).

    Ces informations sont chargées ds un userform.
    La procédure de chargement du userform appelle donc à nouveau la procédure "Call OuvreBDDLectSeule"

    Ladite procédure vérifie si le fichier est ouvert et l'ouvre si besoin.

    Et, à ce moment là, pas moyen que je bloque l'apparition du fichier. L'appel de procédure est précédé d'un Screenupdating = false... et au cas où j'en ai remis ds le code, mais le fichier apparaît toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For Each W In Workbooks
        If W.Name = FichierBDD Then
            a = 1
        End If
    Next W
     
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
     
    If a <> 1 Then Application.Workbooks.Open (Chemin & "\" & FichierBDD), ReadOnly:=True, UpdateLinks:=True
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    J'ai lancé une réparation du pack office sur le poste de l'utilisateur... Mais rien y fait...
    L'utilisateur se sert de fichier .dll ... peut-être y a-t-il ds l'un des compléments un bout de code qui vient m'embêter... Si oui, que puis-je faire ?!

Discussions similaires

  1. problème avec " 'bouton'.enabled = false"
    Par fny_bnfnt dans le forum VB.NET
    Réponses: 4
    Dernier message: 03/08/2011, 15h35
  2. Problème avec un bouton et setEnabled(false)
    Par krilas dans le forum JDeveloper
    Réponses: 1
    Dernier message: 10/03/2011, 12h40
  3. problème avec IdUDPServer1.Active:=false
    Par korntex5 dans le forum Delphi
    Réponses: 1
    Dernier message: 18/08/2006, 16h54
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10

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