bonjour la team.
voilà j'ai un userform qui me renseigne un tableau (par ligne) , mais lorsque je ne remplie pas toutes les cases il me sort le message de débogage.
j'aimerais insérer des sauts de telle manière que si:
".Range("I" & X) = Me.Txb_Contact_2" est vide, je saute vers la ligne : ".Range("O" & X) = Me.Cmb_Besoin"
ou si la ligne :
".Range("L" & X) = Me.Txb_Contact_3" je saute vers la ligne : ".Range("O" & X) = Me.Cmb_Besoin"
Voici le code:
Private Sub Valider_Click()
Dim X As Long
If Me.Txb_Client = "" Then
MsgBox "Il faut un client !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Cmb_Sect_Acti = "" Then
MsgBox "Il faut un secteur d'activité !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Cmb_Ville = "" Then
MsgBox "Il faut une wilaya !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Txb_Adresse = "" Then
MsgBox "Il faut une une adresse !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Txb_Contact_1 = "" Then
MsgBox "Il faut au moins un contact !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Cmb_Besoin = "" Then
MsgBox "Il faut choisir un besoin !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocusk
Exit Sub
End If
If Me.Cmb_Res_Act = "" Then
MsgBox "Il faut choisir le Responsable de l'action !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
With Sheets("Base de donnée client")
X = .Cells(Rows.Count, "C").End(xlUp).Row + 1
.Range("B" & X) = Me.Txb_Client
.Range("C" & X) = Me.Cmb_Sect_Acti
.Range("D" & X) = Me.Cmb_Ville
.Range("E" & X) = Me.Txb_Adresse
.Range("F" & X) = Me.Txb_Contact_1
.Range("G" & X) = Me.Txb_Fonction_1
.Range("H" & X) = CLng(Me.Txb_Tel_1)
.Range("I" & X) = Me.Txb_Contact_2
.Range("J" & X) = Me.Txb_Fonction_2
.Range("K" & X) = CLng(Me.Txb_Tel_2)
.Range("L" & X) = Me.Txb_Contact_3
.Range("M" & X) = Me.Txb_Fonction_3
.Range("N" & X) = CLng(Me.Txb_Tel_2)
.Range("O" & X) = Me.Cmb_Besoin
.Range("P" & X) = Me.Cmb_Res_Act
End With
'Remise à 0 de l'USF'
Me.Txb_Client = ""
Me.Cmb_Sect_Acti = ""
Me.Cmb_Ville = ""
Me.Txb_Adresse = ""
Me.Txb_Contact_1 = ""
Me.Txb_Fonction_1 = ""
Me.Txb_Contact_2 = ""
Me.Txb_Fonction_2 = ""
Me.Txb_Contact_3 = ""
Me.Txb_Fonction_3 = ""
Me.Txb_Tel_1 = ""
Me.Txb_Tel_2 = ""
Me.Txb_Tel_3 = ""
Me.Cmb_Besoin = ""
Me.Cmb_Res_Act = ""
Me.Txb_Client.SetFocus
'mettre le curseur sur la Combobox formateur
End Sub
voilà j'ai un userform qui me renseigne un tableau (par ligne) , mais lorsque je ne remplie pas toutes les cases il me sort le message de débogage.
j'aimerais insérer des sauts de telle manière que si:
".Range("I" & X) = Me.Txb_Contact_2" est vide, je saute vers la ligne : ".Range("O" & X) = Me.Cmb_Besoin"
ou si la ligne :
".Range("L" & X) = Me.Txb_Contact_3" je saute vers la ligne : ".Range("O" & X) = Me.Cmb_Besoin"
Voici le code:
Private Sub Valider_Click()
Dim X As Long
If Me.Txb_Client = "" Then
MsgBox "Il faut un client !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Cmb_Sect_Acti = "" Then
MsgBox "Il faut un secteur d'activité !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Cmb_Ville = "" Then
MsgBox "Il faut une wilaya !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Txb_Adresse = "" Then
MsgBox "Il faut une une adresse !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Txb_Contact_1 = "" Then
MsgBox "Il faut au moins un contact !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
If Me.Cmb_Besoin = "" Then
MsgBox "Il faut choisir un besoin !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocusk
Exit Sub
End If
If Me.Cmb_Res_Act = "" Then
MsgBox "Il faut choisir le Responsable de l'action !", vbCritical, "Erreur saisie"
Me.Txb_Client.SetFocus
Exit Sub
End If
With Sheets("Base de donnée client")
X = .Cells(Rows.Count, "C").End(xlUp).Row + 1
.Range("B" & X) = Me.Txb_Client
.Range("C" & X) = Me.Cmb_Sect_Acti
.Range("D" & X) = Me.Cmb_Ville
.Range("E" & X) = Me.Txb_Adresse
.Range("F" & X) = Me.Txb_Contact_1
.Range("G" & X) = Me.Txb_Fonction_1
.Range("H" & X) = CLng(Me.Txb_Tel_1)
.Range("I" & X) = Me.Txb_Contact_2
.Range("J" & X) = Me.Txb_Fonction_2
.Range("K" & X) = CLng(Me.Txb_Tel_2)
.Range("L" & X) = Me.Txb_Contact_3
.Range("M" & X) = Me.Txb_Fonction_3
.Range("N" & X) = CLng(Me.Txb_Tel_2)
.Range("O" & X) = Me.Cmb_Besoin
.Range("P" & X) = Me.Cmb_Res_Act
End With
'Remise à 0 de l'USF'
Me.Txb_Client = ""
Me.Cmb_Sect_Acti = ""
Me.Cmb_Ville = ""
Me.Txb_Adresse = ""
Me.Txb_Contact_1 = ""
Me.Txb_Fonction_1 = ""
Me.Txb_Contact_2 = ""
Me.Txb_Fonction_2 = ""
Me.Txb_Contact_3 = ""
Me.Txb_Fonction_3 = ""
Me.Txb_Tel_1 = ""
Me.Txb_Tel_2 = ""
Me.Txb_Tel_3 = ""
Me.Cmb_Besoin = ""
Me.Cmb_Res_Act = ""
Me.Txb_Client.SetFocus
'mettre le curseur sur la Combobox formateur
End Sub