Manipulation ComboBox et affectation de valeurs à des termes

Towelie

XLDnaute Nouveau
Bonjour à vous,

Je développe actuellement un outil qui permet de collecter les charges de travail et qui va permettre à mon responsable d'obtenir une synthèse de ces charges. J'ai donc décidé de créer un masque de saisie comprenant plusieurs champs à renseigner. Ce masque est notamment composé de 3 ComboBox

J'ai trois problèmes :

- Tout d'abord, je souhaiterai affecter des données (issues d'une feuille "DONNEES_TECHNIQUES") aux ComboBox1 et ComboBox2, sans passer par la propriété rowsource et éviter le code en "dur".

ComboBox1: niveaux de criticité (critique, majeure, mineure)
ComboBox2: noms des activités (activity_1, activity_2,...)


- Dans un second temps, j'aimerais que le choix du ComboBox2 détermine les propositions (également issues de la feuille "DONNEES_TECHNIQUES") du ComboBox3.

Par exemple:
Si ComboBox2 = activity_1, alors ComboBox3 me propose les produits P1, P2, P3, P4
Si ComboBox2 = activity_2, alors ComboBox3 me propose les produits P5, P6, P7
et ainsi de suite...


Remarque: ces ComboBox (surtout la 2 et la 3) doivent pouvoir être mis à jour.


- Enfin, une feuille "SYNTHESE_DES_CHARGES" doit permettre le calcul automatique des charges en heures. Par conséquent, je dois affecter des valeurs numériques à chaque produit.

J'ai déjà appliqué la formule "recherchev" et elle fonctionne parfaitement. Cependant elle ne convient pas à mon besoin car je ne peux sélectionner qu'un seul "n°_index_col", ce qui implique que je dois regrouper toutes les données techniques, relatives aux produits et aux temps, sur deux colonnes.


Pouvez-vous m'aider ? SVP
En espérant avoir été clair, je vous remercie par avance et je me tiens à votre disposition pour toutes informations complémentaires. Vous trouverez ci-joint mon document.


Bien cordialement :),
Towelie.


Remarque: je me suis familiarisé avec l'environnement VBA, mais j'ai niveau débutant. Je travaille également avec Excel 2013.
 

Pièces jointes

  • CDC_VExemple_V2.zip
    36.2 KB · Affichages: 26

Modeste

XLDnaute Barbatruc
Re : Manipulation ComboBox et affectation de valeurs à des termes

Bonjour Towelie,

Je te propose de ne pas essayer de répondre en un "bloc" à toutes tes interrogations (essentiellement parce que je ne suis pas certain de tout comprendre et accessoirement ou alors est-ce l'inverse!? :eek: parce que je n'aurai pas nécessairement la/les réponse(s))

Prenons donc le début (avec les précautions oratoires ci-dessus évoquées: j'ai peut-être compris de travers)
tu peux utiliser l'événement Initialize pour "garnir" un ComboBox (par exemple). Le bout de code ci-dessous permet -avant que l'UserForm soit affiché- de garnir ComboBox1 avec les valeurs figurant en J3 et suivantes de la feuille "DONNEES_TECHNIQUES"
VB:
Private Sub UserForm_Initialize()
With Sheets("DONNEES_TECHNIQUES")
    ComboBox1.List = Application.Transpose(.[J3].Resize(Application.CountA(.[J:J]) - 1, 1))
End With
End Sub

Peux-tu vérifiier si j'ai compris cette première question et si la solution te convient?
 

Papou-net

XLDnaute Barbatruc
Re : Manipulation ComboBox et affectation de valeurs à des termes

Bonjour Towelie, Modeste, le Forum,

Ayant travaillé en parallèle de Modeste (avec les mêmes restrictions de compréhension), je joins ma version.

L'avantage apparent que présente ma solution est que, dans un souci d'universalité ou d'évolution de la feuille DONNEES_TECHNIQUES, l'adressage des Combobox se fait de façon automatique. Nul besoin de modifier le code, notamment en cas d'ajout ou de suppression de données.

Le reste des réponses à venir en fonction de l'avis exprimé par l'auteur du post.

Cordialement.
 

Pièces jointes

  • CDC_VExemple_V2-1.xlsm
    41.9 KB · Affichages: 41

Towelie

XLDnaute Nouveau
Re : Manipulation ComboBox et affectation de valeurs à des termes

Bonjour Modeste, Papou-net,

Tout d'abord je tiens à vous remercier pour votre réactivité.

Modeste, tu as parfaitement compris mon besoin et ta solution fonctionne très bien. Elle a l'avantage d'être simple et ne demande pas de retourner dans le code si une mise à jour des données est nécessaire (à condition de rester dans la colonne "J3:J"(si je ne dis pas de bêtises :p)).



Papou-net tu as su répondre à mes deux premiers besoins. La prise en compte de ce souci d'universalité ou d'évolution de la feuille DONNEES_TECHNIQUES est absolument fondamentale. En effet, je suis actuellement en stage jusqu'au 19 juin, par conséquent il faut que ce tableur puisse être mise à jour (après mon départ) par une personne n'ayant aucunes compétences VBA.


Cependant, j'ai décelé quelques petits problèmes avec ta solution Papou-net. Ces problèmes apparaissent lorsque j'oublie la saisie des champs ou j'ai appliqué un msgbox d'avertissement.

Il y a deux possibilités lorsque j'appuie sur le bouton "OK" de mon msgbox :

- Soit le retour vers l'UserForm se fait correctement et je peux reprendre la saisie. En contrepartie le champ "Hiérarchisation des commandes" redevient vierge.

- Soit une erreur " d'exécution '91' : Variable ou objet de bloc with non définie ",
avec le débogage sur la deuxième ligne de ce bout de code contenu dans la Private Sub UserForm_activate ()
Code:
For Each pl In .Rows(lg).SpecialCells(xlCellTypeConstants)
    If pl = cel.Value Then ComboBox2.AddItem pl.Offset(-1, 0).Value
Next

Cette erreur se répète si je souhaite relancer le formulaire après la première saisie correcte d'une charge de travail.




Espérant avoir été clair lol, je vous remercie encore pour vos réponses et explications, et reste à votre disposition pour toutes informations complémentaires.

Bien cordialement :),
Towelie.



Remarque: Désolé de pondre des romans à chacune des mes réponses :D.
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Manipulation ComboBox et affectation de valeurs à des termes

RE:

Vois si cette nouvelle version corrige les problèmes.

J'ai supprimé le code dans la procédure Initialize de form_activities pour l'intégrer à une nouvelle macro MaJDonnees située dans le module trustway. La procédure Open du module ThisWorkbook lance cette macro à l'ouverture du classeur.

Je n'ai pas relevé de dysfonctionnement notable.

Bonne soirée.

Cordialement.
 

Pièces jointes

  • CDC_VExemple_V2-2.xlsm
    47.9 KB · Affichages: 36

Towelie

XLDnaute Nouveau
Re : Manipulation ComboBox et affectation de valeurs à des termes

Salut Papou-net,

Ta solution correspond à ce que j'attendais.


Cependant, j'ai remarqué que suite à certaines manipulations (sans rentrer dans le code), les ComboBox 1 et 2 deviennent vides, et sans propositions.

Si tu désires mettre à jour ces données techniques, est-il normal de devoir enregistrer et relancer le classeur ?


Merci infiniment pour ton aide et le temps que tu y as accordé.


Bien cordialement :),
Towelie.
 

Discussions similaires

Réponses
10
Affichages
372

Statistiques des forums

Discussions
312 194
Messages
2 086 068
Membres
103 110
dernier inscrit
Privé