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 :

Récupérer une partie de nom d'une feuille. [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Par défaut Récupérer une partie de nom d'une feuille.
    Bonjour!

    Je commence en vba et j'ai un classeur avec plusieurs feuille.
    Je voudrais les mettre a la taille de l'ecran donc j'ai trouve une astuce.
    Mon code ressemble a ca:

    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
    22
    23
    24
    Sub Macro1()
     
        Sheets("Toto").Select
        Range("A1:AF37").Select
        ActiveWindow.Zoom = True
        Range("A1").Select
     
        Sheets("Tata").Select
        Range("A1:T39").Select
        ActiveWindow.Zoom = True
        Range("A1").Select
     
        Sheets("Titi 2012").Select
        Range("A1:AT1").Select
        ActiveWindow.Zoom = True
        Range("A1").Select
     
        Sheets("Titi 2013").Select
        Range("A1:AT1").Select
        ActiveWindow.Zoom = True
        Range("A1").Select
     
        MsgBox "Toutes les pages sont ajusté!"
    End Sub
    Ma question est si je créer une feuille Titi 2014, si il est possible de l'intégrer automatiquement (ou tout autre Titi 2015,2016,...).

    J'ai chercher un peu partout donc je voulais essayer avec des conditions de style "If" mais le problème c'est que je voudrais que mon code vienne chercher toutes les feuilles avec le nom "Titi XXXX" avec XXXX aléatoire.
    Et qu'ils les activent une par une pour que je puisse les ajustés..

    En espérant avoir été assez clair.
    (Si vous avez un code plus simple pour ajuster les pages je suis preneur ! )
    Merci


    P.S. : J'utilise Excel 2010

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, un début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Sub Tst()
    Dim Ws As Worksheet
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name Like "Titi ####" Then
                ' ....
            End If
        Next Ws
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Par défaut
    Merci
    j'ai donc rajouter.. mais le problème c'est qu'il faudrait qu'il les prenne une par une les pages pour qu'il puissent faire un zoom sur la sélection dedans.
    Sauf si il y'a une méthode d'ajuster sans avoir la feuille active.

    Donc est ce qu'il est possible de les prendre une par une ?

    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
    22
    23
    24
    25
    26
     
    Option Explicit
     
    sub tst()
    Dim Ws As Worksheet
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name Like "Titi ####" Then
                Range("A1:AT1").Select
                ActiveWindow.Zoom = True
                Range("A1").Select
            End If
        Next Ws
     
        Sheets("Tata").Select
        Range("A1:AF37").Select
        ActiveWindow.Zoom = True
        Range("A1").Select
     
        Sheets("Toto").Select
        Range("A1:T39").Select
        ActiveWindow.Zoom = True
        Range("A1").Select
     
     
        MsgBox "Toutes les pages sont ajusté!"
    End Sub
    Sinon pour information a quoi sert le " Option explicit" car il est en dehors de ma macro. merci

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, cela fait partie du B A BA, voir ici pour Option Explixit

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Par défaut
    Le B A ba pour option explicit , pour ma question de base? ou pour les deux ? ^^

  6. #6
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonjour,
    Je croie que vous cherchez à appliquer le zoom sur toutes les feuilles du classeur, sans toutefois voir celà se produire, si c'est le cas alors celà donnerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    Dim i As Integer
    Application.ScreenUpdating = False 'Ceci Arrête l'actualisation de l'affichage
    For i = 1 To ThisWorkbook.Sheets.Count 'Une variable dont la valeur est entre 1 et le nombre de feuilles qui existent dans votre classeur
    Sheets(i).Activate 'Active les feuilles du classeur 
    With ActiveSheet 'Un Bloc With qui applique le zoom sur toutes les feuilles dés qu'elles sont activées.
    .Range("A1:Q15").Select 'Séléctionne une plage de cellules ici Exemple de A1 jusqu'à Q15
    ActiveWindow.Zoom = True 'Applique le zoom
    End With
    Next
    Sheets(1).Activate 'Revient vers la feuille 1
    Range("A1").Select 'Séléctionne la cellule A1 de la feuille 1
    Application.ScreenUpdating = True 'Relance l'actualisation de l'affiichage
    End Sub
    En fin j'éspére vous avoir bien compris.

    Cordialement
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Par défaut
    Merci de ta réponse.

    Par contre je veux mettre le zoom sur toute les feuilles du classeur oui, mais elles ont un zoom différent .
    Toto, tata, titi ####.
    titi étant du style "Titi 2012', Titi 2013, Titi ...'
    Donc j'aimerais dans un premier temps mettre le zoom sur les feuilles de Toto , Tata, independemment. Et dans un deuxième temps mettre le zoom sur toutes les feuilles commençant par 'Titi ...'

  8. #8
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Alors,
    si le zoom dépend du nom da la feuille vous fairiez comme dans mon exemple:
    Les feuilles dont le nom et Titi#### sont zoomées sur la plage A1 vers Q15
    Les feuilles dont le nom et Tata#### sont zoomées sur la plage A1 vers Q100

    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
    Private Sub CommandButton1_Click()
    Dim i As Integer
    Application.ScreenUpdating = False 'Ceci Arrête l'actualisation de l'affichage
    For i = 1 To ThisWorkbook.Sheets.Count 'Une variable dont la valeur est entre 1 et le nombre de feuilles qui existent dans votre classeur
    Sheets(i).Activate 'Active les feuilles du classeur
    With ActiveSheet 'Un Bloc With qui applique le zoom sur toutes les feuilles dés qu'elles sont activées.
     If .Name Like "Titi####" Then
    .Range("A1:Q15").Select 'Séléctionne une plage de cellules ici Exemple de A1 jusqu'à Q15
    ActiveWindow.Zoom = True 'Applique le zoom dont le nom et Titi.... de A1 jusqu'à Q15
    ElseIf .Name Like "Tata####" Then
    .Range("A1:Q100").Select 'Séléctionne une plage de cellules ici Exemple de A1 jusqu'à Q100
    ActiveWindow.Zoom = True 'Applique le zoom dont le nom et Tata.... de A1 jusqu'à Q100
    End If
    End With
    Next
    Sheets(1).Activate 'Revient vers la feuille 1
    Range("A1").Select 'Séléctionne la cellule A1 de la feuille 1
    Application.ScreenUpdating = True 'Relance l'actualisation de l'affiichage
    End Sub
    Essayez avec ça, celà deverait marcher pour vous.

    Bon courage

    Cordialement
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 5
    Par défaut
    Super !!

    Je vous remercie !

    J'ai juste ajouter des:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ElseIf .Name Like "Toto" Then
            .Range("A1:T40").Select 'Séléctionne une plage de cellules ici Exemple de A1 jusqu'à Q100
            ActiveWindow.Zoom = True 'Applique le zoom dont le nom et Tata.... de A1 jusqu'à Q100
            .Range("A1").Select
    pour chacune de mes pages et les ".range ("A1").Select " pour que quand on va sur les pages il n'y est pas la sélection du zoom d'affiché !

    Votre solution est exactement ce que je recherchais !

    Merci beaucoup

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

Discussions similaires

  1. choisir une partie du nom d'une variable
    Par leninelenine dans le forum Débuter
    Réponses: 10
    Dernier message: 27/06/2015, 21h19
  2. Réponses: 2
    Dernier message: 27/08/2014, 23h31
  3. Récupérer une partie du nom de la feuille dans une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/11/2013, 15h07
  4. Récupérer le numéro du nom d'une feuille.
    Par drics dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/11/2007, 18h16
  5. Réponses: 4
    Dernier message: 27/09/2007, 15h05

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