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

Résolu
Etienne -  
 Etienne - 4 janv. 2021 à 11:05
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

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 759
 
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
Etienne
 
Les deux sont parfaits ! Merci beaucoup à vous deux
0