Afficher de certaine feuille dans une combo

Bonjour à tous,

Donc voilà, après plusieurs recherche au travers de plusieurs forum, j'arrive finalement au bout de mon projet mais quelques problème persiste. Je tiens à préciser que je ne suis pas très fortiche en VBA mais j’apprends (du moins j'essaye ).

Explication du projet :

Je suis en train de simplifier l'utilisation d'une feuille de pointage hebdomadaire de la société pour laquelle je travail, je vous présente ce projet afin que vous puissiez comprendre mon ou mes problèmes.

C'est un tableau Excel contenant plusieurs élément notamment le lieu du chantier, le numéro de la semaine, le nom de l'intervenant puis ensuite les heures...etc...

Dans ce classeur, il y a plusieurs feuille

"MATRICE" >> cette feuille est dupliquée dès le démarrage du classeur puis masqué (au passage elle à nommée sa duplication "VIERGE")

"LIST_NOM" >> cette feuille contient les noms des intervenants, ils sont représentés dans une liste déroulante sur la feuille "MATRICE"

"LIST_SITES" >> cette feuille contient les sites sur lesquels nous travaillons représenté également via une liste déroulante sur la feuille "MATRICE"

"LIST_SEM" >> cette feuille contient les numéros de semaine , représenté via une liste déroulante sur la feuille "MATRICE"

concernant la feuille "VIERGE": un bouton de commande lui est associé nommé "pointage suivant", il permet de nommer la feuille en cour en fonction de la cellule "nom" puis de créer une nouvelle nommée "VIERGE" a partir de la "MATRICE".

ça... ça fonctionne

Passons au problème... ah ah ah

J'ai donc crée une barre d'outil contenant plusieurs USF et boutons

1 bouton "Pointage suivant" (il fonctionne)

1 bouton "Convertir en PDF" là j'ai un soucis, je m'explique :

Ce bouton est lié à un UserForm, ce UserForm contient :

une ComboBox >> elle sert à afficher les feuilles de pointages réalisées SAUF "MATRICE"; "VIERGE"; LIST_SEM"; LIST_NOMS"; LIST_SITES;

Cela ne fonctionne pas, voici le code:

Private Sub UserForm_Initialize()
Listerfeuille
    ComboBox1.ListIndex = 0
    ComboBox1.RemoveItem (0)
    ComboBox1.RemoveItem (1)
    ComboBox1.RemoveItem (3)
    ComboBox1.RemoveItem (2)
    ComboBox1.RemoveItem (4)
End Sub

Sub Listerfeuille()
Dim Feuille As Object
    For Each Feuille In Worksheets
    ComboBox1.AddItem (Feuille.name) 'remplissage du combo
    Next Feuille
End Sub

Il ne me cache pas les bonnes feuilles.

Cela doit être dû à un problème d'Index mais j'ai tout essayé (à mon niveau)

Voici donc mon premier soucis, les autres ferons certainement l'objet d'un nouveau sujet, sauf si un modo me permet d'utiliser ce même poste.

Merci à tous de consacrer du temps pour les gens comme moi

Bonne journée a tous

christian

Je vous joint le fichier si ça peut aider...

62pointage-auto.xlsm (232.69 Ko)

Re-Bonjour,

En faite je crois avoir cerné le problème (mais j'ai toujours pas la solution

C'est au niveau des feuilles, elles n'ont jamais le même emplacement donc l'Index change

Voici ce qu'il faudrait faire je pense :

Les feuilles : "MATRICE"; "VIERGE"; "LIST_NOMS"; "LIST_SEM"; "LIST_SITES doivent toujours avoir le même emplacement ET quand je clique sur le bouton "POINTAGE SUIVANT" la feuille qu'il me nomme il doit me la placer absolument a la fin du classeur.

Et là je cherche la solution...

Je suis à votre disposition pour information,

Merci à tous

Bonjour

cco86260 a écrit :

une ComboBox >> elle sert à afficher les feuilles de pointages réalisées SAUF "MATRICE"; "VIERGE"; LIST_SEM"; LIST_NOMS"; LIST_SITES;

Remplaces les 2 macros dans ton Userform To_PDF

Private Sub UserForm_Initialize()
Listerfeuille
'    ComboBox1.RemoveItem (0)
'    ComboBox1.RemoveItem (1)
'    ComboBox1.RemoveItem (2)
'    ComboBox1.RemoveItem (3)
'    ComboBox1.RemoveItem (4)
'    ComboBox1.ListIndex = 5
End Sub

Sub Listerfeuille()
Dim Feuille As Object
  For Each Feuille In Worksheets
    Select Case UCase(Feuille.name)
      Case "MATRICE", "LIST_NOMS", "LIST_SEM", "LIST_SITES", "VIERGE"
      Case Else
        ComboBox1.AddItem (Feuille.name) 'remplissage du combo
    End Select
  Next Feuille
End Sub

Une question : Quel bouton pose problème ?

Bonjour Banzai64,

Merci pour ton code, ça fonctionne nickel !

J'ai encore quelque problème de VBA concernant certaines fonctions que je souhaiterais intégrer, j'ai l'idée mais pas la connaissance

Mais j'apprends XD

Quand je clique sur convertir en PDF, il ne se passe rien et ce que je voudrais ce serais :

quand je clique dessus il me créer un dossier nommé POINTAGE-Sxx ou xx représente le numéro de la semaine en O9 en prenant compte que ce numero de semaine en O9 est une liste déroulante.

Comme tu as pu le voir j'ai le code sur le USF To_PDF sur le bouton créer un dossier mais il ne fonctionne pas parfaitement, il fonctionne jusqu’à 5 et après ???

Est ce que je peux tout mettre sur le même poste ou pour le reste j'en créer un nouveau ?

En tous les cas merci pour ton aide

Christian

Bonjour

Si ce n'est plus en rapport avec ton titre/demande il vaut mieux clore le post et en ouvrir un autre

La personne qui a répondu à ton problème ne peut peut-être pas répondre à ton autre souci

Et souvent les sujets "entamés" (ayant une réponse) n’intéressent pas/peu les membres

Mais pour augmenter les chances d'avoir des réponses penses à joindre un fichier exploitable

Le dernier que tu as joins ne peut pas faire l'affaire, car aucune page n'est listée dans la ComboBox

Que faut il que je fasse ? faire apparaitre toutes les feuilles et détailler précisément ce que je veux ?

Bonsoir

Toutes le feuilles peut-être pas

Mais bien expliquer ce que tu veux

Salut Banzai64,

Le problème à été solutionné, je te donne le code pour info si ça te dit :

Private Sub UserForm_Initialize()
Listerfeuille
'    ComboBox1.RemoveItem (0)
'    ComboBox1.RemoveItem (1)
'    ComboBox1.RemoveItem (2)
'    ComboBox1.RemoveItem (3)
'    ComboBox1.RemoveItem (4)
'    ComboBox1.ListIndex = 5
End Sub

Sub Listerfeuille()
Dim Feuille As Object
  For Each Feuille In Worksheets
    Select Case UCase(Feuille.name)
      Case "MATRICE", "LIST_NOMS", "LIST_SEM", "LIST_SITES", "VIERGE"
      Case Else
        ComboBox1.AddItem (Feuille.name) 'remplissage du combo
   End Select
  Next Feuille
End Sub

Voilà, sinon j'ai fais un nouveau poste... intéressé ?

https://forum.excel-pratique.com/excel/inser-un-nom-dans-une-colonne-via-une-textbox-t44955.html

Bonne journée,

Christian

Bonjour

cco86260 a écrit :

Salut Banzai64,

Le problème à été solutionné, je te donne le code pour info si ça te dit :

Oui ça me dit quelque chose c'est le code que je t'ai donné quelques message plus haut

Re,

Quel C.. de moi, complètement...

J'ai honte !!

Y a peut être pas que dans le VBA que j'ai des soucis

Dsl,

As tu vu mon nouveau poste ? je cherche encore la solution...

Bon après midi,

Christian

Rechercher des sujets similaires à "afficher certaine feuille combo"