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 :

application.screenupdating qui se déclenche pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut application.screenupdating qui se déclenche pas
    Bonjour,
    alors, j'ai un projet VBA qui s'ouvre et dans la méthode activate de mon formulaire j'affiche une feuille et a partir de ce point je veux que les utilisateur ne voit que cette feuille (fond blanc, question de confidentialité), mais le probleme est que la methode application.screenupdating ne passe jamais a false.

    je met le bout de code correspondant, sans doute que j'ai oublié qqc, mais quoi ? that's the question.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub UserForm_Activate()
        Dim i As Integer 
        ........
        Worksheets("Blanc").Select
        ........   
        With ActiveWindow
            .DisplayGridlines = False
            .DisplayHeadings = False
            .DisplayHorizontalScrollBar = False
            .DisplayVerticalScrollBar = False
            .DisplayWorkbookTabs = False
        End With
        Application.ScreenUpdating = False 
    End Sub
    Plus tard dans mon programme, une fonction m'oblige a selectionner une feuille pour appliquer des macro dessus et donc la feuille avec les données est selectionnée.
    Je sais pas si j'ai été clair ^^, mais une petite aide serai la bienvenue.

    par avance merci.

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    pourquoi ne pas tout simplement mettre
    application.screenupdating = false au début de la macro incriminé
    et le remettre à true à la fin

    Sinon tu es obligé de faire des select dans ton code ?
    tu peux pas directement pointé sur les cellules ou shapes ou autres dont tu as besoin comme ceci
    sheets("nomdelafeuille").cells(ligne,colonne).value copy ou autre ??

  3. #3
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    non je ne peux pas appliquer ta méthode de
    sheets("feuil1").Cells(i,j).value

    Et j'ai essayer de mettre au début de la macro, mais ca ne fonctionne pas.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu es sur de ne pas avoir quelque part une macro qui te le met a true?
    C'est l'erreur la plus fréquente donc regarde bien.

    Sinon je serais curieux de savoir pourquoi tu ne peux pas utiliser
    sheets("nomdelafeuille").cells(ligne,colonne).value

    Les seuls select que j'utilise sont ceux qui me permette de signifier à l'utilisateur quelle cellule remplir ou empêcher la selection d'une cellule, les autre sont pratiquement tous inutile

  5. #5
    Membre éprouvé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    on est bien d'accord krovax

    aussi le mieux serait que tu nous mette le bout de code où tu as tes select qu'on voit si on peut y faire quelquechose

  6. #6
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    ca c'est un bout de code qui est utilisé pour filtrer les donnée et sur lequel il ne me semble pas possible de mettre sheets(i).cell(j,k) ou meme feuil5.range

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If leFormulaire = "UserFormRechercheParChamps" Then
            [F1] = "Champs"
            [B1:B65536].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[F1], Unique:=True
            Do
                UserFormRechercheParChamps.ComboBoxChamps.AddItem Feuil5.Cells(i, 6)
                i = i + 1
            Loop While Feuil5.Cells(i, 6) <> ""
    Je viens de découvrir la méthode application.screenupdating, donc il n'est pas possible que j'en ai mis ailleur

  7. #7
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    ha bon et si tu essayais quelque chose qui ressemble à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Worksheets("Blanc").range("F1") = "Champs"
            Worksheets("Blanc").range("B1:B65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets("Blanc").range("F1"), Unique:=True
            Do

  8. #8
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    ok, c'est bon c'est ca.

    Derniere question:

    J'ai fais une macro automatique sur excel qui me tri mes feuilles (donc y'a le code qui suit x autant de feuille)

    Comment je peux remplacer le "Sheets("Rq Old").Select ?

    J'avais tenté de virer la premiere ligne et de mettre direct
    Feuil4.Cells.Select et le reste qui va bien.
    Mais ca fonctionne pas.

    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Sheets("Rq Old").Select
        Cells.Select
        Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlYesGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
        Range("A1").Select

  9. #9
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    quand tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AAA.select
    'ou 
    AAA.activate
    suivit de
    tu met
    donc dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Sheets("Rq Old").Cells.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlYesGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

  10. #10
    Membre éprouvé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Rq Old").Cells(colonne, ligne).Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlYesGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    et ca devrait rouler sans select

    et a la fin le range("A1").select c'est pour ???

    edit corrigé merci krovax ;=)

  11. #11
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Pour davide
    1- les balise !!!!!
    2- cells défini l'ensemble des cellules d'une feuille si on ne lui donne aucun argument

  12. #12
    Membre éprouvé
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Par défaut
    eh mince j'suis au boulot alors je vais vite et j'oublie les balises

    et merci pour le cells j'étais pas sur
    J'aide avec mes pttis moyens et des fois je ferais mieux de m'abstenir je sais ^^

  13. #13
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    les

    range("A1").select c'etait pour avant, comme je revenais tjrs sur la feuille 2, je voulais pas etre sur une ligne random donc je me callais sur la case A1, juste de l'esthétique pour quand on ré-ouvrait le fichier.

  14. #14
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Citation Envoyé par david_atx Voir le message
    J'aide avec mes pttis moyens et des fois je ferais mieux de m'abstenir je sais ^^
    Surtout ne t'abstiens pas regarde mes premier message j'en ai dit des bêtise avant d'arriver a faire quelque truc bien. Et par chance pour nous il y a toujours des gens qui sont véritablement calé qui passe si ca coince

  15. #15
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    Quand j'exécute le code a Krovax, j'ai ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Requetes").Cells.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlYesGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    avec un joli fond jaune.

    Erreur: Référence de tri non valide. Vérifiez qu'elle se trouve bien parmis les données a trier et que la zone Trier n'est pas identique ou vide.

  16. #16
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour tous,
    Attention...
    Ne va pas dans toutes les circonstances et certaines fonctions ne vont pas avec select, il faut employer Activate.
    Eh oui encore... les mystères d'excel..
    Idem pour Cells, faudrait probablement une plage déterminée.
    Mais comme j'ai pas le fichier, difficile de tester
    A+

  17. #17
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Normalement, il devrait il y avoir un autre plantage, la constante xlYesGuess de l'argument Header pour moi n'existe pas, tu as le choix entre :

    xlGuess; xlNO; xlYes ?

    cordialement,

    Didier

  18. #18
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Re, probablement excel 2007 ?
    Dans l'aide..
    Sort.Propriété Header
    Indique si la première ligne contient des informations sur l'en-tête. Type de données XlYesNoGuess en lecture/écriture
    .
    Remarques
    xlNo est la valeur par défaut. Vous pouvez spécifier xlGuess si vous souhaitez qu'Excel tente de déterminer l'en-tête.
    Et si c'est bien excel 2007, la procédure est différente..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        'Applying sort.
        With ActiveWorkbook.Worksheets(ActiveSheet.Name).Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("A2:A11"), _
                SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange Range("A1:A11")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    A+

  19. #19
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    re

    J'ai apparemment les mêmes paramètres à ce niveau en 2003 et 2007 !

    cordialement,

    Didier

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

Discussions similaires

  1. Tomcat - Application web qui ne tourne pas
    Par womannosky dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/03/2010, 13h30
  2. Application web qui ne tourne pas
    Par womannosky dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 09/03/2010, 13h22
  3. Application flex qui ne charge pas
    Par zwan.bourg dans le forum Flex
    Réponses: 0
    Dernier message: 11/06/2009, 19h02
  4. Ubuntu/Gnome : applications Qt qui ne démarrent pas ?
    Par ethnosonik dans le forum Ubuntu
    Réponses: 0
    Dernier message: 13/11/2008, 16h59
  5. Réponses: 3
    Dernier message: 22/08/2006, 12h35

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