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 :

nom d'objet à variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut nom d'objet à variable
    Bonjour à tous!

    Je commence le VBA et j'aimerai quelques éclaircies sur un problème que je n'arrive pas à résoudre.

    Mon objectif est de synthétiser un fichier excel de chiffrage assez lourd (10 feuilles différentes) en faisant un tableau regroupant seulement les lignes qui ont été rempli et seulement les colonnes qui m'intéressent. Pour des raisons de traitements d'informations, il faut conserver la valeur mais aussi la couleur des cellules du fichier source.

    J'ai la macro pour copier coller et faire un tableau avec les informations utiles d'une feuille, mais je n'arrive pas à l'appliquer sur les autres feuilles en faisant une boucle.

    Mon idée était la suivante:
    nommer chaque feuille f1 ,f2 ,f3,...f10 et lancer la macro dans fk for k=1 to 10. Seulement je n'arrive pas à inclure une variable dans un nom d'objet...

    Y a t'il une syntaxe ou une façon particulière de faire?


    Voici les lignes que j'ai écrit:

    Nom : nom d'objet variable.JPG
Affichages : 563
Taille : 83,4 Ko



    Merci d'avance pour votre aide


    question bonus ^^
    ma ligne pour copier coller la couleur de fond de cellule ne fonctionne pas.. avez vous autre chose à me proposer?

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Essayez ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            For i = 1 To N
                If Sheets(k).Cells(i, C) > 0 And Sheets(k).Cells(i, C) < 1000000 Then
                    fd.Cells(j, d) = Sheets(k).Cells(i, C + 1)
                    fd.Cells(j, d - 1) = Sheets(k).Cells(i, C - 3)
                    fd.Cells(j, d).Font.Color = Sheets(k).Cells(i, C + 1).Font.Color
                    j = j + 1
                End If
            Next i
    Pour le cas où vous voudriez passer toutes les feuilles en revue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For k = 1 To Sheets.Count
    PS: à l'avenir, collez le code plutôt qu'une image, puis sélectionnez-le entièrement et cliquez sur la le pavé "#" (ajout d'une balise de code) .

    Cdlt

  3. #3
    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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma ligne pour copier coller la couleur de fond de cellule ne fonctionne pas.. avez vous autre chose à me proposer?
    C'est normal
    Font.Color n'est pas la couleur du fond (mieux dit l'intérieur) de cellule mais de la fonte (Une fonte est l’ensemble des caractères correspondant aux mêmes caractéristiques de corps, graisse et italique au sein d’une même police.)
    Il faut utiliser Interior.Color

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A20").Interior.Color = vbYellow
    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

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    PS: à l'avenir, collez le code plutôt qu'une image, puis sélectionnez-le entièrement et cliquez sur la le pavé "#" (ajout d'une balise de code) .
    +1

    Citation Envoyé par motivator Voir le message
    Mon idée était la suivante:
    nommer chaque feuille f1 ,f2 ,f3,...f10 et lancer la macro dans fk for k=1 to 10. Seulement je n'arrive pas à inclure une variable dans un nom d'objet...

    Y a t'il une syntaxe ou une façon particulière de faire?
    Ce qu'on appelle dans d'autres langages des macrovariables (variables dont le nom lui-même est variable) n'existe pas en VBA.
    Par contre, il est possible d'avoir des variables indexées, ce qui s'applique à ton cas.
    Pense aussi à déclarer et typer tes variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim WS_f(10) As Worksheet
    Dim k As Long
     
    Set WS_f(1) = Worksheets("1GO MACON")
    Set WS_f(2) = Worksheets("2GO BOIS")
    ....
     
    For k = 1 To 10
        If WS_f(k).Cells(i, c) > 0 ...
    Citation Envoyé par Philippe Tulliez Voir le message
    Une fonte est l’ensemble des caractères correspondant aux mêmes caractéristiques de corps, graisse et italique au sein d’une même police.)
    Dit plus simplement, la Font, ce sont les caractères (le texte, les chiffres, etc.).

Discussions similaires

  1. Nom d'objet variable (PictureBox)
    Par EFT18569 dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/10/2018, 12h39
  2. Nom d'objet variable
    Par polo68 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2011, 11h11
  3. Nom d'objet variable
    Par lyrix dans le forum Langage
    Réponses: 5
    Dernier message: 04/06/2007, 11h03
  4. Utiliser une variable pour stocker les noms d'objets.
    Par en_gel_ho dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2007, 16h44
  5. Nom objet variable
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/09/2006, 10h36

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