Récupérer le nom d'une feuille inputbox

Résolu
Bonjour,

J'ai fait pas mal de recherche sur le forum mais pas moyen de trouver précisément ce que je cherche.

J'aimerais récupérer le nom d'une feuille avec une inputbox pour pouvoir après la stocker dans une variable et la réutiliser(c'est sur cette deuxième partie que je bloque.)

DeleteData = InputBox("Sélectionnez une feuille Valeur Min", "ValeurMin")
onglet = DeleteData.SheetName 'Cette ligne est fausse bien entendu mais je ne sais pas par quoi la remplacer

Merci d'avance pour votre aide.

Configuration: Windows / Edge 18.17763

3 réponses

  1. Contributeur
    bonjour,
    peut-être:
    option explicit
    ' ...
    dim Deletedata as string, onglet as worksheet
    DeleteData = InputBox("Sélectionnez une feuille Valeur Min", "ValeurMin")
    set onglet = Sheets(DeleteData)
    onglet.[a1]="ceci est l'onglet "+onglet.name
    1
    1. Modérateur
      Bonjour,

      Voici :
      Option Explicit
      
      Sub Essai()
      Dim iVar As Variant, MaFeuille As Worksheet
          iVar = InputBox("Saisir le nom de la feuille Valeur Min", "ValeurMin")
          If StrPtr(iVar) = 0 Then
              MsgBox "Vous avez annulé", vbCritical + vbOKOnly, "Annulation utilisateur"
          ElseIf iVar = vbNullString Then
              MsgBox "Aucune saisie", vbCritical + vbOKOnly, "Pas de saisie utilisateur"
          Else
              Set MaFeuille = getSheetByName(CStr(iVar), ThisWorkbook)
              If Not MaFeuille Is Nothing Then
                  MsgBox MaFeuille.Name
              End If
          End If
      End Sub
      Function getSheetByName(Name As String, Optional Wb As Workbook) As Object
      'Pierre Fauconnier
      'https://www.developpez.net/forums/blogs/27262-pierre-fauconnier/b8231/vba-excel-verifier-quune-feuille-existe-classeur-trouver-feuille-nom-classeur/
      Dim sh As Object, Counter As Long
          If Wb Is Nothing Then Set Wb = ActiveWorkbook
          Counter = 1
          Do While Counter <= Wb.Sheets.Count And getSheetByName Is Nothing
              If StrComp(Wb.Sheets(Counter).Name, Name, vbTextCompare) = 0 Then Set getSheetByName = Wb.Sheets(Counter)
              Counter = Counter + 1
          Loop
      End Function
      

      1
      1. Les deux sont parfaits ! Merci beaucoup à vous deux
        0