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 :

condition si bouton d'options [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut condition si bouton d'options
    bonjour à tous
    voici mon problème

    dans le code ci-dessous, qui me sert a remplir les éléments des box (numéroté tous de 01 à 10 pour chaque catégorie de box) dans une feuille, je cherche à mettre dans une cellule le chiffre 1 ou 2 ou 3 ou 4 en fonction de certaine condition qui concerne des boutons s'iol sont sélectionné:

    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
     
    On Error Resume Next
    If Me.txt_total.Value = "" Then Exit Sub
    Sheets("commande").Select
    Dim i As Byte, Indice As Byte, derlig As Integer
    Dim recap As Worksheet
    Set recap = Worksheets("recap")
     
    With Worksheets("commande")
        derlig = .Range("A" & .Rows.Count).End(xlUp).Row
        For i = 1 To 10
            If Controls("cmb_ref" & Format(i, "00")) <> "" Then
                Indice = Indice + 1
                .Range("A" & Indice + derlig) = Controls("cmb_ref" & Format(i, "00"))
                .Range("b" & Indice + derlig) = Controls("txt_categorie" & Format(i, "00"))
                .Range("c" & Indice + derlig) = Controls("txt_type" & Format(i, "00"))
                .Range("d" & Indice + derlig) = Controls("txt_lib" & Format(i, "00"))
                .Range("e" & Indice + derlig) = Controls("txt_kilo_carton" & Format(i, "00"))
                .Range("f" & Indice + derlig) = Controls("txt_kilo_detail" & Format(i, "00"))
                .Range("g" & Indice + derlig) = Controls("txt_poids" & Format(i, "00")) * 1
                .Range("h" & Indice + derlig) = Controls("txt_cond" & Format(i, "00")) * 1
                .Range("i" & Indice + derlig) = Controls("txt_prix_carton" & Format(i, "00")) * 1
                .Range("j" & Indice + derlig) = Controls("txt_prix_detail" & Format(i, "00")) * 1
                .Range("k" & Indice + derlig) = Controls("txt_kilopromo_carton" & Format(i, "00"))
                .Range("l" & Indice + derlig) = Controls("txt_kilopromo_detail" & Format(i, "00"))
                .Range("m" & Indice + derlig) = Controls("txt_prixpromo_carton" & Format(i, "00")) * 1
                .Range("n" & Indice + derlig) = Controls("txt_prixpromo_detail" & Format(i, "00")) * 1
                .Range("o" & Indice + derlig) = Controls("txt_quant" & Format(i, "00")) * 1
                .Range("p" & Indice + derlig) = Controls("txt_tot" & Format(i, "00")) * 1
                .Range("q" & Indice + derlig) = txt_nom
            End If
        Next
    End With
     
    'remplir le recap
    recap.Range("a65536").End(xlUp).Offset(1, 0).Value = Me.txt_nom.Value
    recap.Range("B65536").End(xlUp).Offset(1, 0).Value = Me.txt_total.Value * 1
     
    Unload Me
    ActiveWorkbook.Save
    End Sub
    voici les conditions
    1) si opb_promo et opb_detail sont vrai alors mettre le chiffre 1 dans la colonne r
    2) si opb_promo et opb_carton sont vrai alors mettre le chiffre 2 dans la colonne r
    3) si seulement opb_detail est vrai alors mettre le chiffre 3 dans la colonne r
    4) si seulement opb_carton est vrai alors mettre le chiffre 4 dans la colonne

    et c'est boutons sont aussi en 10 exemplaires chacun (opb_promo01, opb_promo02, ....opb_promo10)
    je voudrais donc les intégrer dans la boucle

    merci pour votre aide

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'Dans la zone de déclaration
    Dim V As Byte
     
    '....
    If Me.Controls("opb_promo" & Format(i, "00")) Then
        V = IIf(Me.Controls("opb_detail" & Format(i, "00")), 1, 2)
    Else
        V = IIf(Me.Controls("opb_detail" & Format(i, "00")), 3, 4)
    End If
    'et la suite
    .Range("R" & Indice + derlig) = V
    PS: J'ai supposé que si ce n'est pas opb_detail alors c'est opb_carton

  3. #3
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    merci je fait les test
    j'ai pour habitude d’utiliser "=true" avec les boutons d'option, ce qui n'est pas ton cas.
    As-tu un lien d'un tuto sur ta manière de gérer ces objets pour que je comprenne ?

  4. #4
    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
    Tu peux mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If x=True Then
    'ou
    If x Then

  5. #5
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    ha bon,
    par défaut vba considère que c'est vrai

    donc je comprend mieux

    merci ton code est parfait je peux avancé

  6. #6
    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
    par défaut vba considère que c'est vrai
    Je n'oserai pas dire ceci (ou ta phrase est incomplète)

    Pour le test (égalité ou inégalité) on fait d'habitude ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test1()
    Dim x As Byte
     
    x = 3
    If x <> 3 Then MsgBox "Rien"
    If x = 3 Then MsgBox "D'occord"
    End Sub
    Regarde maintenant ce qu'on devrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test2()
    Dim x As Byte
     
    x = 3
    If (x <> 3) = True Then MsgBox "Rien"
    If (x = 3) = True Then MsgBox "D'occord"
    If (x <> 3) = False Then MsgBox "Bravo"
    End Sub

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

Discussions similaires

  1. bouton d'option
    Par Le Rebel dans le forum Langage
    Réponses: 1
    Dernier message: 08/02/2006, 13h15
  2. Problème avec les boutons d'options
    Par Le Rebel dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 12h12
  3. boutons d'option
    Par Djekill dans le forum Access
    Réponses: 6
    Dernier message: 15/11/2005, 16h11
  4. Modifier une requête en fonction de boutons d'option
    Par JahRastafari dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 13h42
  5. [MFC] bouton avec option "accept files"
    Par bigboomshakala dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2004, 16h15

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