Microsoft 365 Passer d'une TextBox à une ComBox sans mettre le désorde dans mon fichier.

ERN

XLDnaute Junior
Bonjour le Forum,

Grace à vos connaissances, j'ai pu avancer sur une base de donnée avec formulaire de modification/ d'ajout et suppression.

J'ai voulais saisir mes données dans des textbox mais à l'usage je me rends compte que ça n'est pas pratique.

Je m’interroge sur deux possibilités :

- Soit lors de la saisie, ma textbox me propose les données déjà écrites dans ma base de données
- Soit je pars sur un menu déroulant que je vais définir dans un onglet spécifique.

Qu'elle est la solution la plus simple ?

Je vous joins mon fichier pour une meilleur compréhension.

Attention, mon formulaire s'ouvre automatiquement.

Merci d'avance,
 

Pièces jointes

  • Bdd_Sous_traitants - Copie.xlsm
    45.1 KB · Affichages: 16

ChTi160

XLDnaute Barbatruc
Bonjour ERN
Tu parles d'un ComboBox pour remplacer un TextBox !
mais quel TextBox et Où ?
peux tu être plus explicite .
de plus il y a des erreurs lors de la Sélection d'une ligne de la Listbox ,car tu mets Cdbl() devant des Colonnes qui contiennent du text donc pas bon
Peux tu nous dire quelles sont les colonnes Chiffres je n'en vois qu'une (Prix Unitaire) ??????
tu veux faire référence aux colonne Chiffre de ta ListBox
voir procédure :
VB:
For k = 0 To Ncol - 2
        If k + 1 = 8 Or k + 1 = 9 Then 'ici deux Colonnes apparemment ! 8 et 9
            Me("TxtB_" & k + 1) = Format(CDbl("0" & Me.ListBox1.Column(k)), "Currency")
        Else
dans une ListBox les Numéros de Colonnes vont de 0 à x
donc la Colonne 8 de ta BDD sera la Colonne 7 de ta ListBox
pas besoin de rajouter 1
soit
Code:
 If k =7 Or k=8 'mais en 8 c'est les Unités de mesures ??????
Prévois tu une recherche depuis plusieurs ComBobox donc sur plusieurs colonnes(cascades)
Dans l'attente

jean marie
 
Dernière édition:

fanch55

XLDnaute Barbatruc
Bonjour,
une petite erreur dans le code de l'userform corrigée ci-dessous :
VB:
Private Sub ListBox1_Click()
If kit = True Then Exit Sub
    For k = 0 To Ncol - 2
        Select Case VarType(Me.ListBox1.Column(k))
        Case vbCurrency, vbDouble
            Me("TxtB_" & k + 1) = Format(CDbl("0" & Me.ListBox1.Column(k)), "Currency")
        Case Else
            Me("TxtB_" & k + 1) = Me.ListBox1.Column(k)
        End Select
    Next k
Label6 = Me.ListBox1.Column(11)
End Sub

Dans la mesure où il semblerait que la Bdd soit ce qui est en stock, il vous faudrait d'autres tables sur une feuille différente pour les fournisseurs et le matériel (réf et description ).
Remplacez les textbox de l'userform par des combobox liés à ces tables.
 

ChTi160

XLDnaute Barbatruc
Re
fanch55 , pas de problème Lol
pour imager ce que je disais :
VB:
Private Sub ListBox1_Click()
If kit = True Then Exit Sub
    For k = 0 To Ncol - 2
        If k = 7 Then
            Me("TxtB_" & k + 1) = Format(CDbl("0" & Me.ListBox1.Column(k)), "Currency")
        Else
            Me("TxtB_" & k + 1) = Me.ListBox1.Column(k)
        End If
    Next k
Label6 = Me.ListBox1.Column(11)
End Sub
Bonne fin de Journée
jean marie
 

ERN

XLDnaute Junior
Bonjour ERN
Tu parles d'un ComboBox pour remplacer un TextBox !
mais quel TextBox et Où ?
peux tu être plus explicite .
de plus il y a des erreurs lors de la Sélection d'une ligne de la Listbox ,car tu mets Cdbl() devant des Colonnes qui contiennent du text donc pas bon
Peux tu nous dire quelles sont les colonnes Chiffres je n'en vois qu'une (Prix Unitaire) ??????
tu veux faire référence aux colonne Chiffre de ta ListBox
voir procédure :
VB:
For k = 0 To Ncol - 2
        If k + 1 = 8 Or k + 1 = 9 Then 'ici deux Colonnes apparemment ! 8 et 9
            Me("TxtB_" & k + 1) = Format(CDbl("0" & Me.ListBox1.Column(k)), "Currency")
        Else
dans une ListBox les Numéros de Colonnes vont de 0 à x
donc la Colonne 8 de ta BDD sera la Colonne 7 de ta ListBox
pas besoin de rajouter 1
soit
Code:
 If k =7 Or k=8 'mais en 8 c'est les Unités de mesures ??????
Prévois tu une recherche depuis plusieurs ComBobox donc sur plusieurs colonnes(cascades)
Dans l'attente

jean marie
Effectivement, ma demande est incomplète.
Je souhaite remplacer les Textbox "Secteur d'activité", "Conditionnement" et "unité" respectivement TxtB_2, TxtB_10 et TxtB_11 par des menus déroulants dans mon UserForm. (voir image jointe). Les éléments des futurs menus déroulants se trouvent dans l'onglet list (colonne A = TxtB_2, colonne B = TxtB_10, colonne C = TxtB_11).
 

Pièces jointes

  • Capture1.JPG
    Capture1.JPG
    171.5 KB · Affichages: 30

jcf6464

XLDnaute Impliqué
Bonjour ERN ,Chti160, fanch55 et le forum,

Le mieux pour conservé les codes existant sans chamboulement de tout c'est de mettre des combobox pardessus les textbox et faire des liaisons entre les <--> deux comme cela pas de modif du code

je le fait sur mes appli

Un essai sur les activités

bonne continuation a tous jcf64
 

Pièces jointes

  • Bdd_Sous_traitants - Copie.xlsm
    48.6 KB · Affichages: 11
Dernière édition:

ERN

XLDnaute Junior
Bonjour jcf64464,

Merci pour cette méthode qui me facilite les choses.

J'ai réinséré vos modifications dans une autre fichier, car celui du posté n'était pas le bon. Après renommage des Comobox, je me retrouve avec des erreurs et je ne comprends pas où elles sont.

Si quelqu'un me venir en aide, je vous en serais reconnaissant.

Voici le fichier. Attention le formulaire s'ouvre automatiquement.
 

Pièces jointes

  • Bdd_Sous_traitants - test.xlsm
    44.6 KB · Affichages: 10
  • Capture3.JPG
    Capture3.JPG
    77.7 KB · Affichages: 25

jcf6464

XLDnaute Impliqué
Bonjour ERN ,Chti160, fanch55 et le forum,

Ce n'est pas le fichier que j'ai passé le mien fonctionne ,
J’avoue que je ne comprend pas pourquoi avoir changer les noms des combobox de plus la liste ListDer à changer en list !!! et en plus les listes démarre de la ligne A2,

1621326876387.png


Pour moi les unités sont bien à droite sous le label (unités) donc pas le même textbox !!!
bonne continuation jcf64
 

Pièces jointes

  • Bdd_Sous_traitants.xlsm
    51.1 KB · Affichages: 4
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 132
Membres
112 667
dernier inscrit
foyoman