Comment trouver les codes pour alimenter ma VBA

Bonjour à tous,

Voilà je suis dans une petite PME, et je souhaite mettre en place un tableau pour suivre les livraisons, ça va me permettre de répondre aux clients si la commande est livrée avec le nom du transport et la date,

Sur you tube, j'ai trouvé exactement ce que je souhaite, simplement la vidéo ne montre pas comment faire la suite,

J'ai réussi à créer usurfom, les boutons, mais je reste sur ma fin car je ne sais pas alimenter mon tableau,

Est ce qu'une personne bienveillante peut me dire comment faire pour trouver les codes,

Je souhaite que dans la ligne statut j'ai le choix entre à préparer , en cours, Livré, Retard, Je vous ai transmis en image ce que je souhaite ainsi que le début de mon tableau,

Merci beaucoup pour votre bienveillance

capture d ecran 2025 05 13 115812

Bonjour,

Pour alimenter automatiquement ta Combobox Statut, tu as intérêt à construire une feuille "Base de données" dans laquelle, en colonne, tu noteras toutes les données correspondantes à "Statut", ensuite un petit bout de code alimentera ta comboboxbox

Private Sub UserForm_Initialize()
         For i = 2 To Sheets("BdD").Cells(Rows.Count, 1).End(xlUp).Row
                UserForm1.ComboBox1.AddItem Sheets("Base de Données").Cells(i, 1)
         Next i
End Sub

Je reste à ta dispositon

J'ai essayé de faire une base de donné, je suis perdue quand j'ai suivi la vidéo je pensais pouvoir y arriver mais comme elle n'a pas eu de fin,

voilà le résultat

Merci beaucoup pour votre aide

Bonjour

Votre feuille base données est plutôt la feuille qui contient les options A préparer, ..... Donc ce sont des choix qui doivent être disponibles dans la combo

Ce que je ferai, c'est
- Renommer votre feuille en Listes ou Paramètres par exemple (j'ai choisi listes)
- colonne A :
--- en A1 vous mettez "Statut"
--- en A2 et suivante les différents choix

Au final cela donnerait ceci

image

- Après allez le menu excel Formule --> Cliquez sur "gestionnaire de noms"
- sélectionnez le nom "Tableau2"
- cliquez sur Modifier et renommer Tableau2 en --> Tab_statut

Ensuite allez dans votre USerform et collez le code ci-dessous

Private Sub UserForm_Initialize()
ComboBox1.List = Range("Tab_Statut").ListObject.DataBodyRange.Value
End Sub

Il vous reste à essayer l'ouverture de l'usf

Crdlt

Bonjour Mouchette et le forum
Comme il ne fait pas beau en Bretagne en ce moment, j'avais pris ce fil ( mais je suis moins rapide que certains) et vous propose une solution via un Tableau Structuré (T_Livraison).
J'ai également créé 2 autres tableaux dans la feuille "Listes". Le 1er concernant les statuts et le 2ème (à initialiser) pour les sociétés de transport.
J'ai modifié toutes les macros du formulaire en conséquence.
A voir si ça convient
Cdt
Papy Henri

Non, tu n'as pas fait de base de données adaptée à tes besoins, c'est à dire afin d'alimenter ta combobox "Statut"

Voici la solution, mais j'ai un petit problème : il me semble que je dois faire deux essais pour avoir le résultat ???? je vais regarder

@jacky
Bonjour,

Idéalement, le bouton commandbutton2 sur la feuille devrait être associé à un code placé dans un module

Donc comme ceci dans un module

Sub ouvrir()
UserForm1.Show
End Sub

Puis associer le bouton à ce code là

Après le mieux est de prendre le code que j'ai proposé pour la sub initialize dans mon post précédent. C'est plus rapide et on n'a pas besoin de boucle. Mais il faut que le tableau en feuille Base soit au format structuré.

Cordialement

Bonjour Dan,

merci, mais entre temps j'ai trouvé ma bétise et l'a corrigée
Toutefois j'ai conservé mon code bien que tu as raison afin d'éviter une boucle

Au plaisr

@Jacky
Plusieurs choses ne peuvent pas fonctionner.
Le formulaire a des Textbox numérotés de 1 à 5 et des CommandButton de 1 à 5, alors que dans les codes on trouve:

Private Sub CommandButtonAjouter_Click()
Private Sub CommandButtonModifier_Click()
Private Sub CommandButtonSupprimer_Click()
   ws.Cells(ligne, 1).Value = Me.TextBoxAffaire.Value
    ws.Cells(ligne, 2).Value = Me.TextBoxCommande.Value
    ws.Cells(ligne, 3).Value = Me.TextBoxClient.Value
    ws.Cells(ligne, 4).Value = Me.ComboBoxStatut.Value
    ws.Cells(ligne, 5).Value = Me.TextBoxDate.Value

En plus dans ta proposition tu as créé une feuille "Base" et dans ton code proposé tu fais appel à la feuille "Base de données".
Amicalement
Papy Henri

Re Mouchette
Les remarques faites à Jacky répondent à votre 1er problème. Il faut que les noms des différents "contrôles" dans le formulaire et dans les codes soient exactement identiques.
Voici une petit plus qui apparait dans le formulaire à l'ouverture. Le calcul du nombre de livraisons pour chaque statut. Ces données sont issues du Tableau Statut de la feuille "Listes" en colonne 2.

Si vous deviez ajouter un nouveau Statut, il suffit de l'ajouter dans la feuille "liste" sous Retard (la formule en colonne2 se mettra toute seule), puis ajouter un Label et un textBox dans le cadre "Statuts" du formulaire et ajouter une ligne de code das la Sub suivante:

Sub CalculStatuts() 'Calcul des livraisons dans les différents statuts
    With Range("T_Statut").ListObject.DataBodyRange
     Me.TextBox6 = .Item(1, 2)
     Me.TextBox7 = .Item(2, 2)
     Me.TextBox8 = .Item(3, 2)
     Me.TextBox9 = .Item(4, 2)
     Me.TextBox10=.Item(5,2) ' ce nouveau TextBox correspondrait au nouveau statut
    End With
End Sub

Bonne soirée
Papy Henri

Bonjour à tous,

Un grand merci à vous tous pour votre aide et plus particulièrement à papy Henri,

Vous ne pouvez pas imaginer le temps que vous allez me faire gagner,

Je vous souhaite à tous une excellente journée,

Bonjour mouchette et merci pour ce retour.
Voici une version 3 qui corrige et contrôle les saisies.
Merci d'avoir clôturer ce fil , mais il reste 10 autres sujets à votre actif et non clos.
Cdt
Papy Henri

Encore merci Papy Henri

J'ai résolu le problème avec mes dossiers à clôturer,

Heureusement qu'il y a des personnes comme vous, qui acceptent de prendre un peu de votre temps pour nous aider,

car entre le travail, les enfants, la maison, on a pas trop envie de se creuser la tête.

Bonne journée à vous

Ok. Les retraités ont plus de temps en effet.
Il ne reste plus qu'à mettre votre version Excel à jour dans votre profil et tout sera parfait, car "stock" ne veut rien dire. Excel 2010,2013,2021 ou 365.

Rechercher des sujets similaires à "comment trouver codes alimenter vba"