Bonjour,
Si je ne rempli pas tous les combobox du Userform que j'ai créé, le programme buggue.
(Les combobox fonctionnent très bien)
Comment faire pour éviter celà?
Merci de votre aide
Voici le code
Private Sub CmdEnregistrer_Click()
If Me.TextNOM.Value = '' Then Exit Sub
If Me.TextDate.Value = '' Then
MsgBox ('Indiquer la date !')
Exit Sub
Else
MaDate = CDate(TextDate.Value)
End If
If Me.TextPrénom.Value = '' Then
MsgBox ('Indiquer le prénom ?')
Exit Sub
End If
If Me.TextAdresse1.Value = '' Then
MsgBox ('Indiquer l'adresse')
Exit Sub
End If
If Me.TextCodePostal.Value = '' Then
MsgBox ('Indiquer le code postal')
Exit Sub
End If
If Me.TextVille.Value = '' Then
MsgBox ('Indiquer la Ville')
Exit Sub
End If
Dim num
Dim lesMois, leMois, leMois1, leMois2, leMois3, leMois4, leMois5, leMois6
Dim p, q, o, ctrl, s
Dim statut, situation, permis, fonction, permis_poids_lourds
For Each p In UsfNouveau_Renseignement.FrSituation.Controls
If p.Value = True Then situation = Trim(p.Caption)
Next p
For Each q In UsfNouveau_Renseignement.FrPermis.Controls
If q.Value = True Then permis = permis & ' ' & Trim(q.Caption)
Next q
For Each o In UsfNouveau_Renseignement.FrFonction.Controls
If o.Value = True Then fonction = fonction & ' ' & Trim(o.Caption)
Next o
For Each ctrl In UsfNouveau_Renseignement.FrStatut.Controls
If ctrl.Value = True Then statut = statut & ' ' & Trim(ctrl.Caption)
Next ctrl
For Each s In UsfNouveau_Renseignement.FrSpécialités_PL.Controls
If s.Value = True Then permis_poids_lourds = permis_poids_lourds & ' ' & Trim(s.Caption)
Next s
'inscription des données récupérées du formulaire validé dans la feuille excel
'sélection de la ligne sur laquelle écrire (la première vide)
num = Sheets('FeuilPersonnel').Range('A65536').End(xlUp).Row + 1 'on part du bas de la colonne, on cherche
'la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 pour avoir le numéro de la
'ligne d'en dessous
lesMois = Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Sptembre', 'Octobre', 'Novembre', 'Décembre')
leMois = Application.Match(ComboBox4, lesMois, 0)
leMois1 = Application.Match(ComboBox7, lesMois, 0)
leMois2 = Application.Match(ComboBox10, lesMois, 0)
leMois3 = Application.Match(ComboBox13, lesMois, 0)
leMois4 = Application.Match(ComboBox16, lesMois, 0)
leMois5 = Application.Match(ComboBox19, lesMois, 0)
leMois6 = Application.Match(ComboBox22, lesMois, 0)
Sheets('FeuilPersonnel').Activate
Range('A' & num).Value = CDate(TextDate.Value)
Range('B' & num).Value = TextNOM.Value
Range('C' & num).Value = TextPrénom.Value
Range('D' & num).Value = TextAdresse1.Value
Range('E' & num).Value = TextAdresse2.Value
Range('F' & num).Value = TextCodePostal.Value
Range('G' & num).Value = TextVille.Value
Range('H' & num).Value = TextFixe.Value
Range('I' & num).Value = TextPortable.Value
Range('J' & num).Value = TextEmail.Value
Range('K' & num).Value = TextNiveau_scolaire1.Value
Range('L' & num).Value = TextNiveau_scolaire2.Value
Range('M' & num).Value = TextNSécu.Value
Range('N' & num).Value = ComboBoxGS.Value
Range('O' & num).Value = TextRenseignements_complémentaires.Value
Range('P' & num).Value = ComboBoxGrade.Value
Range('Q' & num).Value = DateSerial(ComboBox3, leMois, ComboBox5)
Range('R' & num).Value = DateSerial(ComboBox6, leMois1, ComboBox8)
Range('S' & num).Value = DateSerial(ComboBox9, leMois2, ComboBox11)
Range('T' & num).Value = TextN_AFPS.Value
Range('U' & num).Value = DateSerial(ComboBox12, leMois3, ComboBox14)
Range('V' & num).Value = TextN_CFAPSE.Value
Range('W' & num).Value = DateSerial(ComboBox15, leMois4, ComboBox17)
Range('X' & num).Value = TextN_CFAPSR.Value
Range('Y' & num).Value = DateSerial(ComboBox18, leMois5, ComboBox20)
Range('Z' & num).Value = TextCOD.Value
Range('AA' & num).Value = TextFDF.Value
Range('AB' & num).Value = TextRCH.Value
Range('AC' & num).Value = TextRAD.Value
Range('AD' & num).Value = TextSAV.Value
Range('AE' & num).Value = TextSAL.Value
Range('AF' & num).Value = TextIMP.Value
Range('AG' & num).Value = TextISS.Value
Range('AH' & num).Value = TextEPS.Value
Range('AI' & num).Value = TextPRV.Value
Range('AJ' & num).Value = TextPRS.Value
Range('AK' & num).Value = TextFOR.Value
Range('AL' & num).Value = TextCAN.Value
Range('AM' & num).Value = TextCYN.Value
Range('AN' & num).Value = TextSDE.Value
Range('AO' & num).Value = TextSMO.Value
Range('AP' & num).Value = TextTRS.Value
Range('AQ' & num).Value = TextN_Permis_PL.Value
Range('AR' & num).Value = DateSerial(ComboBox21, leMois6, ComboBox23)
Range('AS' & num).Value = statut
Range('AT' & num).Value = situation
Range('AU' & num).Value = permis
Range('AV' & num).Value = fonction
Range('AW' & num).Value = permis_poids_lourds
Unload UsfNouveau_Renseignement
Message édité par: Pélican34, à: 06/06/2006 15:21
Message édité par: Pélican34, à: 06/06/2006 16:00
Si je ne rempli pas tous les combobox du Userform que j'ai créé, le programme buggue.
(Les combobox fonctionnent très bien)
Comment faire pour éviter celà?
Merci de votre aide
Voici le code
Private Sub CmdEnregistrer_Click()
If Me.TextNOM.Value = '' Then Exit Sub
If Me.TextDate.Value = '' Then
MsgBox ('Indiquer la date !')
Exit Sub
Else
MaDate = CDate(TextDate.Value)
End If
If Me.TextPrénom.Value = '' Then
MsgBox ('Indiquer le prénom ?')
Exit Sub
End If
If Me.TextAdresse1.Value = '' Then
MsgBox ('Indiquer l'adresse')
Exit Sub
End If
If Me.TextCodePostal.Value = '' Then
MsgBox ('Indiquer le code postal')
Exit Sub
End If
If Me.TextVille.Value = '' Then
MsgBox ('Indiquer la Ville')
Exit Sub
End If
Dim num
Dim lesMois, leMois, leMois1, leMois2, leMois3, leMois4, leMois5, leMois6
Dim p, q, o, ctrl, s
Dim statut, situation, permis, fonction, permis_poids_lourds
For Each p In UsfNouveau_Renseignement.FrSituation.Controls
If p.Value = True Then situation = Trim(p.Caption)
Next p
For Each q In UsfNouveau_Renseignement.FrPermis.Controls
If q.Value = True Then permis = permis & ' ' & Trim(q.Caption)
Next q
For Each o In UsfNouveau_Renseignement.FrFonction.Controls
If o.Value = True Then fonction = fonction & ' ' & Trim(o.Caption)
Next o
For Each ctrl In UsfNouveau_Renseignement.FrStatut.Controls
If ctrl.Value = True Then statut = statut & ' ' & Trim(ctrl.Caption)
Next ctrl
For Each s In UsfNouveau_Renseignement.FrSpécialités_PL.Controls
If s.Value = True Then permis_poids_lourds = permis_poids_lourds & ' ' & Trim(s.Caption)
Next s
'inscription des données récupérées du formulaire validé dans la feuille excel
'sélection de la ligne sur laquelle écrire (la première vide)
num = Sheets('FeuilPersonnel').Range('A65536').End(xlUp).Row + 1 'on part du bas de la colonne, on cherche
'la première cellule non vide avec end(xlup), on renvoie son N° avec row et on ajoute 1 pour avoir le numéro de la
'ligne d'en dessous
lesMois = Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Sptembre', 'Octobre', 'Novembre', 'Décembre')
leMois = Application.Match(ComboBox4, lesMois, 0)
leMois1 = Application.Match(ComboBox7, lesMois, 0)
leMois2 = Application.Match(ComboBox10, lesMois, 0)
leMois3 = Application.Match(ComboBox13, lesMois, 0)
leMois4 = Application.Match(ComboBox16, lesMois, 0)
leMois5 = Application.Match(ComboBox19, lesMois, 0)
leMois6 = Application.Match(ComboBox22, lesMois, 0)
Sheets('FeuilPersonnel').Activate
Range('A' & num).Value = CDate(TextDate.Value)
Range('B' & num).Value = TextNOM.Value
Range('C' & num).Value = TextPrénom.Value
Range('D' & num).Value = TextAdresse1.Value
Range('E' & num).Value = TextAdresse2.Value
Range('F' & num).Value = TextCodePostal.Value
Range('G' & num).Value = TextVille.Value
Range('H' & num).Value = TextFixe.Value
Range('I' & num).Value = TextPortable.Value
Range('J' & num).Value = TextEmail.Value
Range('K' & num).Value = TextNiveau_scolaire1.Value
Range('L' & num).Value = TextNiveau_scolaire2.Value
Range('M' & num).Value = TextNSécu.Value
Range('N' & num).Value = ComboBoxGS.Value
Range('O' & num).Value = TextRenseignements_complémentaires.Value
Range('P' & num).Value = ComboBoxGrade.Value
Range('Q' & num).Value = DateSerial(ComboBox3, leMois, ComboBox5)
Range('R' & num).Value = DateSerial(ComboBox6, leMois1, ComboBox8)
Range('S' & num).Value = DateSerial(ComboBox9, leMois2, ComboBox11)
Range('T' & num).Value = TextN_AFPS.Value
Range('U' & num).Value = DateSerial(ComboBox12, leMois3, ComboBox14)
Range('V' & num).Value = TextN_CFAPSE.Value
Range('W' & num).Value = DateSerial(ComboBox15, leMois4, ComboBox17)
Range('X' & num).Value = TextN_CFAPSR.Value
Range('Y' & num).Value = DateSerial(ComboBox18, leMois5, ComboBox20)
Range('Z' & num).Value = TextCOD.Value
Range('AA' & num).Value = TextFDF.Value
Range('AB' & num).Value = TextRCH.Value
Range('AC' & num).Value = TextRAD.Value
Range('AD' & num).Value = TextSAV.Value
Range('AE' & num).Value = TextSAL.Value
Range('AF' & num).Value = TextIMP.Value
Range('AG' & num).Value = TextISS.Value
Range('AH' & num).Value = TextEPS.Value
Range('AI' & num).Value = TextPRV.Value
Range('AJ' & num).Value = TextPRS.Value
Range('AK' & num).Value = TextFOR.Value
Range('AL' & num).Value = TextCAN.Value
Range('AM' & num).Value = TextCYN.Value
Range('AN' & num).Value = TextSDE.Value
Range('AO' & num).Value = TextSMO.Value
Range('AP' & num).Value = TextTRS.Value
Range('AQ' & num).Value = TextN_Permis_PL.Value
Range('AR' & num).Value = DateSerial(ComboBox21, leMois6, ComboBox23)
Range('AS' & num).Value = statut
Range('AT' & num).Value = situation
Range('AU' & num).Value = permis
Range('AV' & num).Value = fonction
Range('AW' & num).Value = permis_poids_lourds
Unload UsfNouveau_Renseignement
Message édité par: Pélican34, à: 06/06/2006 15:21
Message édité par: Pélican34, à: 06/06/2006 16:00