Rechercher dans ce blog

Nombre total de pages vues (en milliers)

FORMULAIRE EXPLOITABLE SUR PLUSIEURS ONGLETS


Pour qu'un formulaire soit exploitable sur plusieurs onglets (ou feuilles) du classeur, il est important de modifier notre fichier source (Procédure décrite dans "Créer son formulaire").

Tout d'abord nous allons ajouter une Combobox qui va nous servir à naviguer dans notre classeur en choisissant  le nom de l'onglet dans la liste déroulante.

1) Insérer la Combobox  et attribuer lui le nom "ONGLET".


Ensuite compléter le programme  "Private Sub UserForm_Initialize()  en y ajoutant le texte suivant :
Dim ER As Worksheet

ONGLET.Clear
For Each ER In ThisWorkbook.Worksheets
 If ER.Name <> "vierge" Then
  ONGLET.AddItem ER.Name
 End If
Next ER


Code permet de lister les onglets présent dans le classeur  sous forme de liste déroulante dans votre formulaire.

2) Maintenant nous allons programmer cette Combobox pour lui indiquer qu'à chaque choix dans la liste déroulante cela implique l'activation de l'onglet choisi.

Ajouter le programme suivant au formulaire :

Private Sub ONGLET_Change()
If ONGLET.ListIndex > -1 Then 'Si la sélection est valide
'On active la worksheet dont le nom est contenu dans la combo


ThisWorkbook.Worksheets(ONGLET.List(ONGLET.ListIndex)).Visible = True
ThisWorkbook.Worksheets(ONGLET.List(ONGLET.ListIndex)).Activate
Unload Me ' Ferme le formulaire
UserForm1.Show 'Ouvre le formulaire

End If
End Sub


Vous avez surement noté que dans cette programmation je ferme le formulaire pour le ré-ouvrir tout de suite, l'explication est à suivre.

3) Petit changement modification dans le programme Initialize

Set Ws = Sheets("FICHIER ADRESSES")  modifiez cette ligne par Set Ws = Sheets(ActiveSheet.Name) le choix ne se fait plus sur l'onglet "FICHIER ADRESSES" mais sur le nom de la feuille Active.


Le fait de fermer et d'ouvrir le formulaire permet au programme Initialize de remonter les informations de la feuille active.... Je n'ai trouvez que cette solution pour l'instant mais elle fonctionne.

Donc vous pouvez utiliser le formulaire pour remplir les onglets identiques......A vous de jouer.


Voici un exemple disponible 
EXEMPLE



11 commentaires :

  1. Bonjour et merci pour ce vba
    j'ai un tableau dans chaque onglet format identique,nombre de colonnes identique, nombre de lignes différent.
    quand j'utilise le formulaire pour un onglet OK ça marche,création d'une nouvelle ligne dans le tableau
    je change et rajoute vos propositions de vba pour gérer plusieurs onglets.
    pour afficher le nouvel onglet OK ça marche
    je remplis le formulaire ça réécris bien dans les bonnes colonnes mais le positionnement de la ligne reste sur le numéro de la ligne de l'onglet précédent et donc hors tableau
    onglet A Premier tableau représentant un inventaire 60 lignes,onglet B deuxième tableau représentant un autre inventaire de 30 lignes,le formulaire réécris sur la ligne 61...

    autre soucis. suppression de ligne engendre la suppression de toute la ligne excel infini,donc cela me supprime en dehors du tableau mes autres paramètres

    RépondreSupprimer
    Réponses
    1. Bonjour !
      J'ai rencontré la même erreur que toi et je me permets donc une petite remarque : il faut penser à remplacer le nom de l'onglet "FICHIER ADRESSES" de l'exemple par ActiveSheet.Name à tous les endroits du code :)
      Je me suis fait avoir la première fois la dessus !
      Bonne journée à tous !

      Supprimer
  2. Bonsoir Thierry
    Aie.... difficile de résoudre le problème sans fichier.... merci de m'envoyer ton fichier via Google+ ou réponds moi via Hangouts.... Nos échanges vont peut être servir à tous.
    Emile

    RépondreSupprimer
    Réponses
    1. Bonjour Thierry,
      J'ai eu un petit doute donc j'ai regardé à nouveau mon code...rien d'anormal et tout fonctionne.... il doit y avoir, dans ton fichier, une erreur de code ou autre.
      N'hésites pas à me faire suivre ton fichier... je ferai les modifications nécessaires (un peu d'entraide entre Brestois)
      Emile

      Supprimer
  3. Bonjour,
    Je débute l'usage du FORMULAIRE dans Excel et je trouve vos démos très intéressantes et bien expliquées. Je vous en félicite et vous remercie de mettre à la portée des débutants vos connaissances.
    Cette démo du formulaire exploitable sur plusieurs onglets m'amène à la question suivante : "Faut-il créer le FORMULAIRE dans un onglet spécifique ?"
    Je vous remercie par avance de votre attention ainsi que de votre réponse.
    Cordialement.

    RépondreSupprimer
  4. Re-Bonjour,
    Merci de votre réponse.
    Je vois que j'ai encore beaucoup de chemin à parcourir pour bien maîtriser mais l'important est la persévérance !
    Ok sur la structure des feuilles mais qq chose m'échappe et peut-être ai-je mal formulé ma question.
    Dit autrement, faut-il un bouton d'accès (d'appel) du formulaire sur la feuille de chacun des mois ?
    J'essaie de réaliser une gestion de compte avec soldes instantané et bancaire, ce dernier prenant en compte les règlement différés.
    Bien entendu, en parallèle, je restitue toute une panoplie de statistiques et graphiques (damaine, type, nature, etc...)
    Cela fonctionne déjà très bien mais en gestion directe dans différentes feuilles.
    J'aimerais pouvoir alimenter ce tableau via un formulaire.
    Merci de votre accueil ainsi que de votre réponse.
    Cordialement.

    RépondreSupprimer
    Réponses
    1. JL00700

      Effectivement il y a plusieurs manières d'ouvrir un formulaire même si dans notre cas il est utilisé pour plusieurs onglets.
      1) Soit il s'ouvre à l'ouverture du fichier.
      2) Soit il y a un bouton à cliquer sur chaque feuillet pour accéder au formulaire
      3) Soit un raccourci clavier du genre Ctrl+Maj+une touche
      4) Soit double clic sur une plage de cellule.... de chaque feuillet

      Donc beaucoup de possibilité..... Une bonne idée à développer dans le forum
      Pour l'instant je peux vous aider si vous me faites parvenir un fichier simple à l'adresse mail suivante : blog.cellulexce@gmail.com
      A bientôt
      Emile

      Supprimer
  5. Bonjour
    J'ai effectuer la même chose et je voudrais savoir si l'on veux faire apparaître dans le formulaire dans l'entête de chaque table surf des textbox comment on s'y prend?

    RépondreSupprimer
  6. J'ai appris beaucoup de choses.
    Merci infiniment et bonne continuité.

    RépondreSupprimer

Pour vous aider à publier votre commentaire, voici la marche à suivre :
1) Ecrivez votre texte dans le formulaire de saisie ci-dessus
2) Si vous avez un compte, vous pouvez vous identifier dans la liste déroulante Commentaire
Sinon, vous pouvez saisir votre nom ou pseudo par Nom/URL
3) Vous pouvez, en cliquant sur le lien S'abonner par e-mail, être assuré d'être avisé en cas d'une réponse
4) Cliquer sur Publier enfin.

Le message sera publié après modération.
Merci