Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
1- Une feuille d'un classeur qui, sera considérée comme feuille d'accueil regroupant l'ensemble des noms de chaque feuille et, après insertion d'autres feuilles, elle s'afficheront automatiquement sur la feuille d'accueil.
2- Toutes les feuilles ouvertes et masquées à l'exception de la feuille accueil devront comporter un bouton, soit accueil, qui nous permettra de nous rediriger vers la feuille d'accueil, après avoir cliquer dessus (bouton accueil), d'une part, et que la présente feuille soit masquer d'autre part.
3- Et, si, on clique sur un nom d'une feuille portée sur la feuille d'accueil, la feuille demandée s'affichera.
1- Une feuille d'un classeur qui, sera considérée comme feuille d'accueil regroupant l'ensemble des noms de chaque feuille et, après insertion d'autres feuilles, elle s'afficheront automatiquement sur la feuille d'accueil
En partant du le principe que :
-> ta feuille d'acceuil est la 1ère feuille
-> dans ta liste de feuilles tu les veux toutes, sauf la première
-> qu'en [A1] de la feuille d'acceuil tu es "Liste des onglets"
Cette macro devrait faire ton bonheur (à ne pas mettre dans module mais dans ta feuille d'acceuil).
Code:
Private Sub Worksheet_Activate()
Dim FeuilAct As String
Dim i As Long
FeuilAct = ActiveSheet.Name
For i = 2 To Worksheets.Count
Cells(i, 1) = Sheets(i).Name
Next i
Sheets(FeuilAct).Select
End Sub
En premier lieu, j'ai le grand plaisir de vous remercier d'avoir pencher sur le présent sujet.
En premier lieu, j'ai le grand plaisir de vous remercier d'avoir pencher sur le présent sujet.
Et, en réponse au premier principe, comme, vous l'aviez qualifié, et, après avoir tester votre code, j'ai constaté que, les noms des feuilles s'affichent en A1 comme texte et non pas comme lien.
Est-il possible de les afficher en B3, afin de nous permettre d'écrire le texte "SOMMAIRE" d'une part, et comme liens pour leur faire appels en cas de besoin de consulter la feuille "Feuille 6" comme exemple.
Il est à vous signaler que je suis un inexpérimenté en matière de VBA.
Comptant sur votre aimable collaboration, veuillez agréer Monsieur mes salutations distinguées.
2- Toutes les feuilles ouvertes et masquées à l'exception de la feuille accueil devront comporter un bouton, soit accueil, qui nous permettra de nous rediriger vers la feuille d'accueil, après avoir cliquer dessus (bouton accueil), d'une part, et que la présente feuille soit masquer d'autre part.
Sub MasquerAcceuil()
' Macro enregistrée par Excel-lent
' Va sur la page d'acceuil et masque la feuille où l'on était
Dim FeuilAmasquer As String
Dim i As Long
FeuilAmasquer = ActiveSheet.Name
Sheets(1).Select
Sheets(FeuilAmasquer).Visible = False
End Sub
Il ne te reste plus qu'à faire un joli bouton "Aller à l'accueil", lui affecter la macro ci-dessus. Puis dupliquer le bouton sur chaque onglet (sauf acceuil 😉 ).
bcharef à dit:
3- Et, si, on clique sur un nom d'une feuille portée sur la feuille d'accueil, la feuille demandée s'affichera
Et cela même si elle était masqué au préalable? Si oui, le code ci-dessous fera ton affaire (à coller sur la feuille "accueil" et non pas module)
Code:
Option Explicit
Private Sub Worksheet_[COLOR="Blue"]SelectionChange[/COLOR](ByVal Target As Range)
If Target.Column = 1 And Target.Row < Range("A1").End(xlDown).Row + 1 Then
Sheets(Target.Row).Visible = True
Sheets(Target.Row).Select
End If
End Sub
La seconde macro ici présente est une "private sub", celle dans mon précédent post aussi. Mais je ne sais pas si on peut en mettre deux sur une même feuille???
Les deux fonctionnent très bien séparément! Mais les deux ensemble, chez moi, ça bug!
Et, en réponse au premier principe, comme, vous l'aviez qualifié, et, après avoir tester votre code, j'ai constaté que, les noms des feuilles s'affichent en A1 comme texte et non pas comme lien.
La macro proposé dans mon second post, vous permettant d'aller sur la feuille... n'a pas besoin de lien!
Elle test la cellule où vous cliquez. Si vous cliquez sur la cellule [A3], la macro vous emmènera sur la feuille dont le nom est écrit en [A3]. Bref c'est un peu pareil, non?
En plus ça m'arrange, car n'ayant pas eu (jusqu'à maintenant) à utiliser les liens, je n'ai pas appris à m'en servir!
Je me penche sur votre nouvelle question et revient
Et, en réponse au premier principe, comme, vous l'aviez qualifié, et, après avoir tester votre code, j'ai constaté que, les noms des feuilles s'affichent en A1 comme texte
Voici ci-joint un fichier, ce sera plus simple en effet!
Tout est dedans, même la dernière macro permettant d'aller sur la feuille... en cliquant sur la page d'accueil sur la cellule contenant le nom de la feuille voulu.
Je l'ai juste désactivé en attendant que quelqu'un de plus qualifié que moi trouve la parade pour éviter le conflit
J'ai rajouté une macro + le bouton "pour ré-afficher tous les onglets d'un coup" sur la page d'accueil : "feuil1". Car sinon, il faut faire : "format" / "feuille" / "afficher" / sélectionner une feuille et recommencer ainsi de suite pour chacune!!!
Rebonsoir Excel-lent,
Rebonsoir à toutes et à tous.
Comme, je l'ai déjà signaler ci haut que, je suis un inexpérimenté en matière de VBA, je vous demande comment procéder à coller le code de la macro dans Module.
Et, si vous me permettiez et afin d’éviter tout type de trouble de ma part envers vous, j'ai la satisfaction de vous demander de bien vouloir me joindre un fichier à titre indicatif.
Je vous remercie encore une fois pour le temps que, vous m'accordiez pour la résolution du dite sujet.
Rebonsoir Excel-lent,
Rebonsoir à toutes et à tous.
Je vous remercie pour votre réflexe au temps que, je voulais vous demander de me joindre un fichier.
Voilà, je vous joint un code qui répond au premier principe, proposé par Monsieur JB, mais ça ne colle pas.
Code:
Private Sub Worksheet_Activate()
[C5:C100].ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 6, 3), Address:="", SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
Cells(i + 6, 4) = i
Next i
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then
nf = Target
On Error Resume Next
Sheets(nf).Visible = True
End If
End Sub
Espérant bien que ce code demeurera comme une bonne piste.
Il est à noter qu'aprés avoir insérer une nouvelle feuille, le bouton "Allez sur la page d'accueil n'apparait pas, mais lorsque, je procède à créer une copie ca marche.
J'en ai conscience. Et j'ai également vu que les spécialistes du VBA ne semblait pas là en ce moment. Donc dans l'impossibilité de m'aider à vous aider!
C'est pourquoi, depuis tout à l'heure, je cherche, me documente, apprend de nouvelles astuces pour pouvoir vous apporter un produit fini et utilisable.
J'ai le plaisir de vous annoncer que j'ai trouvé. Voici ci-joint le fichier fini.
J'en ai profité pour modifier le code, pour que les fichiers s'écrivent de [B3 à B...] comme demandé.
Ma solution de cliquer sur la cellule contenant le nom de l'onglet vous convient? (au lieu de la technique du lien?).
Si vous tenez absolument à la technique du lien et conscient de mon incompétence dans ce domaine, je peux vous proposer deux astuces que je me propose de vous faire :
-> que la police du nom des feuilles en [B3 à B...] soit en bleu et souligné Ce qui fera croire à la personne lambda que c'est un lien 😀 (mais lors de son survol par le curseur, ce dernier restera sous l'apparence d'une flèche et ne se transformera pas en main).
-> trier le nom des onglets par ordre alphabétique
Merci pour tous vos remerciements.
Dans l'attente de vos remarques, pour modifier le fichier ci-joint selon vos préférences.
Cordialement
Excel-lent
Edition 1. : pas vu votre post de 23H57! avant de poster ce message! Edition 2. : ni la proposition de JB!?!?!? Ca maîtrise du VBA étant à des années lumières de la mienne, je n'ai pas les compétences nécessaire pour pouvoir modifier/adapter son code! Je suis désolé Edition 3. : pour le bouton "aller à l'accueil" je n'ai pas automatisé sa création, c'est donc normal qu'à chaque nouvelle création de feuille, il ne se rajoute pas automatiquement. Je traiterais cette oubli en même temps que vos remarques suite à ce présent message.
PS. : le bouton, vous le voulez où? Sur la cellule [A1] ou ...? Comment voulez vous le bouton (forme, couleur, le texte pour le message, ...)?
Rebonsoir Excel-lent,
Rebonsoir à toutes et à tous.
Sincèrement, c'est beau de vous lire.
En, ce moment vous êtes sur la bonne voie, afin d'atteindre l'objectif voulu.
Comme, il est à signaler que lorsque, j'insère ou je créé une feuille et, je la supprime par la suite, son nom demeure afficher sur la feuille d'accueil.
Suite à vos deux propositions considérées comme astuces, j'opte pour la première soit: en bleu et souligné, mais en croyant toujours à vos compétences, ainsi que la célérité des réponses brillantes à la fois.
Au sujet du code proposé par Monsieur JB, je l'ai transmis à titre d'exemple et non pas pour modification mais, seleument pour voir son fonctionnement ,et ,de le substituer par le votre dans la possibilité de mesure.
Je ne sais pas comment vous remercier pour le temps que vous me réserviez.
Je constate que, pendant que je me penchais sur la question, vous avez vite répondu. Je livre toutefois ma proposition sous la forme du classeur joint. Je n'utilise ni lien ni bouton. Je propose les fonctionnalités suivantes (voir la feuille "Accueil" du classeur joint pour suivre...) :
Un double-clic sur "Onglet" (en A1) affiche toutes les feuilles du classeur.
Mais il n'est pas nécessaire d'afficher toutes les feuilles :
Un double-clic dans la colonne A active la feuille correspondante.
La combinaison de touche Alt + < renvoie à la feuille "Accueil". Pour modifier cette combinaison de touches, éditer le code de ThisWorkbook
Code:
Option Explicit
Private Sub Workbook_Activate()
' Créé le 22 Nivôse CCXVII
' ROGER2327 fecit
Application.OnKey [COLOR="Red"]"%<"[/COLOR], "Accueil"
End Sub
Private Sub Workbook_Deactivate()
' Créé le 22 Nivôse CCXVII
' ROGER2327 fecit
Application.OnKey [COLOR="Red"][B]"%<"[/B][/COLOR], ""
End Sub
et modifier la partie de code en rouge.
Ne pas renommer les feuilles en modifiant les onglets : pour renommer une feuille, mettre le nouveau nom dans la colonne "Renommer...", puis double-cliquer sur le nouveau nom.
Une trace des manipulations diverses (suppression de feuilles, changement de nom...) est conservée en fin de liste. Les feuilles ayant disparu sont cotées ND dans la colonne Index. On peut supprimer les lignes indésirables à volonté.
Contrainte : Ne pas laisser de ligne vide entre les données dans la colonne A de la feuille "Accueil".
En parfait autodidacte, je ne sais pas ce que tout cela vaut : votre avis m'intéresse. Merci d'avance !
Bonjour Excel-lent & ROGER2327,
Bonjour à toutes et à tous.
ROGER2327
Je vous remercie infiniment d'avoir penché sur la question.
Je trouve que les fonctionnalités proposées par vos soins sont très intéressantes , en l'absence d'un bouton de renvoie à la feuille d'accueil, qui a été substitué par un raccourci "Alt + <", ainsi que , les autres feuilles à l'exception de la feuille d'accueil demeurent toujours afficher et non masquer.
Comme, il est utile de porter à votre connaissance que, je suis un ignare en la matière (VBA).
Je vous remercie encore une fois.
Excel-lent
Additivement au poste , j'ai le plaisir de vous demander de bien insérer des boutons au lieu des formes géométrique dans la possibilité de mesure.
Merci encore une fois.
Veuillez, agréer mes salutation distinguées messieurs Excel-lent & ROGER2327.
1. Concernant le problème des boutons, j'ai essayé différentes méthodes, mais je n'arrive à rien! Ca coince toujours quelque part! (avec Excel, quelque soit son niveau, on a toujours à apprendre! 🙂).
Grâce à ROGER2327, j'ai pensé à l'astuce du déclenchement d'une macro grâce à l'appuie d'une touche! Au moins ça, c'est dans mon domaine de compétence 😀
Je l'ai donc mis en place dans le fichier ci-joint.
Où que vous soyez dans votre fichier, si vous voulez "masquer l'onglet où vous vous trouvez et aller sur l'onglet 'acceuil', bref déclencher la macro, il faut appuyer sur "Ctrl+W"
Vous pouvez changer la lettre W par celle de votre choix! J'ai pris celle-ci car c'était la plus près de la touche "Ctrl" donc plus simple pour le faire avec qu'une main, laissant ainsi l'autre libre pour boire le café 🙂
Pour remplacer la touche "W" par ... :
"Outils" / "Macro" / "Macros" / sélectionner la macro 'MasquerAcceuil' (un seul clic) puis cliquer sur le bouton "options..." et remplacer la lettre W par ...
2.
Bcharef à dit:
Comme, il est à signaler que lorsque, j'insère ou je créé une feuille et, je la supprime par la suite, son nom demeure afficher sur la feuille d'accueil.
En faite pour que la liste des onglets (sur l'onglet "accueil") se mette à jour, il faut cliquer sur l'une des cellules de l'onglet (n'importe quelle cellule, sauf une contenant un nom d'onglet). J'ai cherché d'autre solution, mais ça bug.
Pour déclencher une macro automatiquement, il y a plusieurs méthodes :
-> déclenchement à l'ouverture du fichier
Code:
Private Sub Workbook_Open()
-> déclenchement suite au clic dans une cellule (celle que j'ai utilisé)
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
-> déclenchement suite au doubleclic (comme proposé par ROGER2327)
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
-> déclenchement suite à la saisie dans une cellule
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
-> déclenchement suite à la saisie dans une cellule ou plage de cellule d'un texte ou chiffre précis.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If cells(target.Row,target.Column) = "[I]écrire ici son mot, sa phrase, le nombre, ...[/I]"
Sinon il existe aussi la possibilité, plus classique, de déclencher une macro suite au clic sur un bouton ou dessin.
Il en existe pleins d'autres, mais je ne l'ai connais pas et n'ai pas trouvé de tutoriel sympa sur le sujet.
J'ai donc pris celle qui me semblait correspondre le mieux à vos besoins (et que j'arrive à faire fonctionner).
3. Concernant la police en bleu et le soulignement, c'est fait
Bcharef à dit:
Je ne sais pas comment vous remercier pour le temps que vous me réserviez
J'ai remarqué que vous posiez des questions, mais également qu'en retour vous répondiez aux internautes posant des questions dans votre domaine de compétence.
Je trouve cela super sympa de votre part. Aidez des gens comme vous, c'est toujours un plaisir.
Bonsoir Excel-lent & ROGER2327,
Bonsoir à toutes et à tous.
Après mes diverses recherches du lien qui permettra de bien expliquer mon souci d'une part et qu'il pourra vous jaillir quelques lumières, dont, je n'ai pas pu l'exploiter d'autre part.
Il s'agit d'un fichier zippé génial sous le n° 267 du site excelabo.net.
Ce lien n'existe plus
Comme, il est nécessaire encore une fois de vous joindre un deuxième lien portant sur la modification de la macro du dit fichier.
Rebonsoir Excel-lent & ROGER2327,
Rebonsoir à toutes et à tous.
Excel-lent
Le test du fichier dont, vous m'aviez transmis m'a permis de constater ce qui suit :
-Si, on insère une nouvelle feuille, son nom ne s'affiche pas sur la feuille d'accueil.
-Si, on laisse uniquement la feuille d'accueil affiché, et on demande la feuille "Angélique" comme exemple et on tape le racourci (Ctrl+W), on remarque qu'une boite de dialoque qui apparait "voulez-vous enregistrer les modifications apportées à 'Feuille active.xsl'?
Et, j'en profite de l'occasion, de vous remercier des efforts que vous aviez consentis, afin d'atteindre l'objectif tracé.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD