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,

2 réponses

  1. fabien25000 Messages postés 697 Statut Membre 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
    1. 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
      1. fabien25000 Messages postés 697 Statut Membre 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
    2. 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
  2. fabien25000 Messages postés 697 Statut Membre 59
     
    votre fichier : https://mon-partage.fr/f/pwPNSol7/
    0
    1. 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
    2. fabien25000 Messages postés 697 Statut Membre 59
       
      L = Worksheets("DATA").Range("A" & Rows.Count).End(xlUp).Row +1
      0
    3. Tobibi
       
      Ah c'est tout bête en fait :)

      Merci beaucoup Fabien !
      0