Code simple qui me bloque !

Bipede

XLDnaute Nouveau
Re bonjour a tous !

Voila mon nouveau petit probleme
Je voudrais réaliser une zone de liste sur une feuille A à partir de laquelle on peut atteindre d'autre feuille du classeur je m'explique

Si je selectionne PATATE dans ma zone de liste celle ci me renvoie à la feuille 4 par exemple? vous comprenez le principe?

Faut il utiliser worksheet_change? ou existe t'il un zonedeliste_change?

Par avance merci !
 

jetted

XLDnaute Occasionnel
Re : Code simple qui me bloque !

Bonjour

Ceci n'est pas mon code, mais il semble repondre a tes besoins
nomme une feuille "TOC" et utilise ce code
Code:
Option Explicit

Sub CreateTOC()
    'Declare all variables
    Dim ws As Worksheet, curws As Worksheet, shtName As String
    Dim nRow As Long, i As Long, N As Long, x As Long, tmpCount As Long
    Dim cLeft, cTop, cHeight, cWidth, cb As Shape, strMsg As String
    Dim cCnt As Long, cAddy As String, cShade As Long
    'Check if a workbook is open or not.  If no workbook is open, quit.
    If ActiveWorkbook Is Nothing Then
        MsgBox "You must have a workbook open first!", vbInformation, "No Open Book"
        Exit Sub
    End If
'-------------------------------------------------------------------------------
    cShade = 37 '<<== SET BACKGROUND COLOR DESIRED HERE
'-------------------------------------------------------------------------------
    'Turn off events and screen flickering.
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    nRow = 4: x = 0
    'Check if sheet exists already; direct where to go if not.
    On Error GoTo hasSheet
    Sheets("TOC").Activate
    'Confirm the desire to overwrite sheet if it exists already.
    If MsgBox("You already have a Table of Contents page.  Would you like to overwrite it?", _
    vbYesNo + vbQuestion, "Replace TOC page?") = vbYes Then GoTo createNew
    Exit Sub
hasSheet:
    x = 1
    'Add sheet as the first sheet in the workbook.
    Sheets.Add before:=Sheets(1)
    GoTo hasNew
createNew:
    Sheets("TOC").Delete
    GoTo hasSheet
hasNew:
    'Reset error statment/redirects
    On Error GoTo 0
    'Set chart sheet varible counter
    tmpCount = ActiveWorkbook.Charts.Count
    If tmpCount > 0 Then tmpCount = 1
    'Set a little formatting for the TOC sheet.
    ActiveSheet.Name = "TOC"
    With Sheets("TOC")
        .Cells.Interior.ColorIndex = cShade
        .Rows("4:65536").RowHeight = 16
        .Range("A1").Value = "Designed by VBAX"
        .Range("A1").Font.Bold = False
        .Range("A1").Font.Italic = True
        .Range("A1").Font.Name = "Arial"
        .Range("A1").Font.Size = "8"
        .Range("A2").Value = "Table of Contents"
        .Range("A2").Font.Bold = True
        .Range("A2").Font.Name = "Arial"
        .Range("A2").Font.Size = "24"
        .Range("A4").Select
    End With
    'Set variables for loop/iterations
    N = ActiveWorkbook.Sheets.Count + tmpCount
    If x = 1 Then N = N - 1
    For i = 2 To N
        With Sheets("TOC")
            'Check if sheet is a chart sheet.
            If IsChart(Sheets(i).Name) Then
        '** Sheet IS a Chart Sheet
                cCnt = cCnt + 1
                shtName = Charts(cCnt).Name
                .Range("C" & nRow).Value = shtName
                .Range("C" & nRow).Font.ColorIndex = cShade
                'Set variables for button dimensions.
                cLeft = .Range("C" & nRow).Left
                cTop = .Range("C" & nRow).Top
                cWidth = .Range("C" & nRow).Width
                cHeight = .Range("C" & nRow).RowHeight
                cAddy = "R" & nRow & "C3"
                'Add button to cell dimensions.
                Set cb = .Shapes.AddShape(msoShapeRoundedRectangle, _
                    cLeft, cTop, cWidth, cHeight)
                cb.Select
                'Use older technique to add Chart sheet name to button text.
                ExecuteExcel4Macro "FORMULA(""=" & cAddy & """)"
                'Format shape to look like hyperlink and match background color (transparent).
                With Selection
                    .ShapeRange.Fill.ForeColor.SchemeColor = 0
                    With .Font
                        .Underline = xlUnderlineStyleSingle
                        .ColorIndex = 5
                    End With
                    .ShapeRange.Fill.Visible = msoFalse
                    .ShapeRange.Line.Visible = msoFalse
                    .OnAction = "Mod_Main.GotoChart"
                End With
            Else
        '** Sheet is NOT a Chart sheet.
                shtName = Sheets(i).Name
                'Add a hyperlink to A1 of each sheet.
                .Range("C" & nRow).Hyperlinks.Add _
                    Anchor:=.Range("C" & nRow), Address:="#'" & _
                    shtName & "'!A1", TextToDisplay:=shtName
                .Range("C" & nRow).HorizontalAlignment = xlLeft
            End If
            .Range("B" & nRow).Value = nRow - 2
            nRow = nRow + 1
        End With
continueLoop:
    Next i
    'Perform some last minute formatting.
    With Sheets("TOC")
        .Range("C:C").EntireColumn.AutoFit
        .Range("A4").Activate
    End With
    'Turn events back on.
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    strMsg = vbNewLine & vbNewLine & "Please note: " & _
        "Charts will have hyperlinks associated with an object."
    'Toggle message box for chart existence or not, information only.
    If cCnt = 0 Then strMsg = ""
    MsgBox "Complete!" & strMsg, vbInformation, "Complete!"
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Code simple qui me bloque !

Bonjour à tous


jetted: cela t'aurait pris quelques secondes de plus d'indiquer le nom de l'auteur du code que tu cites dans ton message ;)

Je le fais à ta place : Zack Barresse
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Code simple qui me bloque !

Bonjour,

Plus simple , d'après ce que j'ai compris de ta demande
 

Pièces jointes

  • SelectionFeuille.xls
    30.5 KB · Affichages: 69
  • SelectionFeuille.xls
    30.5 KB · Affichages: 74
  • SelectionFeuille.xls
    30.5 KB · Affichages: 76

Efgé

XLDnaute Barbatruc
Re : Code simple qui me bloque !

Bonjour Bipede, jetted, camarchepas, Staple1600 :), kjin :),
Une proposition, proche de celle de camarchepas, mais entièrement dynamique (ajout, suppression et rename des feuilles) sauf la feuille Menu qui doit rester nommée ainsi :p.
Cordialement
 

Pièces jointes

  • liens_feuilles.zip
    14.8 KB · Affichages: 40

Bipede

XLDnaute Nouveau
Re : Code simple qui me bloque !

Merci a tous pour vos réponses !Je viens de les consulter donc exuser moi pour le retard !
Vous avez bien cerné ce que je voulais mais en réalité c'est un peu plus complexe.
En effet le nom que je choisis dans la zone de liste ne correspond pas au nom de la feuille .
Vous comprendrez en ouvrant le fichier :
Si je choisit par exemple : 01 - TERRASSEMENTS je dois etre amener à la feuille nommer "1".Je vous laisse le fichier ou vous trouverez la zone de liste !
Il faut s'appuyer sur la meme trame que celle que m'a donné notre cher ami!(Patate ,fraise carrote )!
Voila tout :) et encore merci c'est une belle épine du pied que vous m'enlevez si vous trouvez la solution !
 

Pièces jointes

  • SelectionFeuille.xls
    44.5 KB · Affichages: 59
  • SelectionFeuille.xls
    44.5 KB · Affichages: 70
  • SelectionFeuille.xls
    44.5 KB · Affichages: 61

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 188
Messages
2 086 028
Membres
103 100
dernier inscrit
erym64300