formulaire de saisie, combobox fonctionne pas

jardibot

XLDnaute Junior
Bonjour,

Dans mon formulaire de saisie (il y a 33 textbox, des labels, un combobox, deux frames avec des optionbutton). Je n'ai pas renommé les textbox ni combobox). J'ai un bouton 'Modifier', et "Ajouter contact" et Quitter.


Mon 'combobox1' (le seul que j'ai), ne fonctionne pas.

Pourriez-vous m'aidez à trouver l'erreur?

De plus, lors de la saisie des optionbutton, il y a une erreur aussi… que je ne trouve pas. Merci de m'aidez

Code:
Option Explicit
Dim Ws As Worksheet
Private Sub UserForm1_Initialize()
Dim J As Long
Dim I As Integer

  Set Ws = Sheets("FICHE_INSCRIPTION") '
  With Me.ComboBox1
    For J = 2 To Ws.Range("C" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("C" & J)
    Next J
  End With
  For I = 1 To 33
    Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox
Next I
End Sub
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
   If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For I = 1 To 33
    Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
  Next I
 End Sub
Private Sub BT_MODIFIER_Click()
Dim Ligne As Long
Dim I As Integer
If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then

  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For I = 1 To 33
    If Me.Controls("TextBox" & I).Visible = True Then
      Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
    End If
  Next I
    End If
End Sub
Private Sub BT_QUITTER_Click()
Unload UserForm1
End Sub

Private Sub BT_AJOUTER_CONTACT_Click()
Dim L As Integer, lieu_inscription As String, civilite As String

If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau contact ?", vbYesNo, "Demande de confirmation") = vbYes Then
L = Sheets("FICHE_INSCRIPTION").Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE

'Choix lieu et civilite
For Each bouton_lieu_inscription In Frame_lieu_inscription.Controls
    If bouton_lieu_inscription.Value Then
      lieu_inscription = bouton_lieu_inscription.Caption
    End If
Next
For Each bouton_civilite In Frame_civilite.Controls
    If bouton_civilite.Value Then
      civilite = bouton_civilite.Caption
    End If
Next


Range("A" & L).Value = lieu_inscription
Range("B" & L).Value = civilite
Range("C" & L).Value = ComboBox1
Range("D" & L).Value = TextBox1
Range("E" & L).Value = TextBox2
Range("F" & L).Value = TextBox3
Range("G" & L).Value = TextBox4
Range("H" & L).Value = TextBox5
Range("I" & L).Value = TextBox6
Range("J" & L).Value = TextBox7
Range("K" & L).Value = TextBox8
Range("L" & L).Value = TextBox9
Range("M" & L).Value = TextBox10
Range("N" & L).Value = TextBox11
Range("O" & L).Value = TextBox12
Range("P" & L).Value = TextBox13
Range("Q" & L).Value = TextBox14
Range("R" & L).Value = TextBox15
Range("S" & L).Value = TextBox16
Range("T" & L).Value = TextBox17
Range("U" & L).Value = TextBox18
Range("V" & L).Value = TextBox19
Range("W" & L).Value = TextBox20
Range("X" & L).Value = TextBox21
Range("Y" & L).Value = TextBox22
Range("Z" & L).Value = TextBox23
Range("AA" & L).Value = TextBox24
Range("AB" & L).Value = TextBox25
Range("AC" & L).Value = TextBox26
Range("AD" & L).Value = TextBox27
Range("AF" & L).Value = TextBox28
'Range("AE" & L).Value = TextBox_Description_Traitement
'Range("AG" & L).Value = TextBox_Vaccinations
Range("AH" & L).Value = TextBox29
'Range("AI" & L).Value = TextBox_Allergies
Range("AJ" & L).Value = TextBox30
'Range("AK" & L).Value = TextBox_Regime_Alimentaire
Range("AL" & L).Value = TextBox31
Range("AM" & L).Value = TextBox32
'Range("AN" & L).Value = TextBox_Droit_Image
'Range("AO" & L).Value = TextBox_Droit_Depart
Range("AP" & L).Value = TextBox33
End If

MsgBox ("Produit inséré dans fichier sélectionné") 'Vous informe que le présent contact est insérer dans votre tableau Excel.

Unload Me 'Ferme le formulaire
UserForm1.Show 'Ouvre le formulaire

'Après insertion, on remet les valeurs initiales
OptionButton1.Value = True

End Sub
 

Pièces jointes

  • SUPPORT_003.xlsm
    35 KB · Affichages: 105

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : formulaire de saisie, combobox fonctionne pas

Bonsoir,

En pj, le début d'un formulaire général:Les noms des controless correspondent aux titres de la BD

Code:
Private Sub PRENOM_enfant_click()
  For i = 2 To f.[B65000].End(xlUp).Row
     If f.Cells(i, "a") = Me.Nom_enfant And f.Cells(i, "b") = Me.Prenom_enfant Then
       ligne = i
       For Each c In Me.Controls
        nom_control = c.Name
        col = Application.Match(nom_control, [titre], 0)
        Select Case TypeName(c)
          Case "TextBox"
             Me(nom_control) = f.Cells(ligne, col)
          Case "CheckBox"
            
          Case "Frame"
            For Each opt In c.Controls
             If f.Cells(ligne, col) = opt.Caption Then opt.Value = True
            Next opt
        End Select
      Next c
    End If
  Next i
  'Me.Combobox_NOM_FAMILLE.Locked = True
End Sub

Private Sub BT_MODIFIER_Click()
  If MsgBox("Etes-vous certain de vouloir modifier ce contact ?", vbYesNo, "Demande de confirmation") = vbYes And ligne > 1 Then
        For Each c In Me.Controls
        nom_control = c.Name
        col = Application.Match(nom_control, [titre], 0)
        Select Case TypeName(c)
          Case "TextBox", "ComboBox"
             tmp = Me(nom_control)
             If IsNumeric(tmp) Then tmp = Val(tmp)
             If IsDate(tmp) Then tmp = CDate(tmp)
             f.Cells(ligne, col) = tmp
          Case "CheckBox"

          Case "Frame"
            For Each opt In c.Controls
             If opt.Value = True Then f.Cells(ligne, col) = opt.Caption
            Next opt
        End Select
      Next c
     Unload Me 'Ferme le formulaire
  End If
End Sub

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormGeneral.xls

JB
 

Pièces jointes

  • FormGeneral.xls
    50.5 KB · Affichages: 62
Dernière édition:

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Mr Boisgontier

C'est vraiment génial. Merci!!! Les possibilités sont énormes.

1- Dans mon code pour remettre les textbox à zéro et les OptionButton, j'ai ajouté ceci: ça fonctionne bien, mais je souhaiterais que les OptionButton n'affiche aucune valeur, (ne s'allume pas). Je ne sais que leur donner la valeur de vrai ou faux mais aucune je ne sais pas comment faire? merci

2- Est-il possible de faire un filtre via des optionButton? ou une référence dans votre site qui en parlerait.


Code:
 For Each c In Me.Controls
       nom_control = c.Name
            col = Application.Match(nom_control, [titre], 0)
        Select Case TypeName(c)
          Case "TextBox"
             Me(nom_control).Value = ""
          'Case "CheckBox"
            
          Case "Frame"
            For Each opt In c.Controls
            opt.Value = True
            Next opt
        End Select
      Next c
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : formulaire de saisie, combobox fonctionne pas

Bonjour,

1- RAZ de tous les champs.

Code:
Private Sub B_raz_Click()
  Dim c As Control
  For Each c In Me.Controls
    Select Case TypeName(c)
       Case "TextBox"
          c.Value = ""
       Case "CheckBox"
          c.Value = False
       Case "ListBox", "ComboBox"
          c.ListIndex = -1
       Case "Frame"
          For Each b In c.Controls
            If TypeName(b) = "OptionButton" Then b.Value = False
          Next b
     End Select
   Next c
End Sub

2- Est-il possible de faire un filtre via des optionButton?

Je ne comprends pas
 

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Bonjour Mr Boisgontier

Voilà j'ai introduit le code RAZ de tous les champs dans le formulaire et une variable semble bloquée.. il s'agit de "Dim c As Control " En faite, le RAZ enlève tout les champs je pense, alors que c'est lors d'une seconde recherche via le combobox (Nom_Enfant) qu'il faudrait que tout les champs soient à zéro sauf le combobox (Nom_Enfant).

Je vous remercie.

Code:
Private Sub Nom_Enfant_click()
Dim c As Control
  Me.Prenom_Enfant.Clear
 For Each c In Me.Controls
    Select Case TypeName(c)
       Case "TextBox"
          c.Value = ""
       Case "CheckBox"
          c.Value = False
       Case "ListBox", "ComboBox"
          c.ListIndex = -1
       Case "Frame"
          For Each b In c.Controls
            If TypeName(b) = "OptionButton" Then b.Value = False
          Next b
     End Select
   Next c
  a = f.Range("A2:B" & f.[B65000].End(xlUp).Row).Value
  Dim b(): ReDim b(1 To UBound(a))
  j = 0
  For i = 1 To UBound(a)
     If a(i, 1) = Me.Nom_Enfant Then j = j + 1: b(j) = a(i, 2)
  Next i
  ReDim Preserve b(1 To j)
  Call Tri(b, LBound(b), UBound(b))
  Me.Prenom_Enfant.List = b
End Sub
 

Pièces jointes

  • SUPPORT_V1O.1MAC_AVANCEE .xlsm
    54.4 KB · Affichages: 39
  • SUPPORT_V1O.1MAC_AVANCEE .xlsm
    54.4 KB · Affichages: 49
  • SUPPORT_V1O.1MAC_AVANCEE .xlsm
    54.4 KB · Affichages: 51

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : formulaire de saisie, combobox fonctionne pas

Bonjour,

Voir exemple d'utilsation de la fonction RAZ:

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormCascade2nivPcMac.xls
http://boisgontierjacques.free.fr/fichiers/Formulaire/FormGeneral.xls

Code:
Private Sub Nom_Enfant_click()
  raz2
  a = f.Range("A2:B" & f.[B65000].End(xlUp).Row).Value
  Dim b(): ReDim b(1 To UBound(a))
  j = 0

Code:
Sub raz2()
  Dim c As Control
  For Each c In Me.Controls
   If c.Name <> "Nom_Enfant" Then
    Select Case TypeName(c)
      Case "TextBox"
        c.Value = ""
      Case "CheckBox"
        c.Value = False
      Case "ListBox", "ComboBox"
        c.ListIndex = -1
      Case "Frame"
        For Each K In c.Controls
          If TypeName(K) = "OptionButton" Then K.Value = False
         Next K
      End Select
    End If
 Next c
End Sub

JB
 

Pièces jointes

  • SUPPORT_V1O.1MAC_AVANCEE .xlsm
    46.8 KB · Affichages: 47
  • SUPPORT_V1O.1MAC_AVANCEE .xlsm
    46.8 KB · Affichages: 46
  • SUPPORT_V1O.1MAC_AVANCEE .xlsm
    46.8 KB · Affichages: 42
Dernière édition:

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Merci pour votre réponse, tout fonctionne vraiment bien.

Je voulais votre avis, pour me dirigez vers un exemple dans votre site qui pourrait répondre à ma question ou m'aider

Pour compléter mon formulaire,

Je souhaite faire une recherche en fonction de multiples critères allant de 1 à 7 (peut-être plus) en sachant qu'on peut choisir un seul critère et faire rechercher ou en choisir deux et faire rechercher ou choisir 7 critères et faire rechercher. Ainsi une liste pourra apparaître de toutes les personnes qui répondent à ses critères. Si l'utilisateur veut plus de renseignements sur une de ces personnes là, un click sur la ligne renvoi sur la fiche complète du formulaire.

Ex: 1- Via une "combobox_Garçon" , je cherche à connaître tous les "Garçons", en cliquant sur Ok une liste apparaît. (1 seul critère)
Ex: 2- Via de multiples combobox, je cherche à connaître tous les "Garçons", qui sont "Allergiques", qui ne sont pas "Vaccinés", qui suivent un "Régime Alimentaire", je renseigne les combobox avec ces informations, puis en cliquant sur Ok une liste de quinze personnes apparaîent (car ils répondent à ces 4 critères).Je suis alors intéressé pour avoir plus de renseignements sur Mr Durand ( qui répond à ces critères garçon, allergiques, pas de vaccin, avec régime alimentaire), en cliquant sur sa ligne je suis renvoyé sur sa fiche complète du mon formulaire.

Voilà merci beaucoup. C'est pour m'aiguiller pour trouver la meilleure option dans votre site.
 

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Bonsoir,

Il s'agirait je pense d'un filtre élaboré multi critères sans cascade. De façon à faire un filtre sans qu'il y est d'ordre et sans forcément utiliser toutes les combobox disponible pour ce filtre.

Dans l'userform2, j'ai listé ces filtres et renseigner les combobox que j'utiliserais pour ces recherches. Ainsi je pourrais faire un filtre avec soit le combobox "Allergies" et connaître toutes les personnes allergiques, soit faire un filtre avec combobox "Allergies" et "Vaccin" et connaître toutes les personnes qui sont à la fois allergiques et vaccinés ou avec toutes les combobox.

Merci
 

Pièces jointes

  • SUPPORT_V1O.2MAC_AVANCEE .xlsm
    60.8 KB · Affichages: 40
  • SUPPORT_V1O.2MAC_AVANCEE .xlsm
    60.8 KB · Affichages: 51
  • SUPPORT_V1O.2MAC_AVANCEE .xlsm
    60.8 KB · Affichages: 52

BOISGONTIER

XLDnaute Barbatruc
Repose en paix

Pièces jointes

  • FormCascadeOrdreQQ2zz.xls
    91 KB · Affichages: 53
Dernière édition:

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Monsieur,

Oui ce filtre est très intéressant, merci pour cet exemple. Y aurait-il une adaptation sur les ordinateurs mac?

Est-il possible que ce trie ne s'effectue pas sur le tableur général(BD) mais sur une sur une Listeview ou une autre feuille Excel. Et qu' au lieu d'avoir le filtre sur toutes les colonnes du TITRE , que l'on ai uniquement quelques colonnes comme :

- Nom -Prenom - Classe - N°rue - Code_Postal - Commune - N°Tel_portable - N°Tel_Domicile + les colonnes du ou des filtres saisies

Par exemple, en filtrant le filtre "civilite" (garçon) et le filtre "vaccin" (oui), on obtient les données des colonnes fixes allant de Nom à N°tel_Domicile et que s'ajoute la colonne civilite + la colonne vaccin tout en les triant par ordre Alphabétique.

Je me permet de vous poser beaucoup de questions, je ne voudrais pas vous dérangez, hésitez pas à me le dire. Merci à vous.
 

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Ah oui c'est encore mieux!!! avec cette listbox!!

Est-il possible la même chose pour un ordinateur Mac aussi?

Dans cette listbox, les filtres sont parfaits, mais est-il possible que d'autres informations viennent complétés cette listbox.

Des informations qui ne sont pas des filtres.On aurait juste des labels supplémentaires concernant le Prénom, la classe, le N°rue, le N°code_postal, la commune, le N°tel_portable,le N°tel_domicile et le mail.

Après un ou plusieurs filtres, la listbox donnerait ainsi ces informations en plus.

Merci
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : formulaire de saisie, combobox fonctionne pas

Le même en Version PC + MAC ( combobox + libellés)
Un bouton permet de récupérer le résultat du filtre dans une feuille.

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormCascadeOrdreQQ3ListBoxMac.xls

filtre.jpg

JB
 

Pièces jointes

  • FormCascadeOrdreQQ3ListBoxMac.xls
    103.5 KB · Affichages: 44
  • FormCascadeOrdreQQ3ListBoxMac2.xls
    111.5 KB · Affichages: 48
  • FormCascadeOrdreQQ3ListBoxMac2.xls
    111.5 KB · Affichages: 48
  • FormCascadeOrdreQQ3ListBoxMac2.xls
    111.5 KB · Affichages: 50
  • filtre.jpg
    filtre.jpg
    30.7 KB · Affichages: 96
  • filtre.jpg
    filtre.jpg
    30.7 KB · Affichages: 105
Dernière édition:

jardibot

XLDnaute Junior
Re : formulaire de saisie, combobox fonctionne pas

Bonjour

J'ai pu tester votre dernière version ( PC + MAC ( combobox + libellés + bouton permet de récupérer le résultat du filtre dans une feuille)

Sur les Mac, ça Beug. La page excel s'ouvre, l'userform du filtre aussi mais au click d'un filtre , excel se ferme tout seul. Peut-être la compatibilité de la version? version 2013 ici.


AUTrement, c'est vraiment très bien et cette page résultat c'est le top!!

1- Est-il possible de trier cette listbox par Nom puis prenom avant de commencer un filtre?

2- J'aurais aimé ajouter moi-même des labels en plus et intervertir des labels et des comboboxs + labels, Quelles sont les critères que je dois changer dans le code? Si on déplace un label et son combobox comment faire dans votre Code pour que les données de la listbox se déplacent aussi...? C'est pour que je puisse les modifier sans vous le demander à chaque fois.(fichier en pièce jointe)

3- Est-il possible après la sélection d'un ou plusieurs filtre que le trie se fasse uniquement dans la listbox mais pas dans la feuille "BD" ? (que la feuille BD ne bouge pas)

Merci vraiment
 

Pièces jointes

  • FormCascadeOrdreQQ3ListBoxMac -exemple.xlsm
    66.4 KB · Affichages: 67
  • FormCascadeOrdreQQ3ListBoxMac -exemple.xlsm
    66.4 KB · Affichages: 59
  • FormCascadeOrdreQQ3ListBoxMac -exemple.xlsm
    66.4 KB · Affichages: 46

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : formulaire de saisie, combobox fonctionne pas

-Si la BD est déjà triée, elle apparaîtra triée dans le Listbox.
-Si la BD n'est pas triée, on peut la trier ou trier le Listbox

-Le lien entre les colonnes critères de la BD et le formulaire est fait par les labels associés aux comboBoxs et les titres de la BD:
Label1 contient Nom_Enfant, Label2 contient Civilité, Label3 contient Traitement_medical, Label4 contient Vaccin
Visu1 contient Prenom_Enfant, Visu2 contient Classe, Visu3 contient N°Rue1, Visu4 contient Commune1

-L'ordre d'apparition des champs dans la LISTBOX est donné dans la propriété TAG des labels qui définissent les noms des champs (Label1,Label2,..... Visu1,Visu2,...)
Label1 contient 1,Visu1 contient 2,Label2 contient 3, Visu2 contient 4, Visu3 contient 5



- Dans le code Initialize
nCombobox = 7 'adapter
nVisu = 8 'adapter

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormCascadeOrdreQQ3ListBoxMac2.xls


JB
 

Pièces jointes

  • FormCascadeOrdreQQ3ListBoxMac -exemple.xlsm
    142.2 KB · Affichages: 56
  • FormCascadeOrdreQQ3ListBoxMac -exemple.xlsm
    142.2 KB · Affichages: 71
  • FormCascadeOrdreQQ3ListBoxMac -exemple.xlsm
    142.2 KB · Affichages: 74
Dernière édition:

Discussions similaires

Réponses
4
Affichages
418
Réponses
4
Affichages
382

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette