Textbox Setfocus + msgBox

Simons

XLDnaute Occasionnel
Salut le Forum,

En PJ mon fichier avec un USF avec des boutons d'options et des textboxs.
Je voudrais que si un textbox n'est pas renseigné un message apparaisse pour prévenir l'utilisateur et que le focus se déplace sur le textbox en question. Et je voudrais aussi que si tout se passe bien un message le confirme.
J'ai une bonne partie du code déja écrit mais j'ai du mal à finaliser mon affaire.. :eek:hmy:

Merci d'avance pour votre aide.

[file name=textbox.zip size=15670]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/textbox.zip[/file]
 

Pièces jointes

  • textbox.zip
    15.3 KB · Affichages: 31
  • textbox.zip
    15.3 KB · Affichages: 25
  • textbox.zip
    15.3 KB · Affichages: 31

Hellboy

XLDnaute Accro
Bonjour Simons


Voici un ébauche en relation avec ta demande. (Du moins jespère)


Private Sub CommandButton1_Click()
Dim I As Byte, j As Byte
Dim N As Integer
Dim Derligne As Integer
Dim reponse As Boolean

'    Voici ma suggestion:
'    J'ai créé une routine que l'on appelle fonction. La différence entre une
Sub et Une Function,
'    C'est que tu peux retourner une réponse. C'est le but pricipale d'une Function
'    Je me suis servi de ton principe avec la variable ' reponse ' pour connaitre si toutes les cases
'    On été conplèté.

' Donc selon chacun des if suivant:

If OptionButton1 Then
   
'    Deux choses se passe ici: je fais appel a la Routine Fontion BoutonOption en lui passant un paramètre
    '    Le paramètre c'est quoi ? C'est le nombre de
Textbox que la routine doit vérifier pour ce If
   
'    La deuxième chose qui se passe, après le traitement ds la Funtion BoutonOption, si la valeur de retour
    '    est TRUE, alors le traitement ds le
If s'effectue
   
   
If BoutonOption(1) = True Then
            N = worksheets('feuil2').Range('a65536').End(xlUp).Row + 1
            worksheets('feuil2').Range('a' & N).Value =
TextBox1.Value
            Unload UserForm2
   
End If
End If

If OptionButton2 Then
   
If BoutonOption(1) = True Then
            N = worksheets('feuil2').Range('a65536').End(xlUp).Row + 1
            worksheets('feuil2').Range('a' & N).Value =
TextBox1.Value
            Unload UserForm2
   
End If
End If

If OptionButton3 Then
       
If BoutonOption(4) = True Then
            N = worksheets('feuil4').Range('a65536').End(xlUp).Row + 1
            worksheets('feuil4').Range('a' & N).Value =
TextBox1.Value
            worksheets('feuil4').Range('c' & N).Value =
TextBox2.Value
            worksheets('feuil4').Range('d' & N).Value =
TextBox6.Value
            worksheets('feuil4').Range('e' & N).Value =
TextBox3.Value
            worksheets('feuil4').Range('b' & N).Value =
TextBox4.Value
            worksheets('feuil4').Range('f' & N) = 'France'
            Unload UserForm2
   
End If
End If

If OptionButton4 Then
   
If BoutonOption(5) = True Then
            N = worksheets('feuil5').Range('a65536').End(xlUp).Row + 1
            worksheets('feuil5').Range('a' & N).Value =
TextBox1.Value
            worksheets('feuil5').Range('c' & N).Value =
TextBox2.Value
            worksheets('feuil5').Range('d' & N).Value =
TextBox6.Value
            worksheets('feuil5').Range('e' & N).Value =
TextBox3.Value
            worksheets('feuil5').Range('b' & N).Value =
TextBox4.Value
            worksheets('feuil5').Range('f' & N).Value =
TextBox5.Value
            Unload UserForm2
   
End If
End If
End Sub
*******************************************************************************
Private Function BoutonOption(intConteur As Integer) As Boolean ' Ici je spécifie le type de la variable passé en argument et je spécifie le type de valeur de retour
Dim j        As Integer

'    Ici, tu va voir, si tu nomme tes Texboxs avec le même nom que l'intitulé du label de ce même
'    Textbox, tu pourra avoir une réponse très précise sur le message du MSGBOX
   
For j = 1 To intConteur
           
With Controls('Textbox' & j)
                       
If .Value = '' Then
                            .SetFocus
                            msgbox 'Veuillez compléter tous le champs de !' & .Name, vbCritical, 'Microsoft excel'
                       
Else
                           
If msgbox('Vous allez ajouter ' & .Value & ' au champ ' & .Name & ' Vous confirmez ?', vbYesNo, 'Microsoft Excel') = vbNo Then
                                    Bouton
Option = False
                           
End If
                       
End If
           
End With
   
Next j
End Function


*******************************************************************************

[file name=textbox_20050906184807.zip size=15850]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/textbox_20050906184807.zip[/file]
 

Pièces jointes

  • textbox_20050906184807.zip
    15.5 KB · Affichages: 27

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 958
Membres
103 990
dernier inscrit
lamiadebz