Tableau croisé dynamique et ouverture nouvelle feuille

doublenico

XLDnaute Junior
Bonjour,

Sur un fichier, j'ai un tableau croisé dynamique, jusque là, pas de soucis.
Lorsque l'on clique sur une donnée du tableau, un nouvel onglet s'ouvre avec les informations correspondantes.
Ma problématique est la suivante :
au travail, il est preconisé de ne pas utiliser les onglets pour la navigation mais de créer des boutons de navigation pour passer d'onglet à onglet, ainsi pas défaut, les onglets, lors de l'ouverture du fichier excel sont toujours masqués, tout comme le quadrillage.

Ma question est la suivante :
Comme je masque les onglets, lorsqu'une personne clique sur des données du TCD, une nouvelle feuille s'ouvre mais comme les onglets sont masqués, elle ne peut pas revenir sur le TCD. Est il possible techniquement de faire une macro qui fera en sorte que dès qu'une nouvelle feuille s'ouvr:confused: e depuis un TCD, qu'un bouton soit crée et que soit ce bouton permet un retour au TCD, soit le bouton supprime cette nouvelle feuille fraichement créee?

Merci, en esperant avoir été assez clair.
 

Pierrot93

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Bonjour Doublenico

tu peux essayer le code ci dessous :

Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Sheets("NomFeuilleTCD").Select
End Sub

A tester dans ta confguration, classeur avec onglets masqués et TCD

Bonne journée

@+
 

doublenico

XLDnaute Junior
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Merci pour ta reponse mais je n'arrive pas à l'appliquer.
Ci-joint un exemple de tcd.

Merci de ton aide
 

Pièces jointes

  • aide_TCD.zip
    26 KB · Affichages: 39
  • aide_TCD.zip
    26 KB · Affichages: 38
  • aide_TCD.zip
    26 KB · Affichages: 32

Pierrot93

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Re Doublenico

J'ai ajouté le code dans le module ThisWorkbook, et à priori chez moi ca marche !!!

Essaies et dis moi

Bon après midi
@+
 

Pièces jointes

  • aide_TCD.zip
    26.8 KB · Affichages: 37
  • aide_TCD.zip
    26.8 KB · Affichages: 39
  • aide_TCD.zip
    26.8 KB · Affichages: 41

Dan

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Bonjour,

Pour moi ton pb ne pourrait-être solutionné seulement en créant une barre d'outils contenant un bouton qui te permettrait en cliquant dessus de supprimer la feuille concernée et de réactiver la feuille TCD après.
Là deux cas à considérer soit on crée la barre de menu en même temps que la nouvelle feuille (en utilisant la macro de Pierrot93 par exemple) ou on crée la barre d'outils à l'ouverture du fichier et on utilise le bouton si l'on se trouve sur une feuille de nom différente des deux existantes (TCD et Suggestion).

Qu'en penses-tu ?

A te lire
 

Dan

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Re,

Dans l'esprit de ma proposition voici un exemple dans le fichier joint.

Pierrot93 la macro de ton fichier supprime directement la nouvelle feuille sans que l'on puisse la consulter. Peux tu confirmer chez toi.

A bientôt

;)
 

Pièces jointes

  • aide_TCD-2.zip
    29.5 KB · Affichages: 52

Pierrot93

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Re Doublenico, Bonjour Dan

Oui c'est exact Dan, la feuille est supprimée tout de suite après la création, snas que l on puisse la consulter, c est ce que j avais cru comprendre du besoin de Doublenico, je l'ai codé en ce sens. Me suis trompé, désolé ...

@+
 

Pierrot93

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Re Doublenico, Dan

Ci dessous ma macro modifiée grace à l'utilisation d'un code fourni par MichelXLD (merci au passage).

Rajoute un bouton sur la nouvelle feuille, permettant de supprimer cette dernière et de revenir sur la PREMIERE feuille du classeur.

Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim NouvelleFeuille As Worksheet, NouveauBouton As OLEObject
Dim Code$, NextLine&
'Cet exemple consiste à ajouter une nouvelle feuille, un bouton
'de commande sur cette feuille et le code de l'événement Click
'du bouton.
'   Ajoute une Nouvelle feuille
    Set NouvelleFeuille = ActiveSheet
'   Ajoute un bouton de Commande
    Set NouveauBouton = NouvelleFeuille.OLEObjects.Add _
      ("Forms.CommandButton.1")
    With NouveauBouton
        .Left = 50
        .Top = 50
        .Width = 100
        .Height = 30
        .Object.Caption = "Supprimer feuille"
    End With
'   Comment ajouter le code se rapportant au bouton...
    Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "On Error Resume Next" & vbCrLf
    Code = Code & "Application.DisplayAlerts = False" & vbCrLf
    Code = Code & "ActiveSheet.Delete" & vbCrLf
    Code = Code & "Sheets(1).Select" & vbCrLf
    Code = Code & "Application.DisplayAlerts = True" & vbCrLf
    Code = Code & "End Sub"
'   Ecriture du code dans le module de la feuille (fs)
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
      NextLine = .CountOfLines + 1
      .InsertLines NextLine, Code
    End With
End Sub

Bonne soirée
@+
 

doublenico

XLDnaute Junior
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Pour commencer, 1000 mercis a vous pour votre aide, j'adore vraiment ce forum et cet esprit !!!
La premiere version avec la barre supprimer marche impec parcontre je n'arrive pas à inclure le code de la derniere macro proposé par Pierrot93.
Quelqu'un pourrait il inclure cet macro dans le fichier que j'ai fourni car chez moi ca ne marche pas !

Merci encore

Edit : j ai reussi a installer la macro mais j'ai du renommer le nom de la macro :
Private Sub Workbook_NewSheet(ByVal Sh As Object) par Sub Toto.
Si je cree un petit rectangle et que j'y affecte la macro, le bouton supprimer apparait bien et je peux supprimer la page en question par contre lorsque je clique dans mon TCD, une nouvelle feuille s'ouvre mais pas de bouton "supprimer" qui apparait? Est ce normal? Pour info, tout le code est dans un module
 
Dernière édition:

Dan

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Bonjour,

Le code de Pierrot93 doit se placer en VBA dans THISWORKBOOK.
Tu ne dois pas changer le nom en SUB TOTO ou autre amis bien conserver ce que PIERROT93 t'a donné.

Cette macro te crèe un bouton "supprimer" sur la nouvelle feuille tandis que ma proposition repose sur la création d'un bouton dans une nouvelle barre et qui te permet de supprimer toutes les feuilles sauf TCD et SUGGESTION.

Bon ap

;)
 

Pierrot93

XLDnaute Barbatruc
Re : Tableau croisé dynamique et ouverture nouvelle feuille

Bonjour Doublenico,

le code doit être placé en l'état dans le module de code de ThisWorkbook.

Pour le mettre => ALT F11, qui ouvre l'éditeur visual basic,
dans la fenêtre "Projet - VBAProject", si tu ne l'as pas => barre de menu => Affichage => explorateur de projet, double click sur le classeur dans lequel tu veux mettre ta macro,
dans microsoft Excel Objet, double click sur ThisWorkbook,
dans la fenêtre colle le code sans rien changer.

Tu te retrouves donc avec le code qui doit se déclancher à chaque evenement "Nouvel onglet", d'ou la première ligne du code :

Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)

Je l'ais testé sur Excel2000 à partir d'un TCD, sur un classeur avec onglets masqués, et a priori chez moi ca marche.

Par contre si tu as des problèmes, c'est peut être lié à tes options de sécurité, c'est assez sensible puisque ce code rajoute du code dans le même projet.

En espérant avoir répondu à tes questions.

Bonne après midi

@+
 

Discussions similaires

Réponses
2
Affichages
184

Statistiques des forums

Discussions
312 215
Messages
2 086 328
Membres
103 180
dernier inscrit
Vcr