Enregistrement de données issues d'un formulaire

Fermé
Tobibi - 25 sept. 2018 à 14:00
 Tobibi - 26 sept. 2018 à 10:07
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,


2 réponses

fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
25 sept. 2018 à 14:55
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
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 mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > Tobibi
Modifié le 26 sept. 2018 à 09:28
- 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
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 mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
26 sept. 2018 à 09:40
votre fichier : https://mon-partage.fr/f/pwPNSol7/
0
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 mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
26 sept. 2018 à 10:03
L = Worksheets("DATA").Range("A" & Rows.Count).End(xlUp).Row +1
0
Ah c'est tout bête en fait :)

Merci beaucoup Fabien !
0