Enregistrer données Texbox avec référence d'une ComboBox

Bonjour dan voila tout est fait de l'étape 1 à 4

Merci

Bonjour,

Ok j'ai modifié sur le fichier de travail.
On passe à l'userform SaisieInventaire

Etape 1 :

- Sélectionnez chacune des 5 combobox et allez supprimer la valeur que vous avez mise la propriété Rowssource

Etape 2
:
- Allez dans le menu Excel formules --> Gestionnnaire de noms
- Sélectionnez le nom Tableau10
- Cliquez sur le bouton Modifier
- dans la rubrique Noms changez le nom "Tableau10" en "TabFournisseurs".
- Répétez cette opération pour les noms Tableau12, Tableau 13 et Tableau8

Une fois terminé, donnez moi les noms que vous avez attribués aux noms Tableau12, 13 et 8. On passera à l'étape suivante

Suggestion :
dans la feuille Listes, vous pourriez aussi mettre les données en colonne D (Fruits, xherbes...) et F (oui non) sous forme de tableaux structurés. Ce sera plus pratique pour la suite. Si oui, donnez moi les noms que j'adapte votre fichier de travail

Bonjour dan,

je viens de terminer . j'ai nommé:

le tableau 10 TabFournisseurs

le tableau 12 TabFormat

Le tableau 13 TabUniteMesure

Le tableau 8 TabDivisions

j'ai fais des tableaux dans la feuille Listes

Colone d est TabFruitsLegumes

colonne F est TabOuiNon

Merci pour le soutien.

Christian

Ok

Une question pour les tableaux :

- Colonne d est TabFruitsLegumes
- colonne F est TabOuiNon

Quel titre d'entête avez-vous donné ?. Si vous n'en mettez pas excel vous renvoie Colonne 1 pour les deux

pour la colonne D: FRUITS LÉGUMES

Pour TabFruitsLegumes: FRUITS LÉGUMES (se trouve de D5 à D8)

Pour TabOuiNon: CHOIX CARTE (se trouve F6 à F7)

Pour TabFruitsLegumes: FRUITS LÉGUMES (se trouve de D5 à D8)
Pour TabOuiNon: CHOIX CARTE (se trouve F6 à F7)

Donc titre Fruits legumes en D4 et titre chois carte en F5. Juste ?

Remarquez que ce n'est pas très important car si vous déplacez vers le haut, vu que vous avez choisi de mettre au format structuré, excel verra toujours le nom. La plage sera adaptée automatiquement.

Parfait. je vous suis

Ces étapes étant terminées, mettez ces deux codes dans l'userform SaisieInventaire

1. Ouverture userform

Private Sub UserForm_Initialize() 'ouverture userform - Dan 30-11-21

With Sheets("Listes")
    CboFournisseurs.List = .ListObjects("TabFournisseurs").DataBodyRange.Value
    CobDivision.List = .ListObjects("TabDivisions").DataBodyRange.Value
    CboUnitMesure.List = .ListObjects("TabFormat").DataBodyRange.Value
    CboUnitFormatNet.List = .ListObjects("TabUniteMesure").DataBodyRange.Value
    ComboBox1.List = .ListObjects("TabOuiNon").DataBodyRange.Value
End With
End Sub

2. Validation : remplacez votre code actuel par celui ci-dessous

'Procédure permattant d'accéder à la feuille d'inventaire
Private Sub BoutonValider_Click() 'valider nouvelle entree - Dan 30-11-21

With Sheets("INVENTAIRE").ListObjects("TabInventaire")
    If .ListRows.Count = 0 Then
        .ListRows.Add: lig = 1
    Else: .ListRows.Add: lig = .ListRows.Count 'insérer à la dernière ligne
    End If

    With .DataBodyRange
        .Item(lig, 1) = TextArticles.Value
        .Item(lig, 2) = TextCode.Value
        .Item(lig, 3) = CboFournisseurs.Value
        .Item(lig, 4) = CobDivision.Value
        .Item(lig, 15) = CCur(TextPrix.Value)
        .Item(lig, 16) = TextFormat.Value
        .Item(lig, 17) = CCur(TextBox1.Value)
        .Item(lig, 18) = CboUnitMesure.Value
        .Item(lig, 20) = CCur(TextBox2.Value)
        .Item(lig, 21) = CboUnitFormatNet.Value
        .Item(lig, 25) = Combobo1.Value
    End With

    'Tri base de donnees inventaire
     With .Sort
        .SortFields.Clear
        .SortFields.Add Key:=Sheets("INVENTAIRE").Range("TabInventaire[ARTICLES]"), SortOn:= _
        xlSortOnValues, Order:=xlAscending
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End With
End Sub

Une fois effectué, faites quelques tests

3. codes "Private sub...Change". Je suppose que dans cette userform ils sont destinés à vérifier que les rubriques sont complétées avant validation. Si oui, on peut faire un seul code pour cela.
Dites moi quelles sont les rubriques qui doivent absolument être complétées. Je vous proposerai une modification à effectuer

Merci beaucoup.

en faisant des test, il y a juste la liste Division d'inventaire qui fonctionne.

la liste fournisseurs, Unité de mesure, Unité du format net sont vide.

le bouton valider fonctionne bien également.

j'ai bien coller les codes en espérant de de pas avoir sauté d'étapes

en faisant des test, il y a juste la liste Division d'inventaire qui fonctionne.

Vérifiez que vos noms TABxxxx sont corrects dans le gestionnaire de noms et que les plages sont correctes. Voici ce que j'ai :

presse papier01

Supprimez aussi les noms OuiNon, Liste fournisseurs, Unit_format_net, Unité_mesure, choixing, DivisionD Inventaire
En principe seuls les noms commençant par TAB sont à conserver

oui en effet j,ai la même chose. et cela correspond avec la macro

Private Sub UserForm_Initialize() 'ouverture userform - Dan 30-11-21

With Sheets("Listes")
CboFournisseurs.List = .ListObjects("TabFournisseurs").DataBodyRange.Value
CobDivision.List = .ListObjects("TabDivisions").DataBodyRange.Value
CboUnitMesure.List = .ListObjects("TabFormat").DataBodyRange.Value
CboUnitFormatNet.List = .ListObjects("TabUniteMesure").DataBodyRange.Value
ComboBox1.List = .ListObjects("TabOuiNon").DataBodyRange.Value
End With
End Sub

Il n'y a pas de raison que les combo soient vides
Vous avez bien supprimé les Rowssource ?

Attention aussi au respect des majuscules et minuscules dans les noms attribués

Edit ; le code que vous venez de poster fonctionne très bien sur mon fichier. Donc votre souci vient d'ailleurs

Parfait je regarde attentivement.

merci encore pour tout. c'est très apprécié

J'ai bien vérifié et la liste apparait juste quand je remet les Rowsource.

Pour ce qui est des texbox a absolument remplir avant de valider:

TextArticles

CboFournisseurs

CobDivision

ComboBox1

le but est de pouvoir quand même rentrer un articles même si on a pas le prix ni le format tout de suite

J'ai bien vérifié et la liste apparait juste quand je remet les Rowsource.

Vous ne devez pas utiliser les rowssource avec tout ce que je vous ai donné

Donnez moi votre fichier, je vais regarder

C'est noté pour les textbox et combo

Messieurs,

Etant malheureusement abonné au sujet,
ne vous serait-il pas possible de créer un nouveau post ou de faire ça en MP SVP

A+

Merci le revoici

14inventaire-2.zip (775.25 Ko)

a 14h51, je vous ai donné le code qu'il fallait appliquer --> https://forum.excel-pratique.com/s/goto/1020559

Alors pourquoi vous nommez encore le code comme ceci ????--> Private Sub Saisieinventaire_Initialize(). . C'est faux !

Je vous encore dit ici--> https://forum.excel-pratique.com/s/goto/1019976 !

Sinon, passez en MP comme BrunoM45 le souhaite.

Rechercher des sujets similaires à "enregistrer donnees texbox reference combobox"