Condition sur une Listbox pour un affichage sur 4 Textbox

Bonjour,

J'ai tenté de faire écrire automatiquement "x" sur 4 Textbox si on choisi "x" dans une Listbox dans la USF Newclient mais le programme se bloque.

CI-dessous ma partie de code.

If Me.Controls("Combobox" & i).Value = "x" Then
        For j = 0 To 3
            Me.Controls("Textbox" & j + 17).Value = "x"
            Me.Controls("Textbox" & j + 21).Value = "x"
            Me.Controls("Textbox" & j + 25).Value = "x"
            Me.Controls("Textbox" & j + 29).Value = "x"
        Next j
    End If

Sinon je rencontre 2 bugs sur la page ClaimForm dans les cellules H56, J56 et J57 qui suivent le même principe que les cellules C56 et C57.

En B2, si le nombre à 7 chiffres commence par "85" >>> C57 et J57 doivent être = 0

Si ça commence par 69 >>> C56, H56, J56 = 0

(NB: H57 n'est jamais utilisé et H56 est la seule cellule de donnée à entrer manuellement)

Je ne rencontre aucun soucis avec C56 et 57. Par contre H56 et J56 ne se mettent pas à zéro quand je bascule en mode 69 et viceversa.

What is the problem please ?

61brouillon.xlsm (83.22 Ko)

Bonjour Gladius le forum

bon alors ton fichier sans aucune explication de comment il marche , il faut donc chercher !!!!

une question comment veux-tu que ta condition puisse être traitée par excel???

Tu fais une boucle avec une variable i et la condition est à l'extérieur de la boucle !!!!!!!!!!!!!

Alors tu veux obtenir quoi au chargement de ton userform New Client ?????

ou alors c'est pour avoir les 4 Textbox avec un x ????

En plus tu parles de remplir 4 textbox avec un X quand choix dans la listbox, hors il n'y a pas de listbox dans l'userform New Client ??

bref a te relire avec des explications du comment et du pourquoi

a+

papou

Bonjour Paritec

Pour accéder à la USF Nexclient : Accueil + Fiche Client + Nouveau Client

Ce que je cherchais à coder:

Si Combobox 3 = x >>> Textbox 17 à 20 = x

Si Combobox 4 = x >>> Textbox 21 à 24 = x

Si Combobox 5 = x >>> Textbox 25 à 28 = x

Si Combobox 6 = x >>> Textbox 29 à 32 = x

' Création des listes dans Combobox2
Private Sub UserForm_Initialize()
Dim i As Integer            ' Variable n° Combobox
Dim j As Integer            ' Variable n° Combobox
Dim k As Integer            ' Varable n° Textbox
' LastMarque = Dernière ligne colonne B dans Listes
Dim LastMarque As Long
    With Sheets("Listes")
        LastMarque = .Range("A" & Rows.Count).End(xlUp).Row
        Me.ComboBox2.List = .Range("A2:A" & LastMarque).Value
    End With

    ' Petites listes donc Méthode Array
    Me.ComboBox1.List = Array(" ", "Automotive", "Industrielle T.", "Industrielle M.", "Plaisance")

    For i = 3 To 6
        Me.Controls("ComboBox" & i).List = Array(" ", "XC", "KTM", "MUGEN", "VOXAN", "WEST", "x")
    Next i

    For j = 3 To 6
    If Me.Controls("Combobox" & j).Value = "x" Then
        For k = 0 To 3
            Me.Controls("Textbox" & k + 17).Value = "x"
            Me.Controls("Textbox" & k + 21).Value = "x"
            Me.Controls("Textbox" & k + 25).Value = "x"
            Me.Controls("Textbox" & k + 29).Value = "x"
        Next k
    End If
    Next j

End Sub

En espérant que tout soit clair.

a+

gladius

61brouillon.xlsm (83.44 Ko)

Bonjour Gladius le forum

si j'ai compris voilà ton fichier en retour, mais toi tu avais mis ta procédure dans l'initialize pourquoi??

tu voulais les x au chargement ou seulement quand tu choisis x dans combobox 3 à 6 bref voilà la deuxième solution si pas cela redis moi je modifierai

a+

papou

154gladius-v2.xlsm (90.13 Ko)

Non non ce que tu as fais est exactement ce que je cherchais.

Mais je croyais qu'il était possible d'éviter de faire 4 programmes identiques (sauf variables) dans l'initialize.

Merci pour ton aide a+

Bonjour Gladius le forum

bah non l'initialize c'est pour initialiser l'userform à son chargement, mais après ton résultat dépend bien lui, du changement des combos

a+

papou

Rechercher des sujets similaires à "condition listbox affichage textbox"