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 :

[XL 2003] substituer msgbox par liste


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut [XL 2003] substituer msgbox par liste
    Bonjour le forum,

    Dans le code ci-dessous il est fait appel à une msgbox de choix de mois, cette msgbox plante lorsqu’on l’affiche, qu’on n’y inscrit rien et que l’on clique sur Ok ou Annuler, on a une erreur d’exécution 13 et bogue, je me disais qu’il serait plus simple et plus pratique de supprimer la msgbox et de mettre à la place une liste de validation qui déroule les 12 mois de l’année, ce serait gentil si quelqu’un pouvait me modifier le code à cet effet :

    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
    Sub CAduMois()
    Dim LaDate As Range, MonMois As Byte, I As Long, L As Long
     
    MonMois = InputBox("Mois en chiffre - Janvier=1, Février=2, etc.)")
    If MonMois < 1 And MonMois > 12 Then Exit Sub
    Range("A1") = Choose(MonMois, "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
     
    Range("A4:T42").ClearContents
     
    With Worksheets("Listing")
        .Range("B3:B" & .Range("B5000").End(xlUp).Row).NumberFormat = "m"
        Set LaDate = .Columns(2).Find(MonMois, LookIn:=xlValues)
       L = 3
        If Not LaDate Is Nothing Then
            firstAddress = LaDate.Address
            Do
           L = L + 1
           li = LaDate.Row
            Cells(L, 1) = .Cells(li, 1)
            Cells(L, 2) = .Cells(li, 2): Cells(L, 2).NumberFormat = "dd/mm/yyyy"
            Cells(L, 3) = .Cells(li, 3)
            Cells(L, 4) = .Cells(li, 5)
            Cells(L, 5) = .Cells(li, 7)
            Cells(L, 6).Formula = "=H" & L & "+J" & L & "+L" & L & "+N" & L & "+P" & L
            Cells(L, 7) = .Cells(li, "AL")
            Cells(L, 8) = .Cells(li, "AM")
            Cells(L, 9) = .Cells(li, "CV")
            Cells(L, 10) = .Cells(li, "CW")
            Cells(L, 11) = .Cells(li, "FI")
            Cells(L, 12) = .Cells(li, "FJ")
            Cells(L, 13) = .Cells(li, "HV")
            Cells(L, 14) = .Cells(li, "HW")
            Cells(L, 15) = .Cells(li, "IS")
            Cells(L, 16) = .Cells(li, "IT")
            Set LaDate = .Columns(2).FindNext(LaDate)
            Loop While Not LaDate Is Nothing And LaDate.Address <> firstAddress
        End If
    .Range("B3:B" & .Range("B5000").End(xlUp).Row).NumberFormat = "dd/mm/yyyy"
    L = .Range("B5000").End(xlUp).Row
    For I = 1 To 12
    Cells(46 + I, 2) = Evaluate("sumproduct((month(listing!B3:B" & L & ")" & "=" & I & ")*listing!J3:J" & L & ")")
    Next I
    End With
     
    End Sub
    Merci par avance, Kim.

  2. #2
    Expert éminent 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
    Par défaut
    permet de détourner l'erreur
    mais il faut revoir le controle de la valeur entrée dans l'inputbox (ça s'appelle comme ça)

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    autre solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If monmois = "" And monmois > "12" Then Exit Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut
    Bonsoir mercatog, casefayere,

    Aucun des deux codes ne fait cesser le plantage
    Une liste de validation à la place serait plus appropriée, si possible bien sûr

    http://sd-1.archive-host.com/membres...e2_Protect.xls

    un autre souci si vous permettez, je voudrais déverrouiller le spinbutton de la feuille Visual_Commande

    Bien à vous, Kim.

  5. #5
    Expert éminent 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MonMois As variant
    MonMois = InputBox("Mois en chiffre - Janvier=1, Février=2, etc.)")
    if ISNUMERIC(MonMois) then
        If MonMois < 1 And MonMois > 12 and cint(MonMois)<>MonMois Then Exit Sub
    ....'la suite du code
    endif
    Pour ta première approche

    edit: correction d'une coquille

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut
    Merci mercatog

    Mais ça ne marche pas non plus

    Kim

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    si tu veux une listbox avec userform,
    regardes ton fichier adapté
    je n'ai pas regardé le reste du code
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. executer une requête par liste déroulante
    Par lolo_bob2 dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 11h35
  2. Filtrage adresses IP sortantes par liste blanche
    Par sunchai dans le forum Hardware
    Réponses: 4
    Dernier message: 01/02/2006, 11h41
  3. Algo de tri par liste chainée
    Par Treuze dans le forum C
    Réponses: 3
    Dernier message: 30/12/2005, 14h05
  4. [VB.NET][PDA]Remplir 2 textbox par liste de valeurs
    Par tostinni dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/12/2005, 21h58
  5. Texte affiché par liste deroulante
    Par dynxd dans le forum Access
    Réponses: 20
    Dernier message: 30/09/2005, 21h37

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