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 :

Décalage entre Combobox et Textbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut Décalage entre Combobox et Textbox
    Bonjour à tous,

    Je rencontre une problématique de décalage entre une Textbox (alimentée par un CommandButton) et une Combobox associée:

    Le fonctionnement:

    j'ai créé un formulaire "A" regroupant 18 CommandButton - 1 par secteur d'activités [1].

    Nom : doc1.jpg
Affichages : 559
Taille : 399,1 Ko

    En cliquant sur l'un de ces CommandButton, j'ouvre un second formulaire "B" contenant (entre autres) :
    - une Textbox1 contenant le nom du secteur d'activité (rempli au clic du CommandButton du formulaire A) [2];
    - une ComboBox1 listant des situations de danger relatives au secteur d'activité concerné [3].
    Nom : doc2.jpg
Affichages : 559
Taille : 273,8 Ko



    L'objectif

    Une fois le secteur d'activité sélectionné, je souhaite que la liste des situations dangereuses de ce secteur apparaisse dans la Combobox pour pouvoir les modifier, actualiser, voire supprimer.

    Une fois validées ou modifiées [4], les informations contenues dans les Textbox (es) sont transférées dans le fichier Excel à la PAGE (secteur d'activité) et la LINE (n° de situation dangereuse) attendues [5].

    Nom : Sans titre.jpg
Affichages : 597
Taille : 296,6 Ko

    Le problème:

    Lorsque je change de secteur d'activité, la Combobox garde en mémoire la liste des situations dangereuses du secteurs précédemment sélectionné! Je suis forcé de retourner à la sélection des secteurs, de re-sélectionnner le secteur souhaité pour que la liste s'actualise!

    Ma question :

    Ou est ce que le bât blesse?

    Comment remédier à ce soucis?

  2. #2
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,
    Difficile de t'aider sans le code ...
    Quand est-ce que la combobox est alimentée dans ton code actuel ? Quel evenement (clic, changement d'une textbox/combobox...) devrait entraîner sa modification ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    copie colle les macros des commandbouton (lors de l'évènement clic) dans ta textbox (lors de l'évènement changement de texte) en vérifiant de quel secteur il s'agit puis la macro concernée se lancera remplissant ainsi ta combobox comme si tu venais de cliquer sur un commandbouton.

    Ex : tu écris "sanitaires" dans ta textbox et il ira chercher la macro qui correspond à cela comme si tu venais de cliquer sur le commandbouton "sanitaires".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If textbox="sanitaires" then 
    'macro du commandbouton sanitaires
    ElseIf texbox="vitrerie" then ......

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    Lorsque je change de secteur d'activité, la Combobox garde en mémoire la liste des situations dangereuses du secteurs précédemment sélectionné!
    combobox.clear

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Bonjour à tous les 3, merci de vos réponses.

    @ riaolle: ci joint les codes des différentes étapes:

    1) ouverture du formulaire B par clic sur CommandButton du secteur concerné + affichage du nom de ce secteur en TextBox1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CVitrerie_Click()
    FIDENTIFICATION.Show
    FSECTORISATION.Hide
    FIDENTIFICATION.TextBox1 = "VITRERIE"
    Sheets("VITRERIE").Activate
    End Sub
    2) La Combobox1 s'alimente depuis la propriété RowSource, dépendant de la page de référence du secteur choisi

    S9:S1000

    3) alimentation des TextBoxes du formulaire B selon le n° d'identification de la situation dangereuse listé dans la Textbox.

    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 ComboBox1_Click()
       Set f = Sheets(Me.TextBox1.Text)
       ligne = Me.ComboBox1.ListIndex + 9
        Me.TextBox4 = f.Cells(ligne, 4)
        Me.TextBox5 = f.Cells(ligne, 5)
        Me.TextBox6 = f.Cells(ligne, 6)
        Me.TextBox7 = f.Cells(ligne, 7)
        Me.TextBox8 = f.Cells(ligne, 8)
        Me.TextBox9 = f.Cells(ligne, 9)
        Me.TextBox10 = f.Cells(ligne, 10)
        Me.TextBox11 = f.Cells(ligne, 11)
        Me.TextBox12 = f.Cells(ligne, 12)
        Me.TextBox14 = f.Cells(ligne, 14)
        Me.TextBox15 = f.Cells(ligne, 15)
        Me.TextBox16 = f.Cells(ligne, 16)
        Me.TextBox17 = f.Cells(ligne, 17)
     End Sub
    @ paul_thms: en gros tu me suggère de "doubler" la consigne pour qu'en 1 clic, l'action soit répétée automatiquement?

    @ mjpmjp: j'ai essayé de l'intégrer (combobox.clear) à l'ouverture du UserForm, mais sans effet, je ne sais pas où placer pour que cela fonctionne?

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    à l'ouverture / activation du form ou juste avant d'écrire dans combobox

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  7. #7
    Membre régulier
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    @ mjpmjp

    plusieurs tentatives, aucune ne fonctionne, parfois message d'erreur "non répertoriée".

    Je pense que c'est à cause de la propriété RowSource qui est renseignée (S9:S1000), je ne sais pas encore comment incrémenter une RowSource "manuellement".

    Je cherche dans ce sens et reviens vers vous!

    merci

  8. #8
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    Nom : video11.gif
Affichages : 490
Taille : 215,9 Ko

    j'ai nommé le combo : "Combo1"
    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
     
    Sub Bouton1_Cliquer()
        Call InitCombo1(1)
    End Sub
     
    Sub Bouton2_Cliquer()
        Call InitCombo1(2)
    End Sub
     
    Private Sub InitCombo1(Secteur As Integer)
        ActiveSheet.Shapes("Combo1").Select
        With Selection
            .LinkedCell = "K11"
            .DropDownLines = 26
            .Display3DShading = False
            Select Case Secteur
                Case 1 'Secteur1
                    .ListFillRange = "$S$9:$S$34"
                Case 2 'Secteur2
                    .ListFillRange = "$T$9:$T$34"
                Case Else
                    .ListFillRange = "$S$8:$T$8"
            End Select
        End With
        Range("k8").Select
    End Sub
     
    Sub Combo1_QuandChangement()
     
    End Sub
    perso , je n'aime pas travaillé avec des controls formulaire,
    je préfère largement les active X

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/09/2011, 19h20
  2. Réponses: 12
    Dernier message: 22/10/2008, 12h59
  3. Liaison entre ComboBox et TextBox
    Par adil54 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/08/2008, 16h27
  4. [VB]Pb update entre mon group textbox(i) et ma DataSource
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 31/01/2006, 09h23
  5. faire communiquer une combobox et textbox
    Par aliosys dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/12/2005, 10h20

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