IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Récupérer le nom de la feuille d'une cellule nommé en VBA [XL-365]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Controle d egestion
    Inscrit en
    Octobre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Controle d egestion

    Informations forums :
    Inscription : Octobre 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Récupérer le nom de la feuille d'une cellule nommé en VBA
    Bonjour,
    J'ai une 2 feuille qui comporte des noms différents

    - Toto qui se trouve sur la sheets1 en a4
    - Lolo sheets2 en a1
    - Tutu sheets1 en a3

    Hors je voudrais récupérer dans une variable le nom de la feuille pour toto ou lolo par exemple ceci afin de sélectionner cette feuille.
    Voici en dessous l'idée du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sub test()
    dim tableau(2,2)
     
    tableau(1,1)="Toto"
    tableau(1,2) = ---> nom de la feuille ou se trouve toto
    tableau(2,1)="Lolo"
    tableau(2,2) = ---> nom de la feuille ou se trouve lolo
     
    sheets(tableau (1,2)).select
     
     
    end sub

    Merci d'avance

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub RechercheTexte()
     
    Dim tableau(2, 2)   'cette matrice peut être 3 x 3 ou 2 x 2, selon votre configuration
     
    tableau(1, 1) = "Toto"
    tableau(2, 1) = "Lolo"
     
    Dim sh As Worksheet
    Dim trouve
    'La feuille contenant le texte est automatiquement sélectionnée; pas besoin de "Select"
    For Each sh In ThisWorkbook.Sheets
        With sh.Range("A:X")        'Augmentez cette zone si le "toto/lolo" se trouve plus à droite, ou réduisez là au contraire
            Set trouve = .Find(tableau(1, 1), LookIn:=xlValues)
            If Not trouve Is Nothing Then MsgBox tableau(1, 1) & " se trouve dans : " & sh.Name
            Set trouve = .Find(tableau(2, 1), LookIn:=xlValues)
            If Not trouve Is Nothing Then MsgBox tableau(2, 1) & " se trouve dans : " & sh.Name
        End With
    Next sh
     
    End Sub

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,
    Citation Envoyé par Bubu_92 Voir le message
    ... ceci afin de sélectionner cette feuille.
    sub test()
    '...
    sheets(tableau (1,2)).select
    End sub
    Sous VBA il est inutile et déconseillé de sélectionner un objet (par exemple une feuille) pour agir dessus
    Avec Excel l'utilisation des Tableaux structurés supprime ce genre de questionnement.

    Pour connaitre la 'cible' d'un nom : Propriété name.RefersToRange (Excel) | Microsoft Docs

  4. #4
    Candidat au Club
    Homme Profil pro
    Controle d egestion
    Inscrit en
    Octobre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Controle d egestion

    Informations forums :
    Inscription : Octobre 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Précision
    Tout d'abord merci pour les réponses. Mais j'ai oublié d'indiquer que TOTO et LOLO sont des noms qui renvoie donc à une cellule. On ne trouvera pas dans les feuilles les noms écrits. du coup LookIn:=xlValues ne trouvera rien (sauf erreur de ma part).
    J'ai redetaillé du coup et joint un fichier avec la macro si après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test()
    Dim tableau(2, 2)
     
    tableau(1, 1) = "Toto"  'Nom donné à la cellule A3 de la feuille 1
    tableau(1, 2) = ""      'Résultat attendu Feuil1
    tableau(2, 1) = "Lolo"  ' Nom de la cellule A5 de la feuille 2
    tableau(2, 2) = ""      'Résultat attendu Feuil2
     
    For x = 1 To 2
        Select Case x
            Case 1
            ' exemple mise en frome particulère
            Sheets("tableau(1,2)").Cells(4, 1).Font.Bold = True
     
     
            Case 2
            ' exemple autre mise en forme
            Sheets("tableau(1,2)").Cells(6, 1).Font.Italic = True
     
     
        End Select
    Next
    End Sub
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Pourquoi chercher si compliqué !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Dim n As Names
      Set n = ThisWorkbook.Names
      n("TOTO").RefersToRange.Parent.Cells(4, 1).Font.Bold = True
      n("LOLO").RefersToRange.Parent.Cells(6, 1).Font.Italic = True
    End Sub

  6. #6
    Candidat au Club
    Homme Profil pro
    Controle d egestion
    Inscrit en
    Octobre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Controle d egestion

    Informations forums :
    Inscription : Octobre 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Modification
    Bonjour,

    Merci Patrice. Je n'ai pas eu le temps de répondre hier mais ai bien vu la réponse. Du coup je me suis inspiré de ce que tu m'a dit. Car les opération à faire derrière la sélection sont nombreuses.
    Je me suis servi de :
    Worksheets(Range(Tableau(incompte, 1)).Parent.Name).Activate (incompte étant une variable dans une boucle do while loop)


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une partie du nom de la feuille dans une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/11/2013, 15h07
  2. [XL-2007] Nom fichier et feuille dans une cellule
    Par Scuba69 dans le forum Excel
    Réponses: 2
    Dernier message: 07/05/2010, 14h28
  3. Récupérer le nom du fichier copié dans une cellule
    Par mammmy dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/06/2008, 16h31
  4. Récupérer le nom d'un fichier dans une cellule
    Par NicolasJolet dans le forum Excel
    Réponses: 4
    Dernier message: 08/02/2008, 09h47
  5. Récupérer le nom de la feuille d'une cellule appelante
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/10/2006, 20h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo