Ben c'est simple (enfin il me semble ), à la sortie du 1er combobox tu écris dans la première partie de la zone de critères, à la sortie du 2ème tu écris dans deuxième partie, et à la sortie des deux tu boucles sur tes valeurs de la troisième partie (un peu moins simple) et tu écris dans la 3ème partie de la zone de critères, tu lis le résultat de BDSOMME et tu l'écris dans la textbox appropriée
Ouh là là! Alors, pour une néophyte comme moi, qui ne sais même pas encore comment débuter son code et ce qu'elle doit nommer très exactement comme variable, c'est certain que je saisi plus ou moins. Quelqu'un d'habitué comme toi dit ' à la sortie du combobox' et déjà tu perçois grossomodo la structure, sa position et même les bouts de codes appropriés. Moi, pas encore
Mais ça va venir.
Ce que j'aimerais savoir, c'est par où commencer...tu as vu mon début en vba pour ce projet? Peut-être que de là, ce serait plus simple de me donner un exemple concret. Par exemple, je me demande comment utiliser Me.Annee et Me.Division dans le code.
Ne t'inquiète pas, je ne vais pas te harceler Je pioche vraiment fort de mon côté à jongler avec les tutos et les fils sur des questions semblables en ce moment...d'ailleurs, faut que j'aille diner.
encore merci,
Et, j'ai découvert comment tager les nouveaux textbox pour que le résultat d'un code y soit inscrit...et moi qui cherchais dans le code en me disant 'c'est pas possible'...
Par contre, j'ai remarqué les plage crit1,2 et 3 et en me référant au code, je ne vois pas l'utilisation de crit1 et 2...est-ce à cause de la partie que j'avais créée ComboBox1.RowSource = ("Annee") et ComboBox2.RowSource = ("Division") qui les remplacent?
Je me pose aussi la question pourquoi ce bout de code revient dans deux code soit le Userform initialize et Calculer
Code:
Dim Ctl As Control
For Each Ctl In UserForm1.Controls
If TypeOf Ctl Is MSForms.TextBox Then
Petit détail mais les filtres de la liste ont disparu et lorsque j'essai d'en insérer des nouveaux, il figent et ne fonctionnent pas.
Je connais un utilisateur qui aime les filtres et qui va me poser la question alors je tente d'être avenante.
En passant, je suis gênée d'avouer que je ne crois pas que j'y serais arrivé..même si en étudiant ton code, je saisi quasiment...disons, c'est difficile à exprimer; il y a trop de particularités et de subtilités qui m'échapent. Je crois bien qu'il faut en faire depuis un bon bout de temps pour arriver à penser vba mais bon, ça ne va pas m'empêcher de continuer.
Par contre, j'ai remarqué les plage crit1,2 et 3 et en me référant au code, je ne vois pas l'utilisation de crit1 et 2...est-ce à cause de la partie que j'avais créée ComboBox1.RowSource = ("Annee") et ComboBox2.RowSource = ("Division") qui les remplacent?
Non, c'est dans les évènements Combobox_change (au changement de la valeur du Combobox) que j'écris dedans
Code:
Private Sub ComboBox1_Change()
With Sheets("Data sheet")
.Range("Crit1").Value = ComboBox1.Text
End With
End Sub
Private Sub ComboBox2_Change()
With Sheets("Data sheet")
.Range("Crit2").Value = ComboBox2.Text
End With
End Sub
Je me pose aussi la question pourquoi ce bout de code revient dans deux code soit le Userform initialize et Calculer
Dans l'initialisation, c'est juste pour vider les Textbox à l'ouverture, pas de résultat au début
Dans Calculer, c'est pour afficher le résultat des calculs
Petit détail mais les filtres de la liste ont disparu et lorsque j'essai d'en insérer des nouveaux, il figent et ne fonctionnent pas.
Bizarre, si moi je cliques dans la liste, Menu données - filtrer - filtre automatique, les flèches reviennent et je peux les utiliser
En passant, je suis gênée d'avouer que je ne crois pas que j'y serais arrivé..même si en étudiant ton code, je saisi quasiment...disons, c'est difficile à exprimer; il y a trop de particularités et de subtilités qui m'échapent. Je crois bien qu'il faut en faire depuis un bon bout de temps pour arriver à penser vba mais bon, ça ne va pas m'empêcher de continuer.
Ne te décourage pas
Cependant, outre l'habitude, je ne saurais que trop conseiller de bien maitriser les bases avant de se lancer dans des choses trop compliquées
Bien comprendre les types de variables
Savoir ce qu'est un objet
Savoir ce que sont Propriétés, Méthodes et Evènements d'un objet...
Tout ça permet de mieux appréhender la structure de ce avec quoi on travaille en VBA, et on comprend que ce n'est pas juste un "foutu bordel" où il faut apprendre par coeur comment faire ci ou ça, mais qu'il y a tout de même un fond de logique à tout ça, même si c'est parfois tordu, il faut le concéder
Après, plus on en fait, plus c'est facile et parait naturel, pas de secret...
Merci beaucoup pour les explications et je suis d'accord avec toi; je dois maîtriser la base avant de me lancer dans de tels projets.
D'un autre côté, ça me fait un exemple de programmation que je vais conserver précieusement.
Je vais mettre l'histoire du filtre de côté (bug?) car de toute façon, je reprends toutes ces étapes à nouveau dans le document original. Je vais même écrire le code à la main et utiliser la fenêtre de variable et évidement, selectionner et taper F1 sur tout ce qui m'intrigue
Encore un gros merci pour tout!
Bonne fin de journée,