Microsoft 365 Code VBA "Tableau gestionnaire"

Rosario.

XLDnaute Junior
Bonjour, je viens vers vous car je ne comprend pas pourquoi mon code VBA que j'ai mis dans ThisWorkbook ne fonctionne pas. Pouvez vous m'aider svp. J'ai mis des commentaire dans mon fichier excel dans l'onglet "Sommaire" pour expliquer ce que je veux comme résultats.

Merci.
 

Pièces jointes

  • Gestionnaire.xlsm
    63.7 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Rosario,
Changez :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
par
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Ainsi la macro sera active sur toutes les feuilles.
NB: Je n'ai pas vérifié le reste de la macro, commencez par cette modif et revenez si d'autres problèmes surviennent. Mais en première approche tout semble fonctionner mais nécessite un returm quand on sélectionne la feuille. :)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Post modifié, j'avais oublié le "violet" !

Peut être plus simple avec juste un clic sur la cellule :
VB:
Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim F
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C1:O2]) Is Nothing Then
        For Each F In Worksheets
            If F.Name <> Target And F.Name <> "Sommaire" Then
                Sheets(F.Name).Visible = xlSheetVeryHidden
            Else
                With Sheets(F.Name)
                    Application.EnableEvents = False
                    .Visible = True
                    .Select
                    .Range(Target.Address).Interior.Color = RGB(220, 140, 255)
                    .Range("A1").Select
                End With
                Sheets("Sommaire").Range(Target.Address).Interior.Color = xlNone
            End If
        Next F
    End If
    Application.EnableEvents = True
End Sub
A noter que la plage A..Z soit toujours au même endroit, donc j'ai modifié sa place dans Sommaire en C1:O2.
 

Pièces jointes

  • Gestionnaire.xlsm
    64.1 KB · Affichages: 8
Dernière édition:

Rosario.

XLDnaute Junior
Bonjour Sylvanu,

Merci pour votre réponse.
Je viens de faire un essai, je ne comprend pas aucun résultat je clic sur une cellule rien ne ce passe. Par contre si je mets un bouton et que je mets ce code cela fonctionne. "voir fichier joint bouton actif dans l'onglet sommaire.

Sub TestCreationOnglet()
Dim cellValue As String
Dim newSheet As Worksheet
Dim Target As Range

' Test pour une cellule spécifique
Set Target = ThisWorkbook.Sheets("Sommaire").Range("K2") ' Vous pouvez changer cette référence

' Récupérer la valeur de la cellule A2 pour tester
cellValue = Target.Value
On Error Resume Next
Set newSheet = ThisWorkbook.Sheets(cellValue)
On Error GoTo 0

If newSheet Is Nothing Then
' Créer un nouvel onglet si l'onglet n'existe pas
Set newSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
newSheet.Name = cellValue
MsgBox "L'onglet " & cellValue & " a été créé."
Else
' Afficher l'onglet s'il existe déjà
newSheet.Visible = xlSheetVisible
MsgBox "L'onglet " & cellValue & " est visible."
End If
End Sub


Merci
 

Pièces jointes

  • Gestionnaire-1-1.xlsm
    66.1 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Sur mon PC avec ma PJ j'obtiens ça :
Test4.gif

Vous n'avez pas la même chose ?
 

Rosario.

XLDnaute Junior
Bonjour,
Sur mon PC avec ma PJ j'obtiens ça :
Regarde la pièce jointe 1206038
Vous n'avez pas la même chose ?
Re,
Alors j'ai tous supprimé dans ThisWorkbook j'ai remis le code et cela fonctionne maintenant, sauf lorsque je clic sur certaine cellule comme D2 qui correspond à la lettre O et aussi cel F2 et H2... j'ai une cellule en ligne 3 qui se met en violet aussi.
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
je clic sur certaine cellule comme D2 qui correspond à la lettre O et aussi cel F2 et H2... j'ai une cellule en ligne 3 qui se met en violet aussi.
Vous parlez de votre fichier ou de ma PJ ?
Car dans ma PJ cela fonctionne sur mon PC :
Test4.gif



Si c'est votre fichier, et s'il n'y a pas de données sensibles, envoyez le, j'essaierais de voir où ça coince.
NB :
Dans votre fichier vous avez bien ramené la zone A..Z en C1:O2 ?
Vérifiez si en D2,F2,H2 ... qu(il n'y a pas d'espaces. comme par ex "O " au lieu de "O".
Idem avec les noms d'onglets. Evidemment sheets("O ") n'est pas sheets("O")
 
Dernière édition:

Rosario.

XLDnaute Junior
Vous parlez de votre fichier ou de ma PJ ?
Car dans ma PJ cela fonctionne sur mon PC :
Regarde la pièce jointe 1206067


Si c'est votre fichier, et s'il n'y a pas de données sensibles, envoyez le, j'essaierais de voir où ça coince.
NB :
Dans votre fichier vous avez bien ramené la zone A..Z en C1:O2 ?
Vérifiez si en D2,F2,H2 ... qu(il n'y a pas d'espaces. comme par ex "O " au lieu de "O".
Idem avec les noms d'onglets. Evidemment sheets("O ") n'est pas sheets("O")
Bonjour, alors j'ai de nouveau tous effacé et recommencé, le code fonctionne mais j'ai un soucis avec la lettre o je ne sais pas pourquoi quand je clic sur la cellule c'est à dire que ce soit sur l'onglet sommaire ou autre onglet sur la lettre o il m'ouvre bien la lettre o et la cellule o et bien en violet, mais en plus la cellule B3 ce met aussi en violet et cela que pour la lettre o, car toutes les autres lettre aucun soucis.
Merci encore pour votre aide.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Si vous reprenez votre fichier du post #4, et que vous regardez la feuille ( en la rendant visible par la propriétés Visible dans l'éditeur )
1730273791564.png

Alors vous verrez que la cellule B3 est violette.
1730273852740.png

Ce n'est pas la macro qui met cette cellule en violet, c'est tout simplement que cette cellule est déjà violette.
Essayez :
1- Sélectionnez "O"
2- Sur cette feuille mettez B3 en blanc
3- Revenez à Sommaire
4- Sélectionnez "O"
De quelle couleur est B3 ? :)

NB : Si vous voulez accéder à toutes les feuilles pour vérifier, utilisez cette macro :
VB:
Sub ToutVoir()
    For Each F In Worksheets
        Sheets(F.Name).Visible = True
    Next F
End Sub
( ensuite il suffit de réappuyer sur une lettre pour tout remasquer )
 

Rosario.

XLDnaute Junior
Bonjour,
Si vous reprenez votre fichier du post #4, et que vous regardez la feuille ( en la rendant visible par la propriétés Visible dans l'éditeur )
Regarde la pièce jointe 1206155
Alors vous verrez que la cellule B3 est violette.
Regarde la pièce jointe 1206156
Ce n'est pas la macro qui met cette cellule en violet, c'est tout simplement que cette cellule est déjà violette.
Essayez :
1- Sélectionnez "O"
2- Sur cette feuille mettez B3 en blanc
3- Revenez à Sommaire
4- Sélectionnez "O"
De quelle couleur est B3 ? :)

NB : Si vous voulez accéder à toutes les feuilles pour vérifier, utilisez cette macro :
VB:
Sub ToutVoir()
    For Each F In Worksheets
        Sheets(F.Name).Visible = True
    Next F
End Sub
( ensuite il suffit de réappuyer sur une lettre pour tout remasquer )
Bonjour,
Si vous reprenez votre fichier du post #4, et que vous regardez la feuille ( en la rendant visible par la propriétés Visible dans l'éditeur )
Regarde la pièce jointe 1206155
Alors vous verrez que la cellule B3 est violette.
Regarde la pièce jointe 1206156
Ce n'est pas la macro qui met cette cellule en violet, c'est tout simplement que cette cellule est déjà violette.
Essayez :
1- Sélectionnez "O"
2- Sur cette feuille mettez B3 en blanc
3- Revenez à Sommaire
4- Sélectionnez "O"
De quelle couleur est B3 ? :)

NB : Si vous voulez accéder à toutes les feuilles pour vérifier, utilisez cette macro :
VB:
Sub ToutVoir()
    For Each F In Worksheets
        Sheets(F.Name).Visible = True
    Next F
End Sub
( ensuite il suffit de réappuyer sur une lettre pour tout remasquer )
Bonjour super merci tous fonctionne encore un grand merci.
 

Discussions similaires

Réponses
4
Affichages
443

Statistiques des forums

Discussions
315 095
Messages
2 116 170
Membres
112 676
dernier inscrit
little_b