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

Macros et VBA Excel Discussion :

Macro recherche feuille [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 13
    Par défaut Macro recherche feuille
    Bonjour à tous,

    Voici une macro que j’ai récupérer sur un forum. Elle permet de rechercher une feuille dans un classeur en fonction de la valeur inscrite dans la cellule A1.
    Malheureusement elle ne fonctionne pas lorsque le nom des feuilles et exclusivement constitué de chiffres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Cherche_Feuille()
     
    For Each Onglet In Worksheets
    If Onglet.Name = Range("A1") Then
    Onglet.Select
    Exit Sub
    End If
    Next
    MsgBox "Feuille non trouvée"
     
    End Sub
    Y aurait-il une âme charitable pour me donner un coup de main afin de la rendre totalement polyvalente.
    Merci.

    jphflo
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonsoir,

    Une solution
    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
    Sub Cherche_Feuille()
        For Each Onglet In Worksheets
            If IsNumeric(Onglet.Name) And IsNumeric(Range("A1")) Then
                If CInt(Onglet.Name) = CInt(Range("A1")) Then
                    Onglet.Select
                    Exit Sub
                End If
            Else
                If Trim(Onglet.Name) = Trim(Range("A1")) Then
                    Onglet.Select
                    Exit Sub
                End If
            End If
        Next
        MsgBox "Feuille non trouvée"
    End Sub
    Cordialement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 13
    Par défaut
    Merci gFZT82,

    Ta macro fonctionne sans problème.
    Afin de mieux comprendre, peux-tu me donner quelques explications sur son fonctionnement.

    Bien à toi.

    jphflo

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Dans ce code, on cherche à identifier les valeurs assimilables à un nombre et celles considérées comme un texte, le but du jeu étant d’obtenir des valeurs pour le nom de feuille et la cellule A1 qui soient comparables.
    Avec la fonction IsNumeric, on vérifie tout d’abord si le nom de la feuille et la valeur de A1 peuvent prendre la valeur d'un nombre.
    Si c’est le cas, on convertit le nom de la feuille et la valeur A1 en nombres entiers avec la fonction CInt et on les compare. En cas d’égalité, on sélectionne la feuille correspondant à ce nombre puis on sort de la procédure.
    Si ce n’est pas le cas, le nom de la feuille et la valeur A1 sont alors considérés comme des textes. Avant de les comparer, on prend juste la précaution de supprimer les espaces avant et après le texte avec la fonction Trim.

    Cordialement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 13
    Par défaut
    Bonjour gFZT82,

    Merci pour tes explications, celle-ci sont limpides. J’avoue que hier, j’ai fais un simple copier coller de ta macro sans comprendre son fonctionnement.
    Maintenant c’est plus claire, je me coucherai moins bête ce soir.

    Cordialement

    jphflo

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

Discussions similaires

  1. macro rechercher/remplacer sur toutes les feuilles
    Par gti64 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/03/2015, 11h25
  2. Macro recherche et affichage sur deux feuilles différentes
    Par lilou89 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/08/2014, 17h48
  3. Macro recherche données pour copier dans une autre feuille
    Par Philippine dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/04/2013, 19h26
  4. [XL-2003] fonction ou macro recherchant l'existance d'une feuille
    Par Raphael13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2009, 10h27
  5. [XSL] recherche feuille XSLT 1.0 IE
    Par sylviiie dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/07/2005, 09h21

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