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 :

Soustraire à l'aide de macro dans listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut Soustraire à l'aide de macro dans listbox
    Bonjour,

    Mon soucis est le suivant:

    j'ai un userform, dans celui-ci ce trouve deux listbox et un commandbutton.

    1) dans ma première listbox j'ai deux colonne (article et quantité)
    2) à l'aide de mon bouttoncommande je fais juste un transfert
    exemple:
    1ère listbox
    coca 15
    fanta 10

    en sélectionnant coca et après en cliquant sur mon bouton, la ligne coca 15 va dans ma listbox 2
    Donc le résultat et le suivant
    listbox 1 (fanta 10) et listbox 2 (coca 15)

    Pour cela, pas de soucis.

    Cependant, j'aimerais soustraire le nombre d'article dans la listbox 2
    exemple:
    Dans ma listbox 1 j'ai
    coca 10
    fanta 10
    quand je sélectionne coca et après avoir cliqué sur mon bouttoncommand, j'aimerais qu'il ne transfert pas toute la ligne (coca 10) mais qu'il soustrait un article.
    Exemple
    listbox1
    coca 10
    fanta 10
    Je selectionne coca puis je clic sur mon boutton
    J'aimerais que le résultat dans ma listbox2 soit coca 1 et non coca 10
    et si je le re sélection une deuxième fois mon résultat soit coca 2 et ainsi de suite

    En vous remerciant

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Esaie comme ceci
    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 CommandButton1_Click()
        Dim I As Long
        Dim Trouve As Boolean
     
        If ListBox1.ListIndex = -1 Then Exit Sub
     
        For I = 0 To ListBox2.ListCount - 1
            If ListBox2.List(I, 0) = ListBox1.List(ListBox1.ListIndex) Then
                ListBox2.List(I, 1) = CLng(ListBox2.List(I, 1)) + 1
                ListBox1.List(ListBox1.ListIndex, 1) = CLng(ListBox1.List(ListBox1.ListIndex, 1)) - 1
                Trouve = True
            End If
        Next
        If Not Trouve Then
            ListBox2.AddItem
            ListBox2.List(ListBox2.ListCount - 1, 0) = ListBox1.List(ListBox1.ListIndex, 0)
            ListBox2.List(ListBox2.ListCount - 1, 1) = 1
            ListBox1.List(ListBox1.ListIndex, 1) = CLng(ListBox1.List(ListBox1.ListIndex, 1)) - 1
        End If
    End Sub
     
    Private Sub UserForm_Initialize()
        ListBox1.AddItem
        ListBox1.List(0, 0) = "Coca"
        ListBox1.List(0, 1) = 10
        ListBox1.AddItem
        ListBox1.List(1, 0) = "Fanta"
        ListBox1.List(1, 1) = 10
     
    End Sub
    En passant, il y a un forum dédié aux macros...

  3. #3
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    Bonjour Parmi,

    Je te remercie pour ta réponse,

    C’est exactement ce que je cherchais,

    Un énorme merci.

    Est-ce que je peux abuser de ta gentillesse.

    Si oui j’ai un autre petit soucis.

    Je t'explique ce que j'ai.

    J'ai un bouton dans ma feuille Excel.
    Quand je clic sur le bouton celui-ci m'ouvre un userform.
    Dans celui-ci j'ai un bouton et un textbox.

    J'aimerais quand je clic sur le bouton, qu'il additionne le nbre de clic que je fais.
    Exemple
    Si je clic 2 fois ça me marque 2 dans mon textbox.
    Si je clic 5 fois ça me marque 5 dans mon textbox.
    Et ainsi de suite

    Suite à la réponse d’un membre qui été :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2 = Val(TextBox2) + 1
    J'ai essayé ceci:

    a) T
    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
    extBox1 = "Eau"
    TextBox2 = Val(TextBox2) + 1
     
    If TextBox1 = "" Or TextBox2 = "" Then
    MsgBox "Vous devez impérativement remplir le mode de paiement, le nom du client, la quantité et l'article avant de valider", vbInformation
    Exit Sub
    End If
    dlf_bdd = Sheets("BDD").Range("a" & Rows.Count).End(xlUp).Row
    Set Table = Sheets("BDD").Range("b2:c" & dlf_bdd)
    With Sheets("Temp")
    dlf = .Range("a" & Rows.Count).End(xlUp).Row + 1
    .Range("a" & dlf) = Date
    .Range("b" & dlf) = ComboBox2
    .Range("c" & dlf) = CDbl(TextBox2)
    .Range("d" & dlf) = TextBox1
    .Range("e" & dlf) = ComboBox1
    .Range("f" & dlf) = .Range("c" & dlf) * Application.WorksheetFunction.VLookup(.Range("d" & dlf), Table, 2, 0)
    End With
    ListBox1.AddItem (TextBox2 & " " & TextBox1)
    TextBox1 = ""
    TextBox2 = ""
    b) j'ai aussi essayé avec textbox2 = "" en moins, je m'étais dit que c'était peut-être ça

    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
    TextBox1 = "Eau"
    TextBox2 = Val(TextBox2) + 1
     
    If TextBox1 = "" Or TextBox2 = "" Then
    MsgBox "Vous devez impérativement remplir le mode de paiement, le nom du client, la quantitée et l'article avant de valider", vbInformation
    Exit Sub
    End If
    dlf_bdd = Sheets("BDD").Range("a" & Rows.Count).End(xlUp).Row
    Set Table = Sheets("BDD").Range("b2:c" & dlf_bdd)
    With Sheets("Temp")
    dlf = .Range("a" & Rows.Count).End(xlUp).Row + 1
    .Range("a" & dlf) = Date
    .Range("b" & dlf) = ComboBox2
    .Range("c" & dlf) = CDbl(TextBox2)
    .Range("d" & dlf) = TextBox1
    .Range("e" & dlf) = ComboBox1
    .Range("f" & dlf) = .Range("c" & dlf) * Application.WorksheetFunction.VLookup(.Range("d" & dlf), Table, 2, 0)
    End With
    ListBox1.AddItem (TextBox2 & " " & TextBox1)
    TextBox1 = ""

    Cependant ça ne marche pas,
    Ca m’affiche sur plusieurs ligne (si je clic deux fois, deux fois 1 Eau et ainsi de suite)

    En te remerciant

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    J'ai de la difficulté à te suivre...
    En passant, quand tu écris du code, sélectionne-le et clique le bouton # en haut du message pour le formater.

    La façon d'incrémenter ta textbox est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2 = Val(TextBox2) + 1
    Bien sûr, si tu veux conserver sa valeur, tu ne dois pas la mettre = "" ou fermer le Userform
    Mais je ne vois pas pourquoi tu n'écrirais pas la valeur plutôt que de cliquer plusieurs fois sur un bouton (?)

  5. #5
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    bonjour,

    Suis vraiment désolé de répondre aussi tardivement, mais j'ai énormément de travail.

    Je te remercie de m'avoir répondu.

    Suivant ta réponse, c'est vrai que je pourrais juste inscrire le nombre et sélectionner l'article après.

    Cependant, c'est juste pour une question de rapidité.

    C'est juste pour cela.

    Maintenant si ce n'ai pas possible d'additionner le nombre de clic ou lieu de les avoirs à la suite de l'autre, je ferais comme tu me dis.

    En te remerciant de ta patience.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Où est-ce que tu cliques pour incrémenter ta textbox?
    Sur un bouton?

    Si oui, le code proposé fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2 = Val(TextBox2) + 1

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/02/2016, 20h21
  2. [XL-2010] Besoin d'aide à la création d'une macro dans XL-2010
    Par florian1106 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/12/2012, 13h18
  3. Aide pour macros dans Excell
    Par lucillion dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/05/2011, 18h59
  4. [XL-2007] Rech aide pour text dans TextBox avec macro
    Par shaki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2009, 12h15
  5. [VBA-E] Copier une macro dans un fichier à l'aide d'une macro
    Par Capsule dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2007, 20h05

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