Script Excel - liste déroulante qui débouche sur une feuille du classeur
Bonjour,
Je suis débutante ++ en programmation VBA et j'ai besoin d'un coup de main svp.
Pour rendre service à des amis je souhaite mettre en place un Excel réunissant plusieurs process et plusieurs raccourcis internet qui initialement sont sur des sources différentes. Il y a alors trois grandes catégories d'éléments dans ce fichier : les "Process", les "Raccourcis" et "Les Petits +"
J'ai crée le fichier en question avec une page d'accueil sur laquelle il y avait jusqu'à présent trois grandes colonnes pour ces trois éléments.
Pour "Raccourcis" ce sont des liens hypertextes, pour "Les Petits +" également.
Par contre pour les "Process" ce sont des feuilles que j'ai crée par thématique, dans ce fichier, et rattachées à l'accueil sous forme de liens hypertextes internes au fichier. L'accueil ressemblait à la première image (PJ).
Pour soulager ce contenu, je souhaiterais faire en sorte que depuis l'accueil j'ai seulement une liste déroulante par élément ("Process", "Raccourcis", "Les petits +")
J'ai crée en deuxième image (PJ), le nouveau design de l'Accueil avec ces listes déroulantes. Maintenant il me faudrait mettre en place un script pour que :
- Lorsqu'un choix est fait dans la liste Raccourcis ou la liste Les Petits + : le lien hypertexte correspondant s'ouvre ou s'affiche à côté
- Lorsqu'un choix est fait dans la liste Process : la feuille enregistrée (sur ce même classeur) nommée par le nom de la thématique sélectionnée s'ouvre
J'ai commencé à créer un script pour la liste Process mais je sèche pour résoudre mes bugs et c'est là que j'en appelle à vos savoir-faire.
Pour info, ma liste Process est ajoutée à l'accueil en cellule C10.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("C10")) Is Nothing Then
Dim selectedSheet As String
selectedSheet = Me.Range("C10").Value
' Error handling using "On Error GoTo" for clarity
On Error GoTo ErrHandler
' Check for worksheet existence first
If Not ThisWorkbook.Sheets(selectedSheet).Exists Then
MsgBox "Worksheet '" & selectedSheet & "' not found."
GoTo ExitSub ' Prevent unnecessary activation attempts
End If
' Activate the worksheet if it exists
ThisWorkbook.Sheets(selectedSheet).Activate
ExitSub:
On Error GoTo 0 ' Resume normal error handling
Exit Sub ' Exit the procedure
ErrHandler:
MsgBox "Error encountered: " & Err.Description
Resume ExitSub ' Skip remaining code and go to ExitSub
End If
End Sub
Merci à ceux qui auront le courage et la patience de m'aider.
Cordialement,
Léa
Bonjour,
Une petite contribution...
Cdlt.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
On Error Resume Next
If Target.Address = "$C$10" And Not IsEmpty(Target) Then
Set ws = ThisWorkbook.Worksheets(Target.Value)
End If
On Error GoTo 0
If ws Is Nothing Then
MsgBox "Worksheet '" & Target & "' not found."
Else
With ws
.Activate
.Cells(1).Select
End With
End If
End SubBonjour,
Merci pour votre aide mais je rencontre 76 erreurs avec votre aide.
Savez-vous pourquoi je n'ai pas toutes ces fonctions ?
Re,
Avec un petit fichier !?
Cdlt.