Restreindre la recherche d'une inputbox à partir de la 4ème feuille Excel

Bonjour,

Dans mon fichier ci-joint, j'ai une inputbox qui me permet de rechercher des feuilles. J'aimerais cependant, ne pas pouvoir sélectionner les 4 première feuilles. Je pensais donc utiliser la notion For i=4 to Worksheets.count mais cela ne fonctionne pas. Auriez-vous une proposition de code svp ? :)

Il faut aller sur la "Feuil1" et le bouton bleu pour lancer la macro.

Bon dimanche

JB

Bonjour

Si j'ai bien compris tu veux masquer les 4 premières feuilles a l'ouverture du fichier?

Bonjour,

A tester :

Sub Recherche_Ville()

Dim I As Integer
Dim xName As String
Dim xFound As Boolean

    xName = UCase(InputBox("Veuillez saisir la ville:", "Excel"))
    If xName = "" Then Exit Sub
    xFound = False
    For I = 1 To Sheets.Count
        With Sheets(I)
             If UCase(.Name) = xName Then
                .Activate
                xFound = True
                Exit For
        End If
        End With
    Next I

    If xFound = False Then
       MsgBox "La feuille ville " & xName & " n'a pas été trouvée.", vbOKOnly + vbCritical, "Excel"
    End If

End Sub

Bonjour Joco7915,

Merci de prendre le temps pour ma question. Je pensais masquer mais vu qu'il y a des macro qui s’exécutent dans ces feuilles ce n'est pas top. J'aurais préféré pouvoir juste mettre en place un système qui compte à partir de 5 jusqu'à la dernière feuille.

Merci à toi.

JB

Un exemple

macro masque dans ThisWorkBook

Bonjour,

autre proposition :

Sub Recherche_Ville()
    Dim xName As String, idx As Long
    xName = InputBox("Veuillez saisir la ville:", "Excel")
    idx = 0
    On Error Resume Next
    idx = Worksheets(xName).Index
    On Error GoTo 0
    If idx > 4 Then
        Worksheets(xName).Select
        MsgBox "Visualisation de la feuille " & xName & " ", vbOKOnly + vbInformation, "Excel"
    Else
        MsgBox "La feuille ville n° " & xName & " n'a pas été trouvée.", vbOKOnly + vbCritical, "Excel"
    End If
End Sub

Plus court mais la saisie de la case doit être exacte
eric

PS : @eric K, For I = 5 To Sheets.Count non ?

Merci à tous pour vos propositions, vous êtes si rapides !

La proposition d'Eric Kergresse fonctionne bien, je n'ai pas eu le temps de regarder pour les autres propositions mais c'est certain que ça va fonctionner ! :)

PS: Oui j'ai remplacé le "For I = 1 To Sheets.Count" par "For I = 5 To Sheets.Count" !

J'en profite pou un problème dans le même genre, j'ai une macro qui me permet d'envoyer des mail selon une condition: "If Range("I" & i).Value >= 30"

J'aurais aimé afficher un Msgbox si jamais :" If Range("I" & i).Value < 30"

Seulement je ne sais pas où placer ce Msgbox => "MsgBox "la valeur étant inférieure à 30, RAS", vbOKOnly + vbCritical, "Excel"

Je poste un extrait de mon code ci-dessous:

Sub Envoi_Mail()
  Dim i As Long, nom As String, chemin As String
  Dim OutMail As Object
  Dim S As Shape
  Dim sRep As String, strbody As String, WshShell As Object
  Dim xName As String
Dim xFound As Boolean
Application.ScreenUpdating = False
xName = InputBox("Veuillez saisir votre nom svp:", "Excel")
If xName = "" Then
MsgBox "Vérifiez la saisie svp.", vbOKOnly + vbCritical, "Excel"
Exit Sub
End If
If xName = "TOTO" Then
'***************************
Mon code VBA

'***************************
  For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    If IsEmpty(Range("H" & i).Value) Then
      If Range("I" & i).Value >= 30 Then
'***************************
Mon code VBA

'***************************
      End If
    End If

  Next

Else
MsgBox "Désolé, vous ne pouvez pas cliquer sur  ce bouton.", vbOKOnly + vbCritical, "Excel"

End If
Application.ScreenUpdating = True

End Sub

Un grand merci à vous tous :)

JB

Rechercher des sujets similaires à "restreindre recherche inputbox partir 4eme feuille"