obligation de remplir USF

R

rem$

Guest
bonjour a tous

j'en arrive à la fin de mon USF mais j'ai encore des petits soucis pratiques

1) comment obliger l'utilsiateur a remplir son text ou coombobox ?
2) comment limiter la valeur d'un textbox : pour un nbre qui doit forcement commencer par 54.................
3) comment obliger à valider au moins 1 checkbox sur les 5 de mon USF


j'ai 4 frames :
frame1 = combobox1 doit etre rempli
frame2 = textbox1 doit etre rempli
frame3 = textbox2 nbre qui commence par 54.............. et qui est scanné avec une "douchette" doit etre rempli
frame4 = 5 checkbox dont au moins 1 doit être cocher

si une des conditions n'est pas respectée alors pas de "validation" possible
la validation se fait via un boutton qui recopie les donnees dans la feuille excel correspondant a la valeur du combobox

j'espere etre clair car mon fichier meme zipé ne passe pas...

d'avance merci et bon apeti....
@ bientot

Rem$
 
M

myDearFriend!

Guest
Bonsoir rem$, le Forum.


Soit un bouton de validation nommé "BtnValiderUSF" et des contrôles "ComboBox1", "TextBox1", "TextBox2", "CheckBox"(1 à 5), tu peux essayer le code ci-dessous dans le module de code d'Userform :


Private Sub BtnValiderUSF_Click()
        If SaisieOk = 5 Then
                'recopie les donnees dans la feuille excel ...
                Unload Me
        Else
                MsgBox "Saisie incomplète !" & vbLf & "(" & Choose(SaisieOk, "ComboBox1", "TextBox1", "TextBox2", "CheckBox") & ")", vbOKOnly, "Erreur..."
        End If
End Sub

Private Function SaisieOk() As Byte
Dim Ctrl As Control
        SaisieOk = 1
&nbsp; &nbsp; &nbsp; &nbsp; If Combobox1.ListIndex < 0 Then Exit Function
&nbsp; &nbsp; &nbsp; &nbsp; SaisieOk = 2
&nbsp; &nbsp; &nbsp; &nbsp; If Trim(TextBox1.Text) = "" Then Exit Function
&nbsp; &nbsp; &nbsp; &nbsp; SaisieOk = 3
&nbsp; &nbsp; &nbsp; &nbsp; If Left(TextBox2.Text, 2) <> "54" Then Exit Function
&nbsp; &nbsp; &nbsp; &nbsp; SaisieOk = 4
&nbsp; &nbsp; &nbsp; &nbsp; For Each Ctrl In Me.Controls
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If TypeName(Ctrl) = "CheckBox" Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Ctrl.Value Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SaisieOk = 5
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exit For
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If
&nbsp; &nbsp; &nbsp; &nbsp; Next Ctrl
End Function

Cordialement,
Didier_mDF

myDearFriend-3.gif
 
R

rem$

Guest
re,

voici mon code complet


Private Sub btnValider_Click()
Dim Ligne As Long
If SaisieOk = 5 Then
'recopie les donnees dans la feuille excel ...

Else
MsgBox "Saisie incomplète !" & vbLf & "(" & Choose(SaisieOk, "nature du problème", "Identifiant", "N° échantillon", "Analyse des causes") & ")", vbOKOnly, "Erreur..."
End If
'Ajouter une ligne d'enregistrement
With ThisWorkbook.Sheets(ComboBox1.Value)

'Déterminer la première ligne libre du tableau
Ligne = .Range("A65536").End(xlUp).Row + 1
'Créer la nouvelle ligne d'enregistrement
.Cells(Ligne, 1) = Ligne - 1
.Cells(Ligne, 2) = Format(Now, fulldate)
.Cells(Ligne, 3) = TextBox1
.Cells(Ligne, 4) = TextBox2
.Cells(Ligne, 5) = CheckBox1
.Cells(Ligne, 6) = CheckBox2
.Cells(Ligne, 7) = CheckBox3
.Cells(Ligne, 8) = CheckBox4
.Cells(Ligne, 9) = CheckBox5
'Bordure de cellules
.Range(.Cells(Ligne, 1), .Cells(Ligne, 9)).Borders.LineStyle = xlContinuous

End With

CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
CheckBox4 = False
CheckBox5 = False


End Sub


le pb se situe au niveau du combobox1 car si il n'est pas rempli j'ai une erreur d'execution '9' : l'indice n'apartient pas a la selection

or ce dont j'aurais besoin c'est de retourner dans le combobox pour modifier la reponse
si le message persiste les utilisateurs vont etre perdu....
merci d'avance pour l'aide

rem$
 
R

rem$

Guest
re re

dslé j'ai compris mon erreur et je l'ai corrigée

juste en passant comme ca : depuis que je pose des questions sur les macros et avec les reponses, les demos et le telechargement je trouve que mon niveau macro ne cesse de monter alors meci à vous tous pour votre aide et votre patience
encore merci

Rem$
 

Statistiques des forums

Discussions
313 095
Messages
2 095 222
Membres
106 226
dernier inscrit
M1M0