Macro qui se lance à l'ouverture du fichier

Bonjour,

Je joins ma macro, celle ci fonctionne bien, en revanche elle se lance et plante à l'ouverture du fichier. Je ne comprends pas pourquoi.
Si quelqu’un à une idée je suis preneur.

Merci d'avance.

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'SELECTION LISTE DEROULANTE VARIABLE

Dim MesDonnees
MesDonnees = Range("TABLE1").Address(0, 0)
Me.ComboBox1.ListFillRange = MesDonnees

End Sub
Private Sub ComboBox1_Click()
' OUVERTURE DES ONGLETS PROMOS QUINZAINE

Range("J1").Value = Me.ComboBox1.Value
Sheets("ACCUEIL").Select
Worksheets([J1].Text).Visible = True
Worksheets("ACCUEIL").Calculate
Worksheets([J1].Text).Select

End Sub

Bonjour,

Ces deux macros sont exécutées lors du double click ou du click dans la combobox1. Pour ouverture du fichier ?

Peut être ceci

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'SELECTION LISTE DEROULANTE VARIABLE
Me.ComboBox1.List = Range("TABLE1").Value
End Sub
Bonjour,

Merci de ta réponse, mais cela n'a pas permis de régler le problème.

Cordialement

Xavier

Bonjour

Comme je vous ai dit, je ne vois pas pourquoi ces deux codes font planter l'ouverture de l'userform puisqu'ils ne sont exécutés que si vous agissez sur la combobox1.

Mettez votre fichier en ligne sans données confidentielles, ce sera plus simple

Cordialement

Bonjour,

Merci de votre aide, voici le fichier.

Bonne journée.

Cordialement.

Xavier

Re bonjour,

Je prolonge ma démarche.

Existe t'il une macro qui permet de comparer ce qui est dans une cellule excel et le choix dans une Combobox et de lancer l'action si différente?

Merci d'avance à toutes et à tous de votre aide.

Xavier

Re, à la lecture du fichier j'ai quelques questions :

1. Pourquoi avez-vous mis des # devant chaque nom de feuille ?
2. Dans la feuille Accueil, vous avez mis des macros dont une Useform1.initialize et il n'y a pas d'userform. On peut supprimer ce code
3. Le code Private Sub ComboBox1_DblClick dont vous parlez ne sont pas dans le fichier.

Donc là expliquez moi ce que vous voulez faire à l'ouverture du fichier car si j'ai compris, à l'ouverture vous voulez afficher la feuille Accueil uniquement et ensuite faire un choix dans les combobox sur cette feuille

A vous relire

4. Edit :

Votre souci sur le code Private Sub ComboBox1_Click(), vient du fait que lors de l'ouverture du fichier excel passe en revue tous les objets de type combo sur vos feuilles afin de les remplir des infos que vous avez mis dans les propriétés de l'objet.
Le code est dans la feuille Selection Quizaine et plante parce qu'elle est masquée. Vous pourriez éventuellement mettre un On Error Resume next juste avant la ligne Sheets("#SELECTION QUINZAINE").Select
Mais je me demande aussi pourquoi vous avez mis une combo dans cette feuille sachant que la liste de validation en A3 comporte les données. Là vous pourriez supprimer cette combobox et laisser la liste de validation. Cela éviterait du coup le plantage.

Maintenant, je pense que ce serait intéressant de faire une passe sur tout votre projet. Je peux voir pas à pas si vous le voulez.
En premier on pourrait déjà supprimer les deux codes Private Sub CommandButton1_Click() qui se trouvent dans les feuilles SelectionB et SelectionC. Ils sont reliés au code Fermeture

Bonjour,

Merci beaucoup pour l'aider apporter.

Pour essayer d'être plus clair.

Ce fichier est à destination de plusieurs utilisateurs, en fait il fonctionne en cascade.

Ils arrivent sur l'onglet accueil sur lequel ils font un 1° choix en fonction du besoin: Quinzaine, mensuel etc.

Ensuite s'ils font le choix quinzaine ou mensuel ils font un deuxième choix en fonction de la période choisie B C etc

En espérant avoir été assez clair.

Cordialement

Xavier

Re

1. Vous ne répondez pas aux questions que je vous ai posées dans mon post précédent. Si vous voulez que je me penche sur le fichier, merci de préciser sur chacun des points.

2. Ils arrivent sur l'onglet accueil sur lequel ils font un 1° choix en fonction du besoin: Quinzaine, mensuel etc.

Il y a 4 combobox. Laquelle en premier ?

3. Ensuite s'ils font le choix quinzaine ou mensuel ils font un deuxième choix en fonction de la période choisie B C etc

Quel deuxième choix ?

Si je choisis dans la première combobox "sélection Quizaine", il ne se passe rien de plus à part mettre une valeur en J1

Bonjour,

1. Pourquoi avez-vous mis des # devant chaque nom de feuille ? Car cela identifie le nom de chaque période

2. Dans la feuille Accueil, vous avez mis des macros dont une Useform1.initialize et il n'y a pas d'userform. On peut supprimer ce code C'est un fichier de test je n'ai pas supprimer toutes les macros inutiles, donc oui je peux la supprimer.

3. Le code Private Sub ComboBox1_DblClick dont vous parlez ne sont pas dans le fichier. Idem réponse précédente

L'objectif est de permettre à l'onglet de s'ouvrir automatiquement en fonction du choix, il en est de même pour l'onglet quinzaine (12 périodes) et mensuel (6 périodes).

En espérant avoir été assez clair.

Cordialement.

Merci de vos réponses

Point 1 : Pour moi on peut supprimer les #devant les noms et les boutons d'options. Ils ne servent pas puisque vous voyez directement le choix effectué dans la combo.

Points 2 et 3 : ok

L'objectif est de permettre à l'onglet de s'ouvrir automatiquement en fonction du choix, il en est de même pour l'onglet quinzaine (12 périodes) et mensuel (6 périodes).

NB : ref aussi à mon point 4 : on peut supprimer la combobox en A2 dans la feuille selection quinzaine. La liste déroulante en A3 suffira.


5. Si on choisit sélection Quinzaine dans la combobox, cela doit afficher la feuille correspondante. idem pour les autres combobox présente sur la feuille Accueil
6. Quel est le but de l'information en cellule J1 de la feuille accueil
7. Juste une suggestion, j'aurais placé vos listes des colonnes A à G dans une feuille séparée "Listes" par exemple

Merci à vous,

Le # ne sert qu'a identifier la période, ce n'est qu'un titre utilisé dans les communications.

Pour la cellule J1, cela me servait de repaire pour vérifier que l'information passait bien, et aussi j'avais une macro qui tournait dessus pour ouvrir l'onglet considéré.

Dont voici le détail :

Private Sub ComboBox1_Cick()

Sheets("ACCUEIL").Select
Worksheets([J1].Text).Visible = True
Worksheets("ACCUEIL").Calculate
Worksheets([J1].Text).Select

End Sub

Au moment ou j'ai commencé, je ne savais pas qu'il était possible de créer les listes dans un onglet à part.

Encore une fois merci de votre aide.

Xavier

Le # ne sert qu'a identifier la période, ce n'est qu'un titre utilisé dans les communications.

Vous pouvez donner un exemple ?

Au moment ou j'ai commencé, je ne savais pas qu'il était possible de créer les listes dans un onglet à part.

Je vais les remplacer dans une feuille Liste. Si ok pour vous pouvez vous me donner un nom de titre de chaque colonne. En attendant je les ai appelées Table1, 2, 3 et 4

Lors du choix dans la combobox, il y a plusieurs feuilles qui ne correspondent pas au choix dans la liste. Cela provoque donc un bug lors du choix notamment à cause du #. Quelles sont les correspondances dans le fichier ?

Pour les listes elles peuvent rester sous le nom table 1 etc.

Chaque période est définie de la façon suivante: #SELECTIONB qui correspond à une quinzaine puis #SELECTION C à la 2° quinzaine etc. ou pour les données mensuelles #SELECTIONB_C 1° période mensuelle et #SELECTIOND_E 2° période etc.

Toutefois si les # posent problème vous pouvez les retirer.

- Ok pour les noms Table

- J'ai enlevé le # du nom des feuilles. Reste à voir comment vous voyez la correspondance entre le choix dans la combo et le nom de la feuille à atteindre.

Un grand merci pour votre aide.

Il faudrait que lorsque l'utilisateur clique sur un choix dans la combo, cela ouvre la feuille concernée.

J’espère avoir été assez clair dans cette réponse.

Bonjour

Il faudrait que lorsque l'utilisateur clique sur un choix dans la combo, cela ouvre la feuille concernée.

Ok, mais il faut que je sache à quelle feuille correspond le choix. Si je prends la première combobox, c'est Ok pour sélection mensuelle et Quinzaine. Mais pour les 3 autres ?

Exemple : Collection vins est nommé --> 14 - Collection Vins. Je supprime le 14 ?

Si vous voulez garder les noms de feuille actuels ou pas

Je peux aussi vous renvoyer votre fichier si vous souhaitez regarder les modifications

Bonjour,

Je veux bien que vous me renvoyer le fichier, de cette façon je pourrai être plus précis sur le nom des onglets.

Encore une fois un grand merci.

Cordialement.

re

Votre fichier en retour avec les modifications :

1. Feuille Accueil :
- Modification des codes d'accès. Il faut cependant changer les noms de feuilles pour qu'ils correspondent au choix dans les liste dérouantes
- les noms de feuilles sont chargées dans les combobox à l'ouverture du fichier et supprimées lors de la fermeture du fichier (voir les code dans Thisworkbook
- Modifié un peu le placement des combobox
2. Feuille Sélection Quinzaine :
- supprimé la combobox A2. Le choix se fait en A3 via la liste de validation dont j'ai modifié la formule
- supprimé les #. J'ai également supprimé dans la feuille Engagements pour que les formules apparaissent en colonne D et E
3. Dans l'éditeur VBA :
- Regroupé les codes ouverture dans le Module 3. Modifié les macros pour simplifier la lecture.
- Enlevé le # devant le nom des feuilles. Toutefois il reste à enlever dans le cellule de chaque feuille puis à réadapter les codes
4. Ajout d'une feuille Listes qui reprend les noms utilisés dans les listes déroulantes de la feuille Accueil

J'ai modifié pas mal de choses qui vont impliquer quelques bugs mais bien entendu je continue pas à pas en fonction de vos informations. Ce fichier est une première approche.
Je pense qu'en premier il faut figer le nom des feuilles en fonction des listes déroulantes de la feuille Accueil. Si vous ne pouvez pas changer, on peut trouver une autre solution.

Bonjour,

Je regarde tout cela au plus vite et je vous tiens informé.

Cordialement.

Rechercher des sujets similaires à "macro qui lance ouverture fichier"