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 :

Macro qui ne fonctionne qu'avec F5 !


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Projeteur
    Inscrit en
    Mars 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Projeteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Macro qui ne fonctionne qu'avec F5 !
    Bonjour à tous,

    J'ai écris une macro dans ThisWorkbook: Private Sub Workbook_Open() qui ne fonctionne que dans l'éditeur lorsque je tape la touche F5.
    En revanche, si je ferme mon classeur et que je l'ouvre, la macro ne fonctionne pas...
    Je ne comprend pas pourquoi et ne trouve aucun forum avec ce sujet sur le net.
    Une idée pour résoudre mon problème peut-être ?

    Ci-joint mon code qui me pose problèmes:

    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
    Private Sub Workbook_Open()
    'Affiche l'userform Acceuil (plein écran)
    UsfAcceuil.Show
    'Cache les textebox et listbox
    UsfAcceuil.TxtAnniv.Visible = False
    UsfAcceuil.ListNomsAnniv.Visible = False
    UsfAcceuil.ListDatesAnniv.Visible = False
    UsfAcceuil.LabelRDV.Visible = False
    UsfAcceuil.ListRDV.Visible = False
    Dim i As Long
    For i = 5000 To 2 Step -1
    'Affiche les textbox et listbox si la date est reconnue et les remplis
    If Worksheets("CLIENTS").Cells(i, 10) = Date - 7 Then
    UsfAcceuil.TxtAnniv.Visible = True
    UsfAcceuil.ListNomsAnniv.Visible = True
    UsfAcceuil.ListDatesAnniv.Visible = True
    UsfAcceuil.ListNomsAnniv.AddItem Worksheets("CLIENTS").Cells(i, 5).Value
    UsfAcceuil.ListDatesAnniv.AddItem Worksheets("CLIENTS").Cells(i, 10).Value
    End If
    Next
     
    'idem pour d'autre textbox et listbox
    For i = 5000 To 2 Step -1
    If Worksheets("RDV").Cells(i, 1) = Date Then
    UsfAcceuil.LabelRDV.Visible = True
    UsfAcceuil.ListRDV.Visible = True
    UsfAcceuil.ListRDV.AddItem Worksheets("RDV").Cells(i, 2).Value
    End If
    Next
    End Sub
    Merci d'avance pour votre aide !

    Ocin2

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir
    Essaies d'ouvrir simplement l'userform à l'ouverture de ton classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
     
    UsfAcceuil.Show
    End Sub
    Ensuite dans l'initialize de ton userform mettre
    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
    Private Sub UserForm_Initialize()
    Dim i As Long
    Dim bClient As Boolean, bRdv As Boolean
     
    Me.TxtAnniv.Visible = False
    Me.ListNomsAnniv.Visible = False
    Me.ListDatesAnniv.Visible = False
    Me.LabelRDV.Visible = False
    Me.ListRDV.Visible = False
    For i = 5000 To 2 Step -1
        If Worksheets("CLIENTS").Cells(i, 10) = Date - 7 Then
            Me.ListNomsAnniv.AddItem Worksheets("CLIENTS").Cells(i, 5).Value
            Me.ListDatesAnniv.AddItem Worksheets("CLIENTS").Cells(i, 10).Value
        End If
        If Worksheets("RDV").Cells(i, 1) = Date Then Me.ListRDV.AddItem Worksheets("RDV").Cells(i, 2).Value
    Next i
    'Affiche les textbox et listbox si la date est reconnue et les remplis
    If Me.ListNomsAnniv.ListCount > 0 Then
        Me.TxtAnniv.Visible = True
        Me.ListNomsAnniv.Visible = True
        Me.ListDatesAnniv.Visible = True
    End If
    If ListRDV.ListCount > 0 Then
        Me.LabelRDV.Visible = True
        Me.ListRDV.Visible = True
    End If
    End Sub
    PS: pourquoi 2 boucles alors qu'une seule fera l'affaire
    Peut être un filtre automatique serait plus rapide
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir

    Citation Envoyé par Ocin2 Voir le message
    J'ai écris une macro dans ThisWorkbook: ... si je ferme mon classeur et que je l'ouvre, la macro ne fonctionne pas...
    Je ne comprend pas pourquoi et ne trouve aucun forum avec ce sujet sur le net.
    Et pourtant il y en a, notamment sur les forums US.
    Mais sur DVP aussi :


    Le pb qui a été identifié survient avec l'utilisation de mise en forme conditionnelle appelant une fonction personnalisée.

    SI tu es dans ce cas, tu pourras facilement le vérifier en supprimant ces MFC.

    Mais le pb n'est toujours pas élucidé. Peut-être cette fois-ci?

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

Discussions similaires

  1. (UNION) Requete qui ne fonctionne plus avec mysql4
    Par kreatik dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/11/2007, 13h31
  2. Problème de addEventListener qui ne fonctionne pas avec un attachMovie
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 27/09/2007, 10h47
  3. un For Each qui ne fonctionne pas avec une collection maison !
    Par grenouillesiverte dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/09/2007, 21h00
  4. tutoriel qui ne fonctionne pas avec glassfish
    Par dev7 dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 13/04/2007, 17h25
  5. Réponses: 10
    Dernier message: 13/03/2007, 11h38

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