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 :

Ouvrir un worksheet avec une portion du nom [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Ouvrir un worksheet avec une portion du nom
    Bonjour,

    J'ai besoin dans le cadre du développement d'une macro de renommer un worksheet contenant "action" dans sa nomenclature.
    Si ce n'est pas possible j'aimerais à défaut sélectionner cette feuille à l'aide du .select.
    En revanche, lorsque je tente de le faire à l'aide des * cela me renvoie une erreur 9. Sauriez-vous m'aider à résoudre ce problème ou à le contourner ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Worksheets("*action*").Name = Actions

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 803
    Points
    5 803
    Par défaut
    Bonjour,

    Les "*" ne fonctionnent qu'avec l'opérateur like.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each sh in thisworkbook.worksheets
    if sh.name like "*action*" then ' tes actions
    next sh

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Génial ! Merci infiniment pour la rapidité de ta réponse, tout fonctionne parfaitement.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour,

    Les "*" ne fonctionnent qu'avec l'opérateur like.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each sh in thisworkbook.worksheets
    if sh.name like "*action*" then ' tes actions
    next sh
    Au temps pour moi, en utilisant l'outil de débogage il ne rentre jamais dans la boucle peu importe la valeur que je mes entre guillemets dans le "IF". Pourtant mes feuilles existent belles et bien... Cela m'empêche donc toute action sur celle contenant "action".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If ws.Name Like "*-action" Then
            ws.Name = "Actions"
    End If

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Attention que l'opérateur Like est sensible à la casse.
    Deux solutions, soit vous placez en tête de module Option Compare Text soit vous pouvez convertir les deux chaînes comparées en minuscule (LCase) ou majuscule (UCase)

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Dim sh As Worksheet
     For Each sh In ThisWorkbook.Worksheets
       If LCase(sh.Name) Like LCase("*-action") Then
         sh.Name = "Action"
       End If
     Next sh
    Pourtant mes, si vous avez plus d'une feuille feuilles existent belles et bien... Cela m'empêche donc toute action sur celle contenant "action"
    Petite remarque, si vous avez plus d'une feuille se terminant par "-Action", vous aurez un problème lors du Rename de la deuxième feuille et les suivantes. Il faudra plutôt utiliser Replace

    Exemple 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub t()
     Dim sh As Worksheet
     For Each sh In ThisWorkbook.Worksheets
       With sh
         If LCase(.Name) Like LCase("*-action") Then ' tes actions
             .Name = Replace(LCase(.Name), LCase("-Action"), "action")
         End If
       End With
     Next sh
    End Sub

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Génial ! Tout fonctionne cette fois-ci merci beaucoup pour l'explication qui va avec, c'est beaucoup plus clair désormais.

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

Discussions similaires

  1. [XL-2010] Ouvrir un fichier avec une partie du nom variable
    Par PIERRE-DEVIN dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/09/2018, 14h25
  2. [XL-2010] Ouvrir fichier Excel avec une partie de son nom
    Par juluseless dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2014, 14h12
  3. [Excel]Ouvrir un tableau avec une liste modifiable
    Par mulot03 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/05/2006, 09h52
  4. Ouvrir un fichier avec une appli déjà lancée
    Par Cameleon45 dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 17h42
  5. Ouvrir un curseur avec une requête paramétrée?
    Par nnj dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/07/2005, 14h12

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