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 :

Chargement de la valeur par défaut d'un liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut Chargement de la valeur par défaut d'un liste déroulante
    Bonjour tout le monde

    j'ai encore le même soucis, mais cett fois en vba
    j'a une usf et une liste déroulante. je voudrais que sa valeur par défaut soit le mois précédent la saisie. il s'agit, par exemple en décembre de rendre compte du mois de novembre. or je n'arrive même pas a lui donner le mois en cours comme valeur par défaut
    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
     
    Private Sub UserForm_Initialize()
    With CBMois
    .AddItem "Janvier"
    .AddItem "Février"
    .AddItem "Mars"
    .AddItem "Avril"
    .AddItem "Mai"
    .AddItem "Juin"
    .AddItem "Juillet"
    .AddItem "Août"
    .AddItem "Septembre"
    .AddItem "Octobre"
    .AddItem "Novembre"
    .AddItem "Décembre"
    End With
    End Sub
    je ne trouve pas la syntaxe exacte pour afficher soit directement le nom
    je pensais a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CBMois.value = CBMois.listindex(month(date))
    par exemple, mais bien sur ça ne marche pas
    j'aurais donc besoin, si quelq'un a ça sous le coude du moyen, soit de dire
    cbmois.value = novembre (=le mois en cours moins 1 )
    CBMois. "par défaut" = la valeur de l'index qui y correspond
    ou de je sais quelle manière
    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essayes de mettre cette ligne de code après ton End With

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.CbMois.Value = StrConv(Format(DateAdd("m", -1, Date), "mmmm"), vbProperCase)
    Edit : J'ai changé le code pour le mois -1

    Petite explication :

    En fait je joue sur le fait que ta liste comporte des mois

    Avec la fonction DateAdd, on récupére le mois en cours - 1, ensuite avec la fonction Format on récupére le mois en entier "mmmm".
    La fonction StrConv te permets d'avoir la première lettre en majsucule grâce à la constante vbProperCase.

    Tu peux avoir le paramétrage de toutes ces fonctions dans l'aide.

    Tu peux simplifier ta liste d'Additem, en faisant une boucle de i = 1 à 12 avec l'instruction que je viens de mettre pour mettre à jour ta liste déroulante.
    Dernière modification par Invité ; 01/12/2007 à 08h28.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    merci starec
    ça marche au poil. j'ai compris mon erreur, j'utilisais
    Month(Date) qui donne 12 ou format(month(date),"mmmm") qui donne n'importe quoi.
    bonne journée

  4. #4
    Invité
    Invité(e)
    Par défaut
    Petit complément pour info

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
        Dim i As Byte
        For i = 1 To 12
            Me.CBmois.AddItem StrConv(Format(DateAdd("m", i, "28/12/2006"), "mmmm"), vbProperCase)
        Next i
        Me.CBmois.Value = StrConv(Format(DateAdd("m", -1, Date), "mmmm"), vbProperCase)
    End Sub

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    du coup, j'ai fais ça, et c'est bien plus joli. et de la sorte, la liste déroulante commence toujour par le mois -1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = -1 To 10
    .AddItem StrConv(Format(DateAdd("m", i, Date), "mmmm"), vbProperCase)
    Next
    End With
    Me.CBMois.Value = StrConv(Format(DateAdd("m", -1, Date), "mmmm"), vbProperCase)
    merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/07/2009, 14h38
  2. valeur par défaut d'une liste déroulante
    Par emillio dans le forum Excel
    Réponses: 9
    Dernier message: 29/02/2008, 19h12
  3. valeur par défaut dans une liste déroulante
    Par fastpulse dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/01/2008, 10h02
  4. Réponses: 4
    Dernier message: 05/06/2007, 09h16
  5. Valeur par défaut dans une liste déroulante
    Par zoom61 dans le forum IHM
    Réponses: 1
    Dernier message: 12/06/2006, 09h00

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