XL 2010 [Resolu par Nicole] Bloquer saisie textbox

cp4

XLDnaute Barbatruc
Bonjour,

Je suis parti d'un formulaire de Boisgontier auquel j'ai rajouté quelques contrôles pour mes besoins.

Je suis confronté à 2 problèmes:
1-Ayant adapté le formulaire, je voudrais adapter la largeur de la première colonne de la listbox. Celle-ci contient des dates, elles n'apparaissent pas dans leur totalité. (largeurs gérées par code)

2- En cliquant, sur une ligne de la listbox, les données sont affichées dans des textboxs afin d'effectuer d'éventuelles corrections. Textbox4 concerne un débit et textbox5 un crédit. Il s'agit de bloquer l'insertion de données dans ces tetxboxs. En effet, si on sélectionne une ligne pour corriger par exemple un crédit, on ne doit pas pouvoir insérer un montant dans la textbox de débit et vice-versa.

nb: un code gère la saisie de chiffres et caractères des décimaux.

Merci.
 

Pièces jointes

  • textbox.xlsm
    35.7 KB · Affichages: 39

cp4

XLDnaute Barbatruc
Merci pour ta proposition. Mais ce n'est pas ça.

Le but est de corriger en cas d'erreur du montant. Une ligne ne peut contenir qu'un montant débit ou crédit.
Par exemple: je sélectionne une ligne pour laquelle je veux corriger le crédit, en sélectionnant la ligne les données sont transmises aux textboxs. pour "crédit" c'est textbox5, pour éviter des erreurs supplémentaires on ne doit pas pouvoir accéder à la textbox4 "débit".

et inversement, si on corrige un "débit" (textbox4), on ne doit pas pouvoir accéder à la texbox5 ("crédit").

En fait, c'est l'inverse de ce que tu me proposes.

Merci quand même pour ton essai.;)
 

pijaku

XLDnaute Occasionnel
Bonjour,

Ton souci est dans la procédure événementielle : ListBox1_Click()

Ton Exit Sub au sein de ta double boucle empêche les dernières lignes de ton code de fonctionner (TextBox.Locked).
Remplace donc Exit Sub Par un GoTo (même si je n'aime pas trop), comme dans ce code :
Code:
Private Sub ListBox1_Click()
    For i = 0 To Ncol - 1
      k = ColVisu(i)
      Me("TextBox" & i + 2) = Me.ListBox1.Column(i)
    Next i
Tablo = Sheets("feuil1").Range("A2:F" & Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(Tablo, 1) To UBound(Tablo, 1)
       For i = 0 To Ncol - 1
           If Trim(CStr(Tablo(n, i + 1))) = Trim(Me("TextBox" & i + 2)) Then
                nb = nb + 1
               If nb = Ncol Then
                    ligne_a_supp = n + 1
                    'Exit Sub
                    GoTo Suite
                End If
            End If
       Next
       nb = 0
Next
Suite:
If Me.TextBox4.Value = "" And Me.TextBox5.Value <> "" Then Me.TextBox4.Locked = True Else Me.TextBox4.Locked = False
If Me.TextBox5.Value = "" And Me.TextBox4.Value <> "" Then Me.TextBox5.Locked = True Else Me.TextBox5.Locked = False

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane