XL 2021 formulaire de saisie

  • Initiateur de la discussion Initiateur de la discussion aquila70
  • 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 !

aquila70

XLDnaute Nouveau
Supporter XLD
Bonjour , nouveau sur Excel , j'essaye de remplir mon formulaire alimentaire, je voudrais répertorier tous les aliments.

J'ai pourtant bien suivi une vidéo, mais à chaque fois, il me double ou triple ma ligne à chaque enregistrement ???.

Si possible une petite correction serais là bien venue et avec un petit détail de mon erreur.

Ps: pour exemple : sur le formulaire, j'ai placé trois lignes en jaune, genre de rentrée que je place.
 

Pièces jointes

Solution
@aquila70

oit ou tu marques (ici liste de tous tes articles) sur la droite du tableau
et je n'ai que toujours les " articles que tu as encodés. Même quand je fais F9 pas de changement. Je fais peut-être ???? .

Je te propose cette nouvelle version plus simple tu ne t’occupes de rien excel fait tout ou presque..... 🤣

Précision : Attention le bouton RAZ BDD efface la TOTALITE de la BDD sans avertissement

Merci de ton retour
Bonjour Aquila,
Pour ma part je ne vois pas l’intérêt de renseigner des cellules puis les copier dans le tableau pourquoi ne pas écrire directement dans le tableau ?
Mais bon faites ces changements :
  • Donnez le nom de code (sys_Data) à la feuille base de donnée (Il vaut mieux travailler avec le nom de code des feuilles, leurs noms peut changer plus facilement, de plus cela vous évite de déclarer des variable supplémentaires dans vote code)
000084.png

  • Donnez le nom de code (sys_DataForm) à la feuille Formulaire
  • Changez le nom du tableau de destination en vt_Data (Donner des noms représentatif pour vos tableau, pour ma part j'utilise le prefixe "vt_" mais vous pouvez donnez le prefixe de votrechoix)
  • Sélectionnez la plage entière où vous entrez vos données et attribuez-lui le nom sysvr_Data (Attribuer des champs nommés facilite la comprhéension du code ici aussi j'utilise un prefixe "sysvr_" pour mes champs nommés mais vous pouvez lui donner le prefixe qui vous convient)
  • Changer le code de la macro par celle-ci
VB:
Sub Macro10()
    ' // Ajoute une ligne au tableau à la position 1
    Dim lstRow As Excel.ListRow
    Set lstRow = sys_Data.Range("vt_Data").ListObject.ListRows.Add(Position:=1)
    sys_DataForm.Range("sysvr_Data").Copy

    With lstRow.Range(1).Cells.Resize(1, 8)
        .PasteSpecial Paste:=xlPasteValues
    End With

    Application.CutCopyMode = False
 
    MsgBox ("donnée enregistrée")
End Sub

Bonne programmation,
 

Pièces jointes

  • 000084.png
    000084.png
    16.5 KB · Affichages: 7
  • 000084.png
    000084.png
    16.5 KB · Affichages: 4
Dernière édition:
Bonjour, merci de ta réponse, oui effectivement, je pourrais faire directement comme tu le dis, mais me voilà à près de 75 ans , et je voudrais passer mon temps à ce genre de chose, pas facile vu que je commence Excel.
Date ?, oups oui : 20-04-027 : je vais essayer de faire un bouton de recherche qui devra me donner le - nom/date de fin/quantité restante/et si j'en ai plusieurs : exemple : si je demande les " pâtes" je devrais avoir la liste des pâtes./quantités/date de fin/solde restant.
 
Bonjour Aquila,
Pour ma part je ne vois pas l’intérêt de renseigner des cellules puis les copier dans le tableau pourquoi ne pas écrire directement dans le tableau ?
Mais bon faites ces changements :
  • Donnez le nom de code (sys_Data) à la feuille base de donnée (Il vaut mieux travailler avec le nom de code des feuilles, leurs noms peut changer plus facilement, de plus cela vous évite de déclarer des variable supplémentaires dans vote code)
Regarde la pièce jointe 1214440
  • Donnez le nom de code (sys_DataForm) à la feuille Formulaire
  • Changez le nom du tableau de destination en vt_Data (Donner des noms représentatif pour vos tableau, pour ma part j'utilise le prefixe "vt_" mais vous pouvez donnez le prefixe de votrechoix)
  • Sélectionnez la plage entière où vous entrez vos données et attribuez-lui le nom sysvr_Data (Attribuer des champs nommés facilite la comprhéension du code ici aussi j'utilise un prefixe "sysvr_" pour mes champs nommés mais vous pouvez lui donner le prefixe qui vous convient)
  • Changer le code de la macro par celle-ci
VB:
Sub Macro10()
    ' // Ajoute une ligne au tableau à la position 1
    Dim lstRow As Excel.ListRow
    Set lstRow = sys_Data.Range("vt_Data").ListObject.ListRows.Add(Position:=1)
    sys_DataForm.Range("sysvr_Data").Copy

    With lstRow.Range(1).Cells.Resize(1, 8)
        .PasteSpecial Paste:=xlPasteValues
    End With

    Application.CutCopyMode = False
 
    MsgBox ("donnée enregistrée")
End Sub

Bonne programmation,
Bonjour, merci de ta réponse, oui effectivement, je pourrais faire directement comme tu le dis, mais me voilà à près de 75 ans , et je voudrais passer mon temps à ce genre de chose, pas facile vu que je commence Excel.
 
@aquila70

e vais essayer de faire un bouton de recherche qui devra me donner le - nom/date de fin/quantité restante/et si j'en ai plusieurs : exemple : si je demande les " pâtes" je devrais avoir la liste des pâtes./quantités/date de fin/solde restant.

Si tu expliques un peu mieux je peux regarder et avec un fichier explicatif c'est encore mieux.

Pour info j'ai commenter le code VBA pour que tu le comprennes ..... 😉
 
Bonjour Aquila,
Pour ma part je ne vois pas l’intérêt de renseigner des cellules puis les copier dans le tableau pourquoi ne pas écrire directement dans le tableau ?
Mais bon faites ces changements :
  • Donnez le nom de code (sys_Data) à la feuille base de donnée (Il vaut mieux travailler avec le nom de code des feuilles, leurs noms peut changer plus facilement, de plus cela vous évite de déclarer des variable supplémentaires dans vote code)
Regarde la pièce jointe 1214440
  • Donnez le nom de code (sys_DataForm) à la feuille Formulaire
  • Changez le nom du tableau de destination en vt_Data (Donner des noms représentatif pour vos tableau, pour ma part j'utilise le prefixe "vt_" mais vous pouvez donnez le prefixe de votrechoix)
  • Sélectionnez la plage entière où vous entrez vos données et attribuez-lui le nom sysvr_Data (Attribuer des champs nommés facilite la comprhéension du code ici aussi j'utilise un prefixe "sysvr_" pour mes champs nommés mais vous pouvez lui donner le prefixe qui vous convient)
  • Changer le code de la macro par celle-ci
VB:
Sub Macro10()
    ' // Ajoute une ligne au tableau à la position 1
    Dim lstRow As Excel.ListRow
    Set lstRow = sys_Data.Range("vt_Data").ListObject.ListRows.Add(Position:=1)
    sys_DataForm.Range("sysvr_Data").Copy

    With lstRow.Range(1).Cells.Resize(1, 8)
        .PasteSpecial Paste:=xlPasteValues
    End With

    Application.CutCopyMode = False
 
    MsgBox ("donnée enregistrée")
End Sub

Bonne programmation,
Bonjour, merci de ta réponse, oui effectivement, je pourrais faire directement comme tu le dis, mais me voilà à près de 75 ans , et je voudrais passer mon temps à ce genre de chose, pas facile vu que je commence Excel.
 
Hello

j'ai repris le classeur initial
vu que tu as une Table structurée dans la seconde feuille
1) je l'ai appelée t_BDD
2) le code est réduit à quelques lignes
voir les commentaires

après. quitte à avoir un "formulaire", autant définir un VRAI formulaire (Userform) en y placant des textbox pour saisir les infos, une listbox pour visualiser le contenu de la base de données, des boutons pour modifier, ajouter supprimer des lignes..
va voir dans les resssources du forum, il y a plein d'exemples de gestion de stock
 

Pièces jointes

et un peu de lecture pour comprendre et apprendre les Tables Structurées et les différents controls sur un formulaire


 
- 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

Réponses
3
Affichages
662
Réponses
27
Affichages
3 K
Retour