• Initiateur de la discussion Initiateur de la discussion bcharef
  • Date de début Date de début

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 !

bcharef

XLDnaute Accro
Bonsoir à toutes et à tous.

Je souhaite d'avoir :

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.

Je vous remercie d'avance.

Cordialement.

Bcharef
 
Re : [Accueil] Code VBA

Bonjour Bcharef,

bcharef à dit:
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
 
Re : [Accueil] Code VBA

Bonsoir Excel-lent,
Bonsoir à toutes et à tous.

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.


Bcharef
 
Re : [Accueil] Code VBA

Re,

bcharef à dit:
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.

Macro à enregistrer dans Module.
Code:
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!

Si quelqu'un a une proposition...
 
Dernière édition:
Re : [Accueil] Code VBA

Bonsoir Bcharef, le fil,

bcharef à dit:
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

Bonne soirée
 
Re : [Accueil] Code VBA

Bonsoir Bcharef,

bcharef à dit:
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!!!

Bonne soirée à vous
 

Pièces jointes

Dernière édition:
Re : [Accueil] Code VBA

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.

Salutations distinguées.

Bcharef
 
Re : [Accueil] Code VBA

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.

Merci encore une fois.

Cordialement.

Bcharef
 
Re : [Accueil] Code VBA

Bonsoir Bcharef,

bcharef à dit:
Comme, je l'ai déjà signaler ci haut que, je suis un inexpérimenté en matière de VBA

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, ...)?
 

Pièces jointes

Dernière édition:
Re : [Accueil] Code VBA

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.

Salutations distinguées.

Bcharef.
 
Re : [Accueil] Code VBA

Bonsoir à tous !
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 !​
Bonne nuit !
ROGER2327
 

Pièces jointes

Re : [Accueil] Code VBA

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.

Bcharef
 
déplacements entre feuilles / listing onglets

Bonsoir Bcharef, Roger2327, le fil,

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.

Tout le monde devrait faire comme vous!
 

Pièces jointes

Re : [Accueil] Code VBA

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.


Affichage Zoom Ajusté à Sélection, entraide, FAQ, conseils, avis, Excel, Microsoft Office

Espérant bien que les liens cités ci haut, vous apporteront des idées.

Je vous remercie encore une fois pour le sacrifice que m'aviez accorder.

Meilleures salutations distinguées

Bcharef.
 
Re : [Accueil] Code VBA

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é.

Salutations distinguées.

Bcharef
 
Dernière édition:
- 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

Discussions similaires

Retour