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

Résolu/Fermé
Etienne - 4 janv. 2021 à 10:13
 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 22784 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
4 janv. 2021 à 10:42
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
4 janv. 2021 à 10:46
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
Les deux sont parfaits ! Merci beaucoup à vous deux
0