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 :

Listbox et inputbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut Listbox et inputbox
    bonjour,

    J'ai une input box pour choisir entre trois méthodes, je voudrais la remplacer par une liste de ces méthodes, par exemple une listbox, comment faire ?

    voici mon code
    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
    'Choix de la méthode
     
    j = InputBox("Tapez 1 pour remplacer par 0, 2 pour remplacer par la valeur précédente, et 3 pour interpoler", "Méthode de remplacement", 1)
     
    Select Case j
     
        Case 1
        vRempZ = fnZero(vY2PE)
        Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempZ), 5)).Value = Application.Transpose(vRempZ)
     
        Case 2
        vRempP = fnPrevious(vY2PE)
        Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempP), 5)).Value = Application.Transpose(vRempP)
     
        Case Else
        vRempI = fnInter(vY2PE)
        Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempI), 5)).Value = Application.Transpose(vRempI)
     
    End Select
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Pour une ListBox sur feuille, mans le module "ThisWorkbook", mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Open()
    With Sheets("Feuil1").ListBox1
        .AddItem "Tapez 1 pour remplacer par 0"
        .AddItem "Tapez 2 pour remplacer par la valeur précédente"
        .AddItem "et 3 pour interpoler"
    End With
    End Sub
    Dans le module de la feuille, mets :

    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
    Private Sub ListBox1_Change()
        Select Case Me.ListBox1.ListIndex + 1
     
            Case 1
            vRempZ = fnZero(vY2PE)
            Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempZ), 5)).Value = Application.Transpose(vRempZ)
            Case 2
            vRempP = fnPrevious(vY2PE)
            Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempP), 5)).Value = Application.Transpose(vRempP)
            Case Else
            vRempI = fnInter(vY2PE)
            Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempI), 5)).Value = Application.Transpose(vRempI)
     
        End Select
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut
    Bonjour,

    j'ai une erreur à l’exécution, "utilisation incorrecte du mot clé Me"

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Surprenant. Où as-tu mis ta listbox ? sur une feuille ou sur un userform ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut
    dans un module. c'est bien ça qu'il fallait faire ?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Non, je ne parle pas du code (il est toujours dans un module) mais de la listbox, où est-elle ? Ta réponse me fait toutefois penser que la macro n'est pas dans le module de la feuille mais dans module standard. Fais un clic droit sur l'onglet de la feuille contenant la listbox, clique sur "Visualiser le code" et colle la macro dans la fenêtre qui s'ouvre.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut
    Je suis désolé mais je ne comprends pas.

    Voila mon code, je suis novice en vba.
    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
    46
    47
    48
    49
    50
    Public Sub remp()
     
    Debug.Print "Début du code à " & VBA.Time & vbCrLf
     
    'feuille sur laquelle on travaille
    Set wsM = ThisWorkbook.Worksheets("FED MODEL")
     
    'plage avec la valeur de Y2PE
    Set rgY2PE = wsM.Range("D2")
     
    'avoir la taille des tableaux
    DerniereLigne = Range("D1").End(xlDown).Row
     
    'création du vecteur de date nettoyé
     
    'Remplacement des valeurs manquantes de Y2 PE RATIO par 0
    'On met le tableau Y2 PE dans le tableau vY2PE
     
        i = 0
        ReDim vY2PE(i)
     
            For i = 0 To DerniereLigne
                ReDim Preserve vY2PE(i) 'preserv: sert à redimensionner le vecteur et à garder les valeurs qui étaient dedans
                vY2PE(i) = rgY2PE(i + 1)
            Next i
     
     
    'choix de la méthode de remplacement
     
    'Choix de la méthode
     
    j = InputBox("Tapez 1 pour remplacer par 0, 2 pour remplacer par la valeur précédente, et 3 pour interpoler", "Méthode de remplacement", 1)
     
    Select Case j
     
        Case 1
        vRempZ = fnZero(vY2PE)
        Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempZ), 5)).Value = Application.Transpose(vRempZ)
     
        Case 2
        vRempP = fnPrevious(vY2PE)
        Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempP), 5)).Value = Application.Transpose(vRempP)
     
        Case Else
        vRempI = fnInter(vY2PE)
        Sheets("FED MODEL").Range(Cells(2, 5), Cells(UBound(vRempI), 5)).Value = Application.Transpose(vRempI)
     
    End Select
     
    End Sub
    et c'est que je voudrais c'est savoir si y a un moyen de remplacer la inmput box par une liste ou je peux directement choisir ma méthode, j'ai pensé à une listbox. C'est juste ?

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Regarde le classeur joint. Il faut que tu ajoutes tes feuilles. Ne change pas le nom "Feuil1" de la feuille contenant la listbox. Si tu le fais, tu dois modifier le code également.
    Fichiers attachés Fichiers attachés

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 14
    Par défaut
    Merci je vais voir ca tout de suite.

    Merci encore

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

Discussions similaires

  1. mgsbox, inputbox et listbox
    Par flamel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2010, 07h20
  2. "Transformer" une InputBox en ListBox ou ComboBox
    Par DeaD78 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2008, 10h44
  3. [Debutant] ListBox dans inputBOX
    Par Frosaf dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/06/2007, 15h24
  4. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  5. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53

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