Fonction VBA choix d'onglet en fonction d'un menu déroulant

Bonjour à tous,

j'ai un petit soucis. Ci après une fonction vba.

Private Sub ComboBox2_Change()

Dim col&, lig&, cel As Range, cel1 As Range

If ComboBox1.ListIndex = -1 Then Exit Sub

If ComboBox2.ListIndex = -1 Then Exit Sub

Set cel = Feuil2.Range("C5:CN5").Find(ComboBox1, , , xlWhole)

If Not cel Is Nothing Then col = cel.Column

Set cel1 = Feuil2.Range("B6:B" & Feuil2.Range("B" & Rows.Count).End(xlUp).Row).Find(ComboBox2, , , xlWhole)

If Not cel1 Is Nothing Then lig = cel1.Row

TextBox1 = Feuil2.Cells(lig, col)

End Sub

Mon problème :

1Plutôt que de placer textbox1 dans Feuil2, j'aimerai que textbox1 se place dans la feuille portant le même nom que le mot sélectionné dans ComboBox1 par l'utilisateur. Est-ce possible?

Merci d'avance.

Thibault

Bonsoir

Pas sur sur de comprendre la question

Essayes

Private Sub ComboBox2_Change()
Dim col&, lig&, cel As Range, cel1 As Range
  If ComboBox1.ListIndex = -1 Then Exit Sub
  If ComboBox2.ListIndex = -1 Then Exit Sub

  Set cel = Feuil2.Range("C5:CN5").Find(ComboBox1, , , xlWhole)
  If Not cel Is Nothing Then col = cel.Column

  Set cel1 = Feuil2.Range("B6:B" & Feuil2.Range("B" & Rows.Count).End(xlUp).Row).Find(ComboBox2, , , xlWhole)
  If Not cel1 Is Nothing Then lig = cel1.Row
  [barrer]textbox1 = Feuil2.Cells(lig, col)[/barrer]
  textbox1 = Sheets(Me.ComboBox1.Value).Cells(lig, col)
End Sub

Si pas ça

87ngf1-v4-140212.zip (32.67 Ko)

Bonsoir,

Merci beaucoup pour la réponse.

Cependant je ne suis pas sur que je me suis fait comprendre.

Je vous joins le fichier.

Vous avez juste à cliquer sur ouvrir dans l'onglet manual test.

Ce que j'aimerai dans l'idéal :

- lorsque l'utilisateur sélectionne Jan11 dans le menu déroulant Mois, le programme choisisse la page Jan11 pour y rentrer les TextBox1 et TextBox2.

Merci beaucoup de votre aide.

Thibault


Petite précision : le fait d'inscrire dans l'onglet Jaan11 doit dépendre du mot sélectionné dans ComboBox1.

C'est à dire que si je choisi Feb11 dans Combobox1, le chiffre doit s'afficher dans l'onglet Feb11.

Etc... sachant que je dois faire ça pour au moins 12 mois donc 12 onglets...

Etant donné que c'est ma première vraie utilisation de vba, je serai très reconnaissant de votre aide à ce sujet.

Thibault

Bonjour

Même comme ça je n'ai pas trop compris l'utilité

Pourquoi dans le ComboBox2 (Trésorerie) tu as des trésoreries et des FTE ?

Pourquoi Dans le ComboBox3 (FTE) tu n'as que des Trésoreries ?

Quelque chose m'échappe

Bonjour,

Effectivement mon fichier n'était pas très clair.

Je vous envoie deux versions.

Le fichier v1 est l'ancienne version qui fonctionne mais ne me convient pas.

Le ficher v2 est le fichier sur lequel j'ai un problème.

Dans le fichier v, je souhaiterai réussir à :

-Lorsque l'utilisateur sélectionne Month=Jan11 et Data=Trésorerie France, le Textbox1 s'affiche dans la feuille Jan11 dans la cellule C6 (ligne trésorerie France). Etc pour chacune des data et chacun des mois.

Merci d'avance

92ngf1-v1-160212.zip (32.89 Ko)
88ngf1-v2-160212.zip (29.60 Ko)

Bonjour

Pourquoi ne pas faire des choses claires ?

Tu as un ComboBox3 que tu as intitulé "Inutile" cela veut dire que l'on ne fait plus la recherche/modification avec ?

Tu as complétement changé la disposition des infos, est-ce définitif ?

Parce-ce que si c'est le cas , il vaudrait mieux (juste mon avis) une seule page qui regroupe tout (1ère colonne Trésoreries et FTE, les autres colonnes : les mois)

J'attends tes réponses avant de continuer

Oui le combobox 3 est inutile : on ne fait plus de recherche/modifications avec.

Malheureusement, j'ai absolument besoin que chaque feuille représente un mois.

La disposition du ficher v2 est définitive à cela près :

  • Dans la colonne Trésorerie/FTE, d'autres éléments viendront se rajouter ( je pense que ce n'est pas un soucis puisqu'il suffit de paramétrer convenablement Combobox2. C'est exact?
  • Le nombre d'onglet "mois00" va considérablement augmenter (je ne sais pas réellement si cela pose problème).

J'ai une question subsidiaire :

Dans la colonne trésorerie/FTE, si je rajoute un mot que je souhaite ne pas voir apparaître dans comboBox2, est-ce possible?

Merci pour ton aide.

Bonjour

Suppression des éléments inutiles

Code plus simple

ngf1 a écrit :

Dans la colonne trésorerie/FTE, si je rajoute un mot que je souhaite ne pas voir apparaître dans comboBox2, est-ce possible?

Oui c'est possible

Exemples

tester lors de l'initialisation du ComboBox2

Mettre en avant le début des informations que l'on récupère

Merci beaucoup!

C'est exactement ce qu'il me fallait.

Par contre le cahier des charges m'a été légèrement modifié. Cette fois si ce sera une version réellement définitive.

Dans chacun des onglets "mois", j'ai rajouté des colonnes par "pays".

Et je voudrais que le chiffre rentre dans la bonne colonne en fonction du choix de pays dans combobox3.

Désolé de t'embêter à nouveau et merci!

Histoire de ne pas te déranger à nouveau, j'ai deux choses à faire en plus :

  • Il faudrait que l'utilisateur est une phrase du type "Etes vous sur de vouloir modifier la Trésorerie1 de Jan11 pour la France?" une fois qu'il a choisi dans les trois menus déroulant. Est-ce possible?
  • Est-il possible d'insérer automatiquement un commentaire avec date de modification et nom de l'utilisateur (= nom du pc) dans chaque case où une valeur est rentrée?

Si oui c'est parfait, dans le cas contraire, c'est la vie.

Par ailleurs merci pour les commentaires dans le code, cela m'a permis de mieux comprendre.

Bonjour

A vérifier

Ca l'air de fonctionner, par contre tu m'as perdu au niveau du code.

Je vais essayer de comprendre.

Merci beaucoup !!

Si tu sais comment insérer un commentaire dans chaque cellule remplie, je suis preneur.

de même pour l'insertion d'un message de validation avant que le chiffre soit rentré.

(cf mon message précédent).

Bonjour

Je n'avais pas vu ton message précédent

A voir

Merci énormément.

Je suis en train de modifier quelques détails.

J'ai à peu près compris ton code.

Je reviendrai vers toi si j'ai des questions sur ce que tu as fait.

Bonsoir,

Tout d'abord merci beaucoup, j'ai bien compris ton programme et j'arrive à le modifier comme je le souhaite.

ensuite une simple question qui va te paraître probablement assez stupide :

Comment je fais pour modifier la couleur et le nom du bouton "ouvrir"? Où je le trouve dans les propriétés?

J'arrive à modifier les couleurs et nom dans le Useform mais je ne trouve pas comment faire pour ce bouton.

Bonne soirée

Bonsoir

ngf1 a écrit :

ensuite une simple question qui va te paraître probablement assez stupide :

Aucune question n'est stupide c'est la réponse qui l'est

C'est un contrôle ActiveX, obtenu avec la barre d'outils "Boîte à outils contrôles" (Excel 2003)

Ensuite tu passes en mode création (en principe en cliquant sur le 1er contrôle de cette barre) et clic droit sur le bouton ----> Propriétés (les mêmes qu'un contrôle correspondant dans un Userform)

Merci pour la réactivité toute cette journée!

Et j'ai réussi grâce à ta réponse stupide.

Bonne soirée

Bonjour,

Maintenant que je suis lancé mes ambitions augmentent fortement.

J'ai modifié des choses dans ton code mais rien de majeur.

En revanche, j'ai de multiples questions : (j'ai déja cherché sur des forums)

1. Dans le premier MsgBox ( "Do you really...etc"), lorsque l'utilisateur clique sur "non", l'execution s'arrete (ce qui est normal) mais les choix fait dans les combobox disparaissent, est-ce possible qu'ils restent afficher (uniquement dans le cas où l'utilisateur clique non) ?

2. De manière générale, dans les MsgBox, est-il possible de modifier la police (taille, gras, etc...)? J'ai lu sur des forums que cela était impossible...

3. Dans le deuxième MsgBox "You have successfully... etc", j'ai un problème d'affichage : cela affiche la nouvelle valeur à la place de l'ancienne. J'ai essayé d'introduire une variable val qui conserverait l'ancienne valeur de la cellule correspondante mais ça ne marche pas. J'ai laissé cela en commentaire dans le code ComboBox 3. Pouvez-vous m'expliquer pourquoi cela ne fonctionne pas?

4. Dans l'état actuelle des choses, le comboBox1 propose un choix entre les mois listés dans l'onglet Background. Est-il passible de modifier cette liste de mois automatiquement en fonction des onglets existants?

5. Je voudrais savoir changer d'onglet le bouton active X Data Entering Tool présent dans l'onglet Manual Test : le déplacer de Manual Test à Ctrl. Peux-tu m'expliquer comment faire? Je me met en mode création. Je le coupe/colle dans l'onglet ctrl mais ensuite cela ne fonctionne pas quand je clique dessus...

Bonne soirée


Avec la pièce jointe....

Bonsoir

Des réponses dans le fichier

Bonsoir,

Je n'ai pas eu internet du weekend. Je te remercie donc maintenant.

J'ai un peu avancé depuis. Et la j'en suis à vouloir créer une liste de cellules vides.

J'ai créé un bouton 3 "empty cells". J'ai fait un petit code pour lister les cellules vides dans "CommandeBouton3_Click()". La liste apparait dans le commentaire en cellule A1 de la feuille "Manual Test"?

J'ai à ce sujet plusieurs problèmes :

  • la liste apparait mais pas exactement comme je le souhaiterai : les data apparaissent en fin de ligne alors que je souhaiterai qu'elles apparaissent en début de ligne. J'avoue avoir chercher mais ne pas avoir trouvé comment coder cela.
  • lorsque l'utilisateur clique sur le bouton "empty cells" dans le userform1, il doit choisir dans combobox2 les data puis dans combobox3 les pays avant de pouvoir visuliser la liste de cellules vides. Est-il possible que lorsque l'utilisateur choisi un mois dans combobox1, il peut soit cliquer sur "Empty Cells" et obtenir cette liste tout de suite, soit choisir ensuite une data dans combobox2?
  • Je souhaite ensuite pouvoir imprimer cette liste de cellules vides à l'aide d'un autre bouton. Que me conseilles-tu? La mettre sous une autre forme qu'un commentaire? J'avoue etre un peu sec sur le sujet car probablement trop inculte en vba.
A titre informatif, j'ai créé une macro qui s'autoexecute (module1) à l'ouverture du fichier et verrouille toutes les feuilles. Tu peux les déverrouiller à la main dans excel. J'aimerai d'ailleurs que ça ne soit plus possible à l'avenir, je rajouterai donc un mot de passe.

Merci encore pour ton aide.

Rechercher des sujets similaires à "fonction vba choix onglet menu deroulant"