Problème de Remplissage des comboBox

  • Initiateur de la discussion Initiateur de la discussion Pélican34
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pélican34

XLDnaute Nouveau
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
 
De même, le code suivant me renvoie l'erreur 381 index non définit
Comment faire?

Private Sub UserForm_Initialize()
Dim Plage As Range

With Worksheets('FeuilVéhicules')
TextDate.Value = Format(Now(), 'dd/mmm/yyyy') 'met sous format français la date du jour dans le textbox date.
Set véhicule = .Range('A2')
Set Plage = .Range(véhicule, .Range('A65536').End(xlUp))
Set tableau = Plage.Resize(, 7)
End With
ComboBoxVéhicule.List = Plage.Value
End Sub


Option Explicit

Dim véhicule As Range, tableau As Range



Private Sub ComboBoxVéhicule_Change()
Dim Lgn&
Lgn = ComboBoxVéhicule.ListIndex + 1

With tableau
TextDate.Value = .Cells(Lgn, 2)
Définition.Text = .Cells(Lgn, 3)

NbrePersonne.Value = .Cells(Lgn, 4)
Acquisition.Value = .Cells(Lgn, 5)
CT.Value = .Cells(Lgn, 6)
Immatriculation.Value = .Cells(Lgn, 7)


End With
End Sub



Private Sub CommandButton2_Click()

Dim Lgn&

Sheets('FeuilVéhicules').Select
Range('A2').Select
Unload Me

Lgn = ComboBoxVéhicule.ListIndex + 1
If Lgn = 0 Then Exit Sub

With tableau
.Cells(Lgn, 2) = TextDate
.Cells(Lgn, 3) = Définition
.Cells(Lgn, 4) = NbrePersonne
.Cells(Lgn, 5) = Acquisition
.Cells(Lgn, 6) = CT
.Cells(Lgn, 7) = Immatriculation

End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
2
Affichages
371
Réponses
3
Affichages
216
Réponses
4
Affichages
380
Réponses
3
Affichages
569
Réponses
6
Affichages
522
Retour