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 :

Navigation Feuille Variable [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut Navigation Feuille Variable
    Bonjour à tous,

    Voilà mon problème.

    J'aimerai naviguer entre mes feuilles sans utiliser le nom de la feuille.
    Du coup j'avais pensé utilisé une variable correspondant au numéro de ma feuille.

    J'explique avec un exemple, voici ce qui marche :
    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
    Dim i As Integer
    Dim cs As String, cellule_vs As String
    Dim vs As Range
     
    With Feuil1
     
    For i = 4 To 44
     
    cs = .Cells(i, 3).Value
     
    Set vs = Feuil3.Cells.Find(cs)
    cellule_vs = vs.Row
     
    .Cells(i, 2).Value = Feuil3.Cells(cellule_vs, 3)
     
    Next
    End With
    End Sub
    Maintenant je voudrai remplacer Feuil1 par quelque chose comme :
    Où j serai une variable.

    Merci d'avance pour vos nombreuses réponses

  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, as-tu pensé à ce qui se passera quand l'utilisateur déplacera ( volontairement ou pas ) une feuille ?

    Sinon il y a le CodeName qui présente l'avantage de ne pas avoir à toucher au code VBA, cela même si l'utilisateur déplace / ajoute une feuille

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Feuil1 est déjà un codename,
    Ma question et donc est-ce que c'est possible d'associé une variable à un codename?

    Merci d'avance

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    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 : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Un petit exemple basic Feuil2 à Feuil4 sont des CodeName
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
     Dim f As Byte
     Dim sht(2) As Worksheet
     Set sht(0) = Feuil2
     Set sht(1) = Feuil3
     Set sht(2) = Feuil4
     For f = 0 To 2
      Debug.Print sht(f).Name
     Next
    End Sub
    Ou plus drôle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub t()
     Dim sh As Worksheet, n As Byte
     For Each sh In Worksheets
      For n = 2 To 4
       If sh.Name = "Feuil" & n Then Debug.Print sh.Name: Exit For
      Next
     Next
    End Sub
    Et encore une autre solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim f As Byte
     For f = 2 To 4
      Debug.Print ThisWorkbook.VBProject.VBComponents("Feuil" & f).Name
     Next
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Merci beaucoup.

    Voici donc ma macro:

    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
    27
    28
    29
    30
    31
    32
    33
    Sub Correspondance_code_ville()
     
    Dim i As Integer, fin_tableau As Integer
    Dim cs As String, cellule_vs As String
    Dim vs As Range
    Dim f As Byte
    Dim sht(6) As Worksheet
     
    Set sht(1) = Feuil1
    Set sht(2) = Feuil2
    Set sht(3) = Feuil3
    Set sht(4) = Feuil4
    Set sht(5) = Feuil5
    Set sht(6) = Feuil6
     
    For f = 1 To 4 Step 3
        With sht(f)
        fin_tableau = sht(f).UsedRange.Rows.Count
        For i = 4 To fin_tableau - 1
     
            cs = .Cells(i, 3).Value
     
            Set vs = sht(f + 2).Cells.Find(cs)
            cellule_vs = vs.Row
     
            .Cells(i, 2).Value = sht(f + 2).Cells(cellule_vs, 3)
     
            Next
        End With
    Next
     
     
    End Sub
    Pensez vous qu'il y a moyen de faire mieux?

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/07/2009, 18h06
  2. Utiliser un nom de feuille variable dans une formule
    Par DubDub dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2009, 19h46
  3. Fonction Indirect nom de feuille variable
    Par cazimiro33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/09/2008, 17h17
  4. recherchev sur feuille variable
    Par raymoundo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/04/2008, 13h21
  5. formule avec nom de la feuille variable
    Par DIDIDIDA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/04/2008, 14h59

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