Problème pour alimenter une TextBox qui dépend de comboBox liées

yohann.Gestion

XLDnaute Nouveau
Bonjour à tous

Voilà plusieurs semaines que je cherche des solutions à mes problèmes mais en vain. J'ai créer une appli VBA avec userform pour faire une gestion des stocks j'ai des combobox liées entre eux qui sont alimenter par des feuilles excel, jusqu'ici pas de soucis tous va bien.
Puis j'ai mis une textbox pour y mettre la quantité de pièces disponible mais voila le soucis je n'y arrive pas du tout car les valeurs mis dans la textbox repart a zéro des que je change de pièces.

J’espère que je suis assez clair.

Merci.
 

camarchepas

XLDnaute Barbatruc
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Bonjour ,

L'on sais que ton problème est le code vba de mise à jour du textbox donc lié à un userform et à une base de données
et donc à un classeur.

Donc pour t'aider ,
si l'on à pas le userform et le code concerné, je vois mal comment t'aider .

Un petit classeur reprennant les points principaux , sans données sensibles serait l'idéal .

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Bonjour à tous

yohann.Gestion
Que tu aies besoin d'aide, çà on le sait tous... puisque tu poses ta question sur un forum d'entraide ;)
Mais ce tu sembles ne pas savoir c'est que:
1) nous sommes en week-end et plus exactement dimanche
et souvent le dimanche, c'est un temps qu'on réserve à sa famille
ou à regarder paisiblement la finale de la coupe Davis
ou à bricoler, jardiner ou que sais-je encore ;)

2) toujours garder ceci dans un coin de sa mémoire
extrait de la charte du forum
2 – Tous les membres du forum répondent gracieusement aux questions.
Il n’y a donc aucune obligation de résultat et de délai. Les mots URGENT, SOS, AU SECOURS sont donc à bannir.


Donc au final, sois un peu patient, et l'aide que tu attends arrivera quand elle arrivera ;)

PS:
On ne joint généralement pas une application complète mais un version allégée et anonymisée qui illustre le problème
Ton fichier joint contient 16 userforms et 12 modules !!
Cela fait un peu trop de code VBA à lire pour un dimanche ;)

Précises dans quel userform et sur quel contrôle se situe le problème, déjà ce la optimisera tes chances de réponses
Ce serait encore mieux si tu joignais un fichier exemple allégé et anonymise qui contiendrait seulement le userform qui pose problème.
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Re ,

@ Bonjour Jean Marie

Je réitere la question de Jean Marie,

Quel textbox et quel formulaire ?

y'a également un gros problème de temps de chargement des formulaires

et pourquoi :

Load Frm_Choix 'Chargement Frm_Choix
Frm_Choix.Show 'Affichage Frm_Choix

la deuxième ligne suffit non ?

J'essai d'analyser , mais pas simple
 

yohann.Gestion

XLDnaute Nouveau
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Effectivement le chargement des userform est assez long :( !!!!
j'ai mis en pièce jointe une version simple de mon application, donc lorsque je sélectionne mes info dans mes différentes ComboBox j'aimerais que les quantité des pièce disponible s'y affiche.

Merci beaucoup.
 

Pièces jointes

  • Projet VBA.xlsm
    26.1 KB · Affichages: 58
  • Projet VBA.xlsm
    26.1 KB · Affichages: 76
  • Projet VBA.xlsm
    26.1 KB · Affichages: 85

camarchepas

XLDnaute Barbatruc
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Ok ,
j'ai regardé pour le chargement des listes ,
j'ai repris un des modules, il faudrait faire de même partout , c'est loin d'être optimisé , mais l'on gagne déjà les boucles

Bon , je regarde le fichier simplifié , en attendant tu pends reprendre les autres modules de chargement

Code:
Sub Select_Equipements_Sortie()

'Déclaration des variables

Dim Compteur As Integer 'Compteur
Dim iPos As Integer 'Compteur dans ListBox matière
Dim strTemp As String
Dim LigneFin As Long
'Initialisation des variables

iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_58.Clear

'Ajout des Equipements dans Cbo_58

    LigneFin = ThisWorkbook.Sheets("Prod").Range("A" & Rows.Count).End(xlUp).Row
    Frm_Sortie.Cbo_58.List = ThisWorkbook.Sheets("Prod").Range("A2:A" & LigneFin).Value
   


'Supression des doublons dans Cbo_58

Do While iPos < Frm_Sortie.Cbo_58.ListCount

    Frm_Sortie.Cbo_58.Text = Frm_Sortie.Cbo_58.List(iPos)
    
    If Frm_Sortie.Cbo_58.ListIndex <> iPos Then
    
        Frm_Sortie.Cbo_58.RemoveItem iPos
        
    Else
    
        iPos = iPos + 1
        
    End If
    
Loop

Frm_Sortie.Cbo_58.ListIndex = -1

'Initialisation des variables


iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_62.Clear

'Ajout des Equipements dans Cbo_62

    LigneFin = ThisWorkbook.Sheets("Conditionnement").Range("A" & Rows.Count).End(xlUp).Row
    
    Frm_Sortie.Cbo_62.List = ThisWorkbook.Sheets("Conditionnement").Range("A2:A" & LigneFin).Value


'Supression des doublons dans Cbo_62

Do While iPos < Frm_Sortie.Cbo_62.ListCount

    Frm_Sortie.Cbo_62.Text = Frm_Sortie.Cbo_62.List(iPos)
    
    If Frm_Sortie.Cbo_62.ListIndex <> iPos Then
    
        Frm_Sortie.Cbo_62.RemoveItem iPos
        
    Else
    
        iPos = iPos + 1
        
    End If
    
Loop

Frm_Sortie.Cbo_62.ListIndex = -1


'Initialisation des variables

Compteur = 2
iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_66.Clear

'Ajout des equipements dans Cbo_66

    LigneFin = ThisWorkbook.Sheets("Froid").Range("A" & Rows.Count).End(xlUp).Row
    
    Frm_Sortie.Cbo_66.List = ThisWorkbook.Sheets("Froid").Range("A2:A" & LigneFin).Value
    

'Supression des doublons dans Cbo_66

Do While iPos < Frm_Sortie.Cbo_66.ListCount

    Frm_Sortie.Cbo_66.Text = Frm_Sortie.Cbo_66.List(iPos)
    
    If Frm_Sortie.Cbo_66.ListIndex <> iPos Then
    
        Frm_Sortie.Cbo_66.RemoveItem iPos
        
    Else
    
        iPos = iPos + 1
        
    End If
    
Loop

Frm_Sortie.Cbo_66.ListIndex = -1

'Initialisation des variables

Compteur = 2
iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_70.Clear

'Ajout des equipements dans Cbo_70

    LigneFin = ThisWorkbook.Sheets("Equipements Commun").Range("A" & Rows.Count).End(xlUp).Row
    
    Frm_Sortie.Cbo_70.List = ThisWorkbook.Sheets("Equipements Commun").Range("A2:A" & LigneFin).Value


Frm_Sortie.Cbo_70.ListIndex = -1

'Initialisation des variables

Compteur = 3
iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_74.Clear

'Ajout des equipements dans Cbo_74

    LigneFin = ThisWorkbook.Sheets("Enérgie ISO 50001").Range("A" & Rows.Count).End(xlUp).Row
    
    Frm_Sortie.Cbo_74.List = ThisWorkbook.Sheets("Enérgie ISO 50001").Range("A2:A" & LigneFin).Value


'Supression des doublons dans Cbo_50

Do While iPos < Frm_Sortie.Cbo_74.ListCount

    Frm_Sortie.Cbo_74.Text = Frm_Sortie.Cbo_74.List(iPos)
    
    If Frm_Sortie.Cbo_74.ListIndex <> iPos Then
    
        Frm_Sortie.Cbo_74.RemoveItem iPos
        
    Else
    
        iPos = iPos + 1
        
    End If
    
Loop

Frm_Sortie.Cbo_74.ListIndex = -1

'Initialisation des variables

Compteur = 2
iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_78.Clear

'Ajout des equipements dans Cbo_78

    LigneFin = ThisWorkbook.Sheets("Bâtiments").Range("A" & Rows.Count).End(xlUp).Row
    
    Frm_Sortie.Cbo_78.List = ThisWorkbook.Sheets("Bâtiments").Range("A2:A" & LigneFin).Value


'Supression des doublons dans Cbo_54

Do While iPos < Frm_Sortie.Cbo_78.ListCount

    Frm_Sortie.Cbo_78.Text = Frm_Sortie.Cbo_78.List(iPos)
    
    If Frm_Sortie.Cbo_78.ListIndex <> iPos Then
    
        Frm_Sortie.Cbo_78.RemoveItem iPos
        
    Else
    
        iPos = iPos + 1
        
    End If
    
Loop

Frm_Sortie.Cbo_78.ListIndex = -1


'Initialisation des variables

Compteur = 2
iPos = 0
i = 0
j = 0

Frm_Sortie.Cbo_82.Clear

'Ajout des equipements dans Cbo_82
    LigneFin = ThisWorkbook.Sheets("Stockage").Range("A" & Rows.Count).End(xlUp).Row
    
    Frm_Sortie.Cbo_82.List = ThisWorkbook.Sheets("Stockage").Range("A2:A" & LigneFin).Value


'Supression des doublons dans Cbo_82

Do While iPos < Frm_Sortie.Cbo_82.ListCount

    Frm_Sortie.Cbo_82.Text = Frm_Sortie.Cbo_82.List(iPos)
    
    If Frm_Sortie.Cbo_82.ListIndex <> iPos Then
    
        Frm_Sortie.Cbo_82.RemoveItem iPos
        
    Else
    
        iPos = iPos + 1
        
    End If
    
Loop

Frm_Sortie.Cbo_82.ListIndex = -1

End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Bonjour ,

C'est vraiment du code au kilomètre , comme au temps des pigistes ,

y'a un boulot énorme de réécriture , pas trop le temps , déjà trop de projets en cours dans ma babasse.

Vu le nombre de données , il serait trés interessant d'avoir une clé unique pour chaque élément du stock.
Aprés la recherche et modification des stock serait plus simple .

Pour la suppression des doublons , il faudrait utiliser un dictionnaire avant chargement dans la liste , tu gagnerais encore beaucoup de temps.

un exemple à adapter à ton appli sur chaque chargement list , ATTENTION à bien paramètrer la feuille et la liste concernée

Code:
 sub Charge 
  dim Feuille as string 
 Dim Tourne as long
dim DicoFiltre as object
 Feuille = "Base" 
Combobox4.clear 
  with Sheets(Feuille)
  Set DicoFiltre = CreateObject("Scripting.Dictionary")
  Element = .Range("A2:A" & .range("A" & rows.count).End(xlUp).Row) 
  For Tourne = LBound(Element) To UBound(Element)
    If Element(Tourne, 1) <> "" Then DicoFiltre (Element(Tourne, 1)) = ""
  Next Tourne
  Me.ComboBox4.List = DicoFiltre.keys
end with
end sub
 

yohann.Gestion

XLDnaute Nouveau
Re : Problème pour alimenter une TextBox qui dépend de comboBox liées

Merci sa marche!!! par contre avec ce code le choix dans la première comboBox n'est pas pris en compte pour le choix de la seconde et ainsi de suite si quelqu'un a une idées.

Merci beaucoup en tout cas pour la rapidité des réponse :D c'est super cool de votre part.
 

Discussions similaires

Réponses
3
Affichages
395

Membres actuellement en ligne

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 007
dernier inscrit
salma_hayek