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 :

Sélectionner une feuille suivant son emplacement alors que son nom varie [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Autre
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Sélectionner une feuille suivant son emplacement alors que son nom varie
    Bonjour,
    Voici mon problème :
    Par macro j’insère une nouvelle feuille toujours placée après une feuille nommée "Relevés Journaliers". Cette nouvelle feuille est renommée automatiquement par macro selon le contenu de la cellule E1 (le contenu de la cellule E1 varie à chaque nouvelle feuille insérée).
    Je voudrais pouvoir, par macro, sélectionner la feuille placée après celle nommée "Relevés Journaliers" quel que soit le nom de cette feuille puisqu’il change à chaque nouvelle insertion…
    Merci par avance de votre aide
    Vad

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    La propriété Index d'un worksheet permet de connaître son rang dans la suite des feuilles. Dès lors, tu peux utiliser le code suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ws As Worksheet
     
    Set ws = Worksheets(Worksheets("Relevés Journaliers").Index + 1)
    Tu pourrais aussi directement créer la nouvelle feuille en l'affectant à un objet de type worksheet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Dim ws As Worksheet
     
      Set ws = ThisWorkbook.Worksheets.Add(after:=Worksheets("Relevés Journaliers"))
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre à l'essai
    Femme Profil pro
    Autre
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Bonjour Pierre,

    Merci pour tes réponses, mais, mes connaissances en Vba étant très limitées, je ne dois pas adapter comme il faut tes propositions, car pour la première, rien ne se passe et pour la deuxième cela m’insère une nouvelle feuille !
    Ce que je souhaite, c’est que ma macro sélectionne la feuille que j’insère toujours après la feuille nommée "Relevés Journaliers" (qui elle a toujours le nom Feuil3 dans Visual Basic) mais la feuille que j’insère juste après (celle que je souhaite sélectionner)change toujours de nom d’onglet et de référence dans Visual Basic . La seule chose qui ne change pas est son emplacement après la feuille "Relevés Journaliers"…
    (à noter, je ne sais pas si cela peut avoir une incidence ou pas, mais au cas où : j’ai dans ce classeur une feuille nommée "Index" et comme ce terme est employé dans la macro…)

    J’ai un deuxième problème : je souhaite, quand la feuille est sélectionnée, supprimer toutes les formes de la feuille, sauf deux. Mais je n’arrive à conserver qu’une seule forme sur les deux que je souhaite garder…. (Ces formes sont nommées "Clic Insère Nvlles Lignes" et "Clic trie dates" toutes les autres formes sont à supprimer…
    Merci Pierre de ton aide
    Vad

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 56
    Points : 82
    Points
    82
    Par défaut
    Salut,

    La première proposition est celle qui te conviendra. Pour sélectionner ta feuille, il faut juste rajouter la ligne suivante à la suite :
    La deuxième proposition te sera utile si tu cherches à automatiser la création de la feuille en plus de son renommage.

    Pour ta deuxième question, il faudrait qu'on voit le code que tu utilises pour pouvoir te répondre.

    Voila voila!

    A+

    Captain

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    bonjour
    la premiere proposition de Pierre Fauconnier est incomplete
    il t'explique juste comment determiner ton sheets il te faut ensuite le selectionner ou l'activer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ws As Worksheet
    Set ws = Worksheets(Worksheets("Relevés Journaliers").Index + 1)
    ws.activate'ou select comme tu veux
    ou sans variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets(sheets("Relevés Journaliers").Index + 1).activate'ou select comme tu veux
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Pour la suppression des Shapes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub Test()
     
        Dim ws As Worksheet
        Dim S As Shape
     
        Set ws = Worksheets(Worksheets("Relevés Journaliers").Index + 1)
     
        For Each S In ws.Shapes
            If S.Name <> "Clic Insère Nvlles Lignes" And S.Name <> "Clic trie dates" Then S.Delete
        Next S
     
    End Sub

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    En complément du message de Theze, je pense qu'il serait très judicieux de choisir d'autres noms pour les boutons, notamment en évitant espaces et caractères diacritiques. Cela permettrait d'éviter, entre autres, les fautes de saisie...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre à l'essai
    Femme Profil pro
    Autre
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Merci à tous pour votre aide et vos conseils, tout fonctionne à merveille maintenant…
    Vad

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/07/2013, 14h30
  2. Réponses: 7
    Dernier message: 20/08/2008, 14h26
  3. afficher une image que son emplacement se trouve ds 1 base de donne
    Par tntneo dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 15/04/2008, 20h16
  4. Réponses: 1
    Dernier message: 04/04/2007, 11h03
  5. Demander de sélectionner une feuille par clic
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/07/2006, 15h19

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