Optimiser un userform qui renseigne un tableau

saggigo

XLDnaute Occasionnel
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
 

Paf

XLDnaute Barbatruc
Re : Optimiser un userform qui renseigne un tableau

Bonjour

pas sûr d'avoir compris. Mais peut-être ceci

Code:
....
.Range("H" & X) = CLng(Me.Txb_Tel_1)

If  Me.Txb_Contact_2 <> "" Then
    .Range("I" & X) = Me.Txb_Contact_2
    .Range("J" & X) = Me.Txb_Fonction_2
    .Range("K" & X) = CLng(Me.Txb_Tel_2)
End If
If  Me.Txb_Contact_3 <> "" Then
    .Range("L" & X) = Me.Txb_Contact_3
    .Range("M" & X) = Me.Txb_Fonction_3
    .Range("N" & X) = CLng(Me.Txb_Tel_2)
End If

.Range("O" & X) = Me.Cmb_Besoin
...

A+
 

Staple1600

XLDnaute Barbatruc

camarchepas

XLDnaute Barbatruc
Re : Optimiser un userform qui renseigne un tableau

Bonsoir à tous , Paf et Jean Marie, Saggigo

Pas dans un autre fil , j'espére , y'a des sacrées puces sur le forum des fois.

Bon , y'a plus de soleil à cette heure donc plus de réseau je suppose ....
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly