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 :

VBA-Recherche d'une feuille dans plusieurs classeurs


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut VBA-Recherche d'une feuille dans plusieurs classeurs
    Bonjour,

    Dans un premier temps ma macro va déplacer une feuille dans un nouveau classeur (donc le nom changera à chaque fois): jusque là ca va

    Je voudrais ensuite revenir sur la feuille principale dont le nom ne changera pas pour faire des modifs (protéger le classeur en fait)

    Pb: il faut que je retourne sur la feuille déplacée pour la fin de ma macro et le problème c'est que le nom du classeur sera différent à chaque fois

    Est-il possible de rechercher une feuille dans plusieurs classeurs à partir de son nom qui lui sera identique ???

    Voila le début de ma macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Sheets("projet avec ROI 5 ans (2)").Select
        Sheets("projet avec ROI 5 ans (2)").Move
    La feuille se nommera tjs projet avec roi 5 ans, je change le nom plus tard.
    Je sais que c un peu bizarre mais je suis obligé de faire la macro dans cet ordre à cause de la protection du classeur.

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je réponds à cette question :
    Est-il possible de rechercher une feuille dans plusieurs classeurs à partir de son nom qui lui sera identique ???
    Oui ! Tu peux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each LeClasseur In Workbooks
         For Each LaFeuille In LeClasseur.Worksheets
               MsgBox "Classeur " & LeClasseur.Name & vbCr & "Feuille " & LaFeuille.Name
         Next LaFeuille
    Next LeClasseur
    Tu fais un test sur le nom (LaFeuille.name) et tu as ta feuille

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Je suis désolé je suis pas très très fort avec des macros compliqués

    J'ai essayé de faire ce que tu m'as dit mais j'ai pas compris à quel endroit je dois lui dire de checher la feuille projet avec roi 5 ans (2)

    En gros j'ai pas compris ce que ca voulais dire de faire le test sur LaFeuille.Name.....

    Merci

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    De plus sommes nous obligés de passer par une MsgBox car moi je voudrais que cela se fasse automatiquement sans boite de dialogue

    merci

  5. #5
    Membre habitué Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 198
    Points
    198
    Par défaut
    Je pense que ouskel'n'or t'as donné une méthode pour avoir le nom du classeur et de chaque page du classeur tu dois donc juste modifier le code et remplacer le msgbox par une condition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each LeClasseur In Workbooks
         For Each LaFeuille In LeClasseur.Worksheets
               if lafeuille.name="projet avec roi 5 ans" and leclasseur.name<> "Nom de ton premier classeur" then
                    TON CODE
               endif
         Next LaFeuille
    Next LeClasseur

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Salut,
    j'ai donc essayé de faire ce que tu m'as dit c'est à dire que je lui demande si il y a une feuille projet avec roi 5 ans de la sélectionner

    Je suppose que c'est ceal que tu veux dire par ton code

    Mais ca marche pas ca met débogage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    For Each LeClasseur In Workbooks
         For Each LaFeuille In LeClasseur.Worksheets
               If LaFeuille.Name = "projet avec roi 5 ans (2)" Then
                    Sheets("projet avec roi 5 ans (2)").Select
               End If
         Next LaFeuille
    Next LeClasseur
    End Sub

    Merci

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Essai ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each LeClasseur In Workbooks
         For Each LaFeuille In LeClasseur.Worksheets
               If instr(Lcase(LaFeuille.Name), "projet avec roi 5 ans (2)") <> 0 Then
                    Workbooks(LeClasseur.name).Sheets(LaFeuille.Name).Select
               End If
         Next LaFeuille
    Next LeClasseur
    End Sub
    lcase est là pour que la casse du nom de la feuille soit identique au nom testé
    Mais il faut que tu indiques le CLASSEUR sans quoi VBA il sait pas

  8. #8
    Membre habitué Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 198
    Points
    198
    Par défaut
    Essaie ça, ça marche chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub yui()
     
    Dim LeClasseur, LaFeuille As Variant
     
    For Each LeClasseur In Workbooks
         For Each LaFeuille In LeClasseur.Worksheets
               If LaFeuille.Name = "Feuil1" And LeClasseur.Name <> "Classeur1" Then
                    LeClasseur.Activate
                    Sheets("Feuil1").Select
               End If
         Next LaFeuille
    Next LeClasseur
     
    End Sub
    N'oublie pas de préciser la condition leclasseur.name<>"Premier classeur" sinon la condition sera vérifiée pour tes deux classeurs...

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Nickel
    ca a lair de bien marcher

    Merci beaucoup à tous les deux

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

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. rechercher une somme de données d'une feuille dans un classeur
    Par micky2013 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/04/2013, 00h58
  3. [Toutes versions] VBA - Rechercher une feuille dans un classeur
    Par ADbtr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/06/2010, 08h45
  4. [VBA] Transférer une feuille dans un classeur fermé
    Par Dephi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2007, 12h11
  5. [VBA-E]Existence d'une feuille dans un classeur EXCEL
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/04/2006, 15h58

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