Formulaire de saisie/modification et tableau structuré

Bonjour à tous

j'essaie de créer un formulaire simple pour ajouter ou modifier des données dans un tableau structuré mais ce que j'ai écrit ne fonctionne pas , quelqu'un peut m'aider?
(j'espère bien avoir anonymé mon fichier)
Merci d'avance, j'ai essayé plein de chose mais rien de ce que j'ai fait ne fonctionne. le code n'a été écrit que pour 3 colonnes du tableau comme ce sont des essais

Bonjour,

ci-joint fichier corrigé

NB: Vous ne pouvez pas utiliser l'instruction RowSource pour un tableau qui est modifié dans l'exécution de votre formulaire. Ceci provoque le plantage d'Excel.

Merci beaucoup, même si je ne comprends pas très bien

maintenant je dois passer à l'étape suivante: rappeler les données dans le formulaire , les modifier et réécrire sur la même ligne

le bouton modifier et le code fonctionne en fait je n'avais pas vérifié, tellement persuadée que j'avais fait que des bêtises....

autre étape: je voudrais insérer une commande pour que bouton ajouter ne soit accessible que si on renseigne la combobox "Nom" et la textbox "date de naissance"

à quel niveau je dois mettre cette ligne de code ?


if cboNom <> 0 and textboxDDN <> 0 then btnSAISIE.enabled=true else btnSAISIE.enabled=false end if 

et j'aimerai aussi pouvoir charger le formulaire des données enregistrées quand je clique sur nom

Bonjour,

ci-jointe nouvelle version qui devrait répondre à vos attentes :

NB: Que n'avez-vous pas compris ? Vous utilisiez à tort l'instruction rowsource pour votre combobox : cbnom.

waouhhhh tellement simple !

je suis une néophyte et j'apprends toute seule à mes heures perdues

merci beaucoup

par contre quand j'ai copié le code dans le bon fichier (celui non anomyné) j'ai eu un message d'erreur : erreur '1004" erreur définie par l'application ou par l'objet

le débogage m'indique que l'erreur est sur cette ligne dans la sub cbonom_click:

Set LigneExistante = tbl.ListColumns("Nom Prénom").DataBodyRange.Find(What:=Nom, LookIn:=xlValues)

pourquoi ? et comment faire pour corriger l'erreur?

encore merci pour ce temps passé un dimanche à m'aider

Avez-vous bien recopié le début du code ?

Option Explicit

Dim tbl As ListObject
Dim i_tbl As Integer
Dim date_naissance As New Textbox_Date

Private Sub UserForm_Initialize()

    ' Définir le tableau structuré
    Set tbl = [Tableaubase].ListObject

    ' remplir la combobox cboNom
    Me.cboNom.List = [Tableaubase].ListObject.ListColumns("Nom Prénom").DataBodyRange.Value

    ' désactiver le bouton ajouter
    btnSAISIE.Enabled = False

    ' désactiver le textbox date de naissance
    TextBoxDDN.Enabled = False

    ' initialiser l'indice de ligne du tableau
    i_tbl = 0

End Sub

et avez-vous bien supprimé le contenu de la propriété rowsource de la combobox : cbxnom

oui j'ai copié collé le code que tu avais envoyé à la place de l'autre

j'ai aussi la meme erreur qui apparait dans le fichier que tu m'as envoyé, cela a marché lune fois ou deux puis l'erreur est apparue

Essayer cette modification

Private Sub cboNom_Click()
    Dim Nom As String

    ' définir la variable
    Nom = Me.cboNom.Value

    ' affiche la ligne correspondant au tableau
    i_tbl = Application.Match(Nom, tbl.ListColumns("Nom Prénom").DataBodyRange, 0)
    With tbl
        Me.cboNom.Value = .ListColumns("Nom Prénom").DataBodyRange(i_tbl)
        Me.TextBoxDDN.Value = .ListColumns("Date de naissance").DataBodyRange(i_tbl)
        Me.cboSexe.Value = .ListColumns("sexe").DataBodyRange(i_tbl)
        ' Continuez pour les autres colonnes...
    End With

End Sub

A noter que vous avez une version d'office assez ancienne : Office 2010 et que cela pourrait être la source du problème car chez moi, je n'ai pas cette erreur.

je vais essayer. L'ordinateur, surlequel je travaille, a office plus 2021 et c'est celui ci que cela beugue et non sur mon veil ordinateur personnel qui a office 2010.

Alors cela ne beugue plus mais mon bouton AJOUTER reste en mode false et de fait je ne peux plus ajouter de nouvelles lignes

Dès que vous avez saisi un nom dans cbnom (c'est à dire non sélectionné via un clic sur la combobox) et rempli une date de naissance, le bouton AJOUTER est activé.

bonjour, j'ai bien compris le principe (remplir la cbonom et la textboxDDN pour que le bouton ajouter soit accessible) mais cela ne fonctionne pas, je ne peux pas ajouter de nouveaux élèves et cela écrase une ligne du tableau existante :(

Bonjour,

Chez moi, ça fonctionne. S'agit-il du fichier réel ou du fichier anonymisé que je vous ai renvoyé ?

sur le fichier réel

et sur le fichier que vous m'aviez envoyé , je viens de retester

Bonjour,

Le Bouton AJOUTER ne s'activera qu'une fois saisis le nom et la date de naissance, en cliquant sur une autre zone du formulaire. Il suffit donc par exemple de choisir le sexe.

capture d ecran 2024 08 20 183033 capture d ecran 2024 08 20 183823

ok ça marche, j'ai du faire une erreur en transcrivant le code , encore merci pour toute ton aide
je vais maintenant finir de remplir les autres textbox et combobox

je vais aussi regarder très attentivement ce que tu as écrit pour essayer de me l'approprier

un grand merci pour ton aide , jamais je n'aurai réussi cela seule

bonjour,

A+

Rechercher des sujets similaires à "formulaire saisie modification tableau structure"