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 :

Selection multiple de feuilles d'après variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut Selection multiple de feuilles d'après variable
    Bonjour à tous,

    voilà mon pb ... j'ai un classeur avec de nombreuses feuilles et je souhaite sélectionner (avant impression) seulement les feuilles dont le nom commence par "R1 TOT" (par ex)

    J'ai cherché sur le net, et pris ce bout de macro, mais mes connaissances ne me permettent pas d'aboutir ...

    Sachant que à terme, à la place de R1 TOT, je souhaiterais sélectionner mes feuilles avec l'association de 2 variables qui pourront être R1, R2, R3, etc, et TOT, TAT, TIT, etc ...

    Merci d'avance de vos conseils

    Onurb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub selection()
     
    Dim Feuille As Worksheet
    For Each Feuille In ActiveWorkbook.Sheets
        If Left(Feuille, 6).Name = "R1 TOT" Then Feuille.Select Replace:=False
    Next Feuille
    End
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Onurb31 Voir le message
    Bonjour,

    A tester :
    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
     
    Sub Selection()
     
    Dim Feuille As Worksheet
    Dim Liste1 As Variant, Liste2 As Variant
    Dim I As Integer, J As Integer
    Dim NomOnglet As String
     
     
        Liste1 = Array("R1", "R2", "R3"):     Liste2 = Array("TOT", "TAT", "TIT")
     
        For I = LBound(Liste1) To UBound(Liste1)
             For J = LBound(Liste2) To UBound(Liste2)
                 NomOnglet = Liste1(I) & " " & Liste2(J)
                 For Each Feuille In ActiveWorkbook.Sheets
                      If Left(Feuille.Name, 6) = NomOnglet Then Feuille.Select Replace:=False
                 Next Feuille
              Next J
         Next I
     
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    Merci Eric de ta réponse, mais je n'ai pas du être clair ...

    Je vais récupérer une variable dans la cell A1, qui va être R1, R2 ou R3 ou autre chose.
    puis une autre variable dans A2 qui être TOT , TAT, ou autre chose.

    Je souhaite sélectionner toutes les feuilles commençant par (par exemple) "R1 TOT", ou "R3 TUT", etc ... suivant mes 2 variables.

    Du coup, je ne comprends pas bien tes listes ?? Je ne pense pas que ce soit utile, ou je ne comprends pas ... ?

    Onurb

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Onurb31 Voir le message
    Avec ce que tu écris, tu n'auras toujours qu'un seul onglet sélectionné, donc c'est vrai je n'ai pas bien compris.
    En ce qui concerne la modification, il te suffit de prendre les valeurs dans A1 et A2 pour former le nom de ton onglet et de supprimer les boucles.

  5. #5
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Sur base de valeurs placées en A1 et B1 d'une feuille nommée Test, voici comment tu pourrais coder la chose.

    Nom : 2020-11-06_161833.png
Affichages : 191
Taille : 34,5 Ko

    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
    Sub SelectSheets()
      Dim Name As String
      Dim sh As Worksheet
      Dim SheetAlreadySelected As Boolean
     
      Name = Worksheets("test").Range("a1").Value & " " & Worksheets("test").Range("b1").Value & "*"
      For Each sh In Worksheets
        If UCase(sh.Name) Like Name Then
          If Not SheetAlreadySelected Then
            sh.Select
            SheetAlreadySelected = True
          Else
            sh.Select Replace:=False
          End If
        End If
      Next
    End Sub
    Nom : 2020-11-06_161931.png
Affichages : 175
Taille : 8,4 Ko


    Le problème vient de la première feuille car tu ne peux pas, dès le départ, utiliser Replace:=False puisque tu ne sais pas dire, au départ, si la feuille active correspond à ton choix. C'est pourquoi je passe par le booléen SheetAlreadySelected qui me permet de savoir si je passe sur la première feuille qui correspond à la recherche ou sur une des suivantes à sélectionner.
    "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...
    ---------------

  6. #6
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    Merci Pierre,

    on y est presque ... j'avais vais ça "manuellement" (à la souris) en 150 lignes .. alors qu'avec 10 ça peut être suffisant !

    c'est exactement ça que je cherchais à faire, je n'arrive juste pas à faire un apercu avant impression ....-> "Sheets(????).PrintPreview"

    Je ne vois pas ce qu'il faut mettre en ???? (c'est dire mon niveau ..)

    Merci d'avance de votre réponse, ensuite, je passe en résolu ... et j'applaudi des 2 mains ...

    B.

    C'est en pratiquant, que je vais arriver à pratiquer

  7. #7
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Lorsque tes feuilles sont sélectionnées, tu peux utiliser thisworkbook.PrintPreview
    "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 habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 10
    Par défaut
    Voilà, ce qu'il me manquait !!

    Merci à tous

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

Discussions similaires

  1. [XL-2010] VBA selection multiple différente feuille
    Par johns90 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/01/2017, 15h17
  2. [XL-2003] Importer des feuilles d'après une variable
    Par kamawasaki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/05/2012, 09h41
  3. [MySQL] Select multiple avec variables
    Par ptityop dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/09/2011, 12h03
  4. conserver l'etat des options de select multiple apres le submit
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/07/2007, 15h41
  5. faire une selection multiple de feuilles en fonction de variables
    Par blackhelmet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 10h32

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