Enregistrement de données issues d'un formulaire

Tobibi -  
 Tobibi -
Bonjour à tous,

Je suis face à un petit soucis, et après plusieurs tentatives et recherches je n'arrive à faire fonctionner mon fichier. je m'explique:

Je souhaite créer un fichier de traçabilité de matériel logistique (contenants de chargement issues d'une boucle d'emballage durable, donc soumis à une rotation).

Ce fichier à uniquement pour vocation de servir en attendant que la vraie solution informatique et automatique soit mise en place.

Vous trouverez ce fichier ici : https://www.dropbox.com/s/g0jdm3fyv83rd7f/Tra%C3%A7abilit%C3%A918.xlsm?dl=0

Afin d'aller plus vite je souhaite mettre en place un formulaire de saisie permettant donc de saisir les différents mouvements de chaque contenants, identifiés par une référence.

Le formulaire est déjà construit, là où je bloque c'est au niveau de la configuration pour que, quand on clique sur "enregistrer", les différents champs saisis dans le formulaire s'ajoute à la base de donnée (onglet "DATA") et aux colonnes correspondantes, à la suite. (Vous verrez dans le code que j'ai tenté ... en vain)
Je n'arrive pas non plus a configurer le bouton "quitter" pour quitter le formulaire de saisie et annuler l'enregistrement.

Merci d'avance pour votre coup de main,


A voir également:

2 réponses

fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
Bonjour,

déjà comment on affiche le formulaire? vous aurez besoin de
UserForm1.Show
, à vous de voir sur quel événement...
Ci dessous un début de code à peu près correct à continuer par vos soins :

Option Explicit

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
    Dim I, derlig As Integer
    Dim varitem As String
    
    derlig = Worksheets("BUILD").Range("E" & Rows.Count).End(xlUp).Row
    
    For I = 2 To derlig
        If Worksheets("BUILD").Range("A" & I) <> "" Then
            varitem = Worksheets("BUILD").Range("A" & I)
            ComboBox3.AddItem (varitem)
        End If
    Next I

End Sub

Private Sub CommandButton1_Click()

    Dim L As Integer

    If MsgBox("Confirmez-vous l’insertion de ce nouveau contact ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then

        L = Worksheets("DATA").Range("A" & Rows.Count).End(xlUp).Row

         Worksheets("DATA").Range("A" & L).Value = ComboBox5
         Worksheets("DATA").Range("B" & L).Value = ComboBox6
         Worksheets("DATA").Range("C" & L).Value = Zone_texte_Date
         Worksheets("DATA").Range("D" & L).Value = ComboBox3
         Worksheets("DATA").Range("E" & L).Value = ComboBox3

         ThisWorkbook.Save
    End If

End Sub


0
Tobibi
 
Merci pour votre retour,

j'ai du mal, je n'arrive pas à continuer le code même si je commence à le comprendre doucement, mon formulaire ne fonctionne pas ...
0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59 > Tobibi
 
- pourquoi remplir la date manuellement? il est possible qu'on aie besoin de renseigner des événements de la veille?
- la feuille database_contenants sert à quoi?
0
Tobibi
 
Oui je souhaite garder la possibilité de saisir des événements de date antérieures, il ne s'agit d'une date de saisie, mais d'une date d’événement (qui communiqué par les équipes opérationnelles sur le terrain).

cette feuille ne sert à rien pour la macro, c'est juste de l'information que j'utiliserai plus tard
0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
votre fichier : https://mon-partage.fr/f/pwPNSol7/
0
Tobibi
 
parfait merci, je comprend maintenant j'avais oublié les "end if"

j'ai réussi à rajouter un bouton dans une feuille pour l'ouverture du formulaire.

dernier point bloquant : les enregistrements ne s'ajoutent pas à la suite dans le tableau ...

je sais que ça se passe à ce niveau là du code :

L = Worksheets("DATA").Range("A" & Rows.Count).End(xlUp).Row

ou dois-je mettre le "+1" ?
0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
L = Worksheets("DATA").Range("A" & Rows.Count).End(xlUp).Row +1
0
Tobibi
 
Ah c'est tout bête en fait :)

Merci beaucoup Fabien !
0