XL 2010 "RESOLU" Mise à jour des données Formulaire

Bambi35

XLDnaute Occasionnel
Bonjour à tous
J'ai fait un formulaire pour renseigner un tableau d'inscription, et actuellement je n'arrive pas a trouver la solution des 2 problèmes qui sont liées.
1 ) J'arrive à rentrer les différentes info dans le formulaire et enregistrer les données sur la feuille Excel
mais impossible de mettre à jour les informations d'un personne déjà enregistrée en rappelant son N°
J'ai une Erreur d'exécution
2 ) quand je veux enregistrer la 10 éme personne le ficher ce met en erreur d'exécution
je ne sais pas comment modifier
Merci de votre aide

Bambi35
 

Pièces jointes

  • Judo.xlsm
    39.7 KB · Affichages: 15

youky(BJ)

XLDnaute Barbatruc
Bonjour Bambi,
12 au lieu de 19 car pas de 13 et + (textbox)
Utilise le codename des onglets (voir en projet)
Il faudra renommer les texbox pour les avoir dans l'ordre
Bruno
For I = 1 To 12
Me.Controls("TextBox" & I) = Feuil1.Cells(Ligne, I + 2)
Next I
 

Bambi35

XLDnaute Occasionnel
Bonsoir Youky

Merci pour ton retour
Suite au corrections je peux effectuer les mises à jours sauf pour les OptionButton cela ne fonctionne pas.
Est-t-il possible que lorsque j'enregistre une personne ayant une dizaine 10/11/12 etc /20/ etc les infos de celle enregistre en tant que 1 ou 2 ou 3 etc ne s'affiche pas dans les texbox .

Merci encore
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Une autre approche : Les noms de contrôle du formulaire sont les mêmes que les titres de la BD.
On peut donc déplacer les champs dans la BD sans modifier le code du formulaire.
Gère les contrôles TextBox,ComboBox,Cases options,Case à cocher,Cases à cocher multiples

1028872



VB:
Option Compare Text
Dim f, ligneEnreg
Private Sub UserForm_Initialize()
  Dim a()
  Set f = Sheets("BD")
  Clé = Application.Transpose(f.Range("A2:A" & f.[a65000].End(xlUp).Row).Value)
  Call Tri(Clé, LBound(Clé), UBound(Clé))
  Me.NomCherche.List = Clé
  ligneEnreg = f.[a65000].End(xlUp).Row + 1
  Me.NomCherche.SetFocus
End Sub

Private Sub NomCherche_click()
  ligneEnreg = Sheets("BD").[A:A].Find(NomCherche, LookIn:=xlValues).Row
  For Each c In Me.Controls
         nom_control = c.Name
         If nom_control <> "NomCherche" Then
           col = Application.Match(nom_control, [titre], 0)
           Select Case TypeName(c)
           Case "TextBox"
             Me(nom_control) = f.Cells(ligneEnreg, col)
           Case "Frame"
             For Each opt In c.Controls
              If f.Cells(ligneEnreg, col) = opt.Caption Then opt.Value = True
             Next opt
           Case "ListBox"
             temp = f.Cells(ligneEnreg, col)
             a = Split(temp, ";")
             For j = 0 To Me(nom_control).ListCount - 1: Me(nom_control).Selected(j) = False: Next j
             If UBound(a) >= 0 Then
               For j = 0 To Me(nom_control).ListCount - 1
                If Not IsError(Application.Match(Me(nom_control).List(j), a, 0)) Then
                   Me(nom_control).Selected(j) = True
                Else
                   Me(nom_control).Selected(j) = False
                End If
               Next j
             End If
           End Select
         End If
  Next c
  Me.NomPrenom.SetFocus
End Sub

Private Sub bt_valider_Click()
  If Me.NomPrenom = "" Or ligneEnreg = 0 Then Exit Sub
  If MsgBox("Etes-vous certain de vouloir modifier ce contact ?", vbYesNo, "Demande de confirmation") = vbYes And ligneEnreg > 1 Then
        For Each c In Me.Controls
          nom_control = c.Name
          If nom_control <> "NomCherche" Then
            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(ligneEnreg, col) = tmp
              Case "Frame"
                For Each opt In c.Controls
                  If opt.Value = True Then f.Cells(ligneEnreg, col) = opt.Caption
                Next opt
              Case "ListBox"
                For i = 0 To Me(nom_control).ListCount - 1
                  If Me(nom_control).Selected(i) = True Then
                    temp = temp & Me(nom_control).List(i) & ";"
                  End If
                Next i
                f.Cells(ligneEnreg, col) = temp
            End Select
         End If
      Next c
      raz
      UserForm_Initialize
      ligneEnreg = f.[a65000].End(xlUp).Row + 1
  End If
End Sub

Private Sub B_création_Click()
raz
ligneEnreg = f.[a65000].End(xlUp).Row + 1
Me.NomPrenom.SetFocus
End Sub

Sub raz()
  Dim c As Control
  For Each c In Me.Controls
    Select Case TypeName(c)
       Case "TextBox"
          c.Value = ""
       Case "CheckBox"
          c.Value = False
       Case "ComboBox"
          c.ListIndex = -1
       Case "Frame"
          For Each b In c.Controls
            If TypeName(b) = "OptionButton" Then b.Value = False
          Next b
       Case "ListBox"
          nom_control = c.Name
          For j = 0 To Me(nom_control).ListCount - 1: Me(nom_control).Selected(j) = False: Next j
     End Select
   Next c
End Sub

Private Sub B_suivant_Click()
If Me.NomCherche.ListIndex < Me.NomCherche.ListCount - 1 Then
   Me.NomCherche.ListIndex = Me.NomCherche.ListIndex + 1
End If
End Sub

Private Sub b_précédent_Click()
If Me.NomCherche.ListIndex > 0 Then
   Me.NomCherche.ListIndex = Me.NomCherche.ListIndex - 1
End If
End Sub



Boisgontier
 

Pièces jointes

  • Copie de FormGeneralBase.xls
    86 KB · Affichages: 13
Dernière édition:

Bambi35

XLDnaute Occasionnel
Bonjour BOISGONTIER

Je suis arrivé à modifier le formulaire mais
Actuellement quand je supprime les personnes de la liste pour commencer à zéro , dès la premiere inscription j'ai une erreur
1028957

et serait il possible de connaitre la syntaxe pour pouvoir supprimer une personne inscrite

Cordialement

Bambi35
Merci encore de ton aide
 

Bambi35

XLDnaute Occasionnel
Bonjour Youky
Merci pour ton retour "l'événements de Notre Dame est bien triste"
J'ai constaté que je ne pouvais plus renseigner la ComboBox1 suite à la mise à jour et je n'arrive pas à corriger ce problème.
Concernant la mise à jour nickel , mais j'ai essayé de ne pas faire apparaitre le Sexe ainsi que la Civilite si ils n'étaient pas renseigne mais impossible . Le Sexe et la Civilité n'ont pas de relation, la Civilité concerne les responsables de l'enfant
Aurai-tu la solution
Merci Encore

B@mbi35
 

Pièces jointes

  • Judo (1) (2).xlsm
    26.8 KB · Affichages: 3

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

Vous pouvez ajouter des champs dans la BD.
Dans le formulaire, les contrôles ajoutés doivent être les titres de la BD.

Boisgontier
 

Pièces jointes

  • FormGeneralBase2.xls
    94 KB · Affichages: 14
Dernière édition:

Bambi35

XLDnaute Occasionnel
Bonjour Boisgontier
Merci mais quand je ne coche pas les Cases options un problème apparait
Les Infos de Nomprénom se retrouvent aussi dans Certificat, Image et Facture et les infos de la section se retrouve dans Qs Sport et Civilité
Pour la question de supprimer super
Merci de ton aide
B@mbi35
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 971
Membres
101 852
dernier inscrit
dthi16088