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 :

combobox imbriqués et non efficacité du test sur listindex-1


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut combobox imbriqués et non efficacité du test sur listindex-1
    bonjour

    je suis en excel 2007

    j'ai un formulaire avec une clé sur nom et prénom concaténé (combobox1)
    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
    ' **************************************
    'Correspond au programme de la LISTE DEROULANTE
    ' **************************************
    Private Sub ComboBox1_Change()
    Dim ligne As Long
    Dim i As Integer
    Dim chemin As String
    
      If Me.ComboBox1.ListIndex = -1 Then GoTo etiq_csp:
      ligne = Me.ComboBox1.ListIndex + 2
      
      
     
      Me.ComboBox1 = ws.Cells(ligne, "A")
      Me.TextBox1 = ws.Cells(ligne, "B")
      Me.TextBox8 = ws.Cells(ligne, "C")
    et dans ce traitement j'ai un autre combobox2 sur un champ catégorie socio professionnelle (8 valeurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' **************************************
    ' LISTE DEROULANTE :CSP
    ' **************************************
    etiq_csp:
     If Me.ComboBox2.ListIndex = -1 Then GoTo etiq_tri:
      ligne = Me.ComboBox2.ListIndex + 2
      
      With ComboBox2
     
      Me.TextBox13 = ws.Cells(ligne, "M") ' CSP
      End With
     
    etiq_tri: Call TRIBEN
    Mon problème vient de la non efficacité du test i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.ComboBox2.ListIndex = -1 [/B]Then GoTo etiq_tri:
    comme conséquence je n'affiche pas ma catégorie

    par ailleurs j'ai déclaré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox2_Click()
    If csp_invoked_init = "oui" Then Exit Sub
    MsgBox ComboBox2.Value
    TextBox13 = ComboBox2.Value
    End Sub
     
    Private Sub ComboBox2_Change()
    MsgBox ComboBox2.Value
    TextBox13 = ComboBox2.Value
    End Sub
    merci pour votre aide

    michel

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu expliquais ce que tu souhaites obtenir ce serait plus simple à comprendre et il faudrait que tu insères ton code entre les balises prévues à cet effet.
    J'ajouterais que l'utilisation du GoTo est une très mauvaise habitude, il faut absolument le proscrire sauf pour la gestion des erreurs car on n'a pas le choix;
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut combobox imbriquées et supprsseion du controle
    bonjour

    je suis dans le traitement des listes déroulantes pour mon bénévole (combobox1)

    un des champs (CSP) catégorie socio professionnelles via combobox2 ne s'affiche pas

    le programme shunte l'affichage considérant que la liste est vide ce qui est faux

    je veux valoriser textbox13

    Voici le code isolé


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' **************************************
    ' LISTE DEROULANTE :CSP
    ' **************************************
    etiq_csp:
     If Me.ComboBox2.ListIndex = -1 Then GoTo etiq_tri:
      ligne = Me.ComboBox2.ListIndex + 2
    
      With ComboBox2
     
      Me.TextBox13 = ws.Cells(ligne, "M") ' CSP
      End With
     
    etiq_tri: Call TRIBEN
    je mets aussi le code dans son environnement



    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    ' **************************************
    'Correspond au programme de la LISTE DEROULANTE
    ' **************************************
    Private Sub ComboBox1_Change()
    Dim ligne As Long
    Dim i As Integer
    Dim chemin As String
     
      If Me.ComboBox1.ListIndex = -1 Then GoTo etiq_csp:
      ligne = Me.ComboBox1.ListIndex + 2
     
     
     
      Me.ComboBox1 = ws.Cells(ligne, "A")
      Me.TextBox1 = ws.Cells(ligne, "B")
      Me.TextBox8 = ws.Cells(ligne, "C")
      Me.TextBox3 = ws.Cells(ligne, "D")
      Me.TextBox4 = ws.Cells(ligne, "E")
      Me.TextBox5 = ws.Cells(ligne, "F")
      Me.TextBox6 = ws.Cells(ligne, "G")
      Me.TextBox7 = ws.Cells(ligne, "H")
      Me.TextBox9 = ws.Cells(ligne, "J")
    '
      Me.TextBox11 = ws.Cells(ligne, "I")
      Me.TextBox12 = ws.Cells(ligne, "L")
     
     
     ' **************************************
    ' demi journee semaine
    ' **************************************
     Me.CheckBox26 = ws.Cells(ligne, "S")
     Me.CheckBox27 = ws.Cells(ligne, "T")
     Me.CheckBox28 = ws.Cells(ligne, "U")
     Me.CheckBox29 = ws.Cells(ligne, "V")
     Me.CheckBox30 = ws.Cells(ligne, "W")
     Me.CheckBox35 = ws.Cells(ligne, "X")
     Me.CheckBox31 = ws.Cells(ligne, "Y")
     Me.CheckBox32 = ws.Cells(ligne, "Z")
     Me.CheckBox33 = ws.Cells(ligne, "AA")
     Me.CheckBox34 = ws.Cells(ligne, "AB")
      ' **************************************
    ' situation retraité, actif
    ' **************************************
     Me.CheckBox16 = ws.Cells(ligne, "AC")
     Me.CheckBox17 = ws.Cells(ligne, "AD")
     Me.CheckBox18 = ws.Cells(ligne, "AE")
     Me.CheckBox19 = ws.Cells(ligne, "AF")
     Me.CheckBox20 = ws.Cells(ligne, "AG")
    ' **************************************
    ' LISTE DEROULANTE : domaine intervention
    ' **************************************
     Me.CheckBox21 = ws.Cells(ligne, "AH")
     Me.CheckBox22 = ws.Cells(ligne, "AI")
     Me.CheckBox23 = ws.Cells(ligne, "AJ")
     Me.CheckBox24 = ws.Cells(ligne, "AK")
     Me.CheckBox25 = ws.Cells(ligne, "AL")
     
      chemin = (TextBox1 & TextBox8)
      Call recphoto(chemin)  ' photos
     
     
     
    ' **************************************
    ' LISTE DEROULANTE :CSP
    ' **************************************
    etiq_csp:
     If Me.ComboBox2.ListIndex = -1 Then GoTo etiq_tri:
      ligne = Me.ComboBox2.ListIndex + 2
     
      With ComboBox2
     
      Me.TextBox13 = ws.Cells(ligne, "M") ' CSP
      End With
     
    etiq_tri: Call TRIBEN
     
     
     
    End Sub

Discussions similaires

  1. combobox marche pas sur onchange
    Par faamugol dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/10/2009, 11h12
  2. Combobox par SELECT sur fichier XML
    Par zouzou99 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/04/2008, 07h00
  3. clear combobox après click sur bouton
    Par mira2008 dans le forum IHM
    Réponses: 2
    Dernier message: 29/01/2008, 12h22
  4. [C#][.Net 2.0] donner focus à Combobox, après click sur treeview
    Par Harry_polin dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/02/2006, 22h27
  5. [VB.NET][comboBox][débutant] trier sur valueMember
    Par goony dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/10/2005, 16h27

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