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 :

Recupéré le texte et sa couleur de fond


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Février 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 32
    Par défaut Recupéré le texte et sa couleur de fond
    Bonjour,

    J'ai ce code qui me permet de chercher des produits dans le classeurs, si il les trouvent il me copie la valeur du texte qui est dans la case dans un autre onglet, j'aimerais aussi récupéré la couleur de la case en + du texte, mais je ne vois pas trop ou je pourrais l'ajouter

    Merci d'avance

    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
    With Worksheets("Panier")
        'On se place sur B9
        Set oRng = .Range("B9")
        'On parcours de B9 à la dernière ligne non-vide
        For i = 0 To .Cells(.Rows.Count, 1).End(xlUp).Row - 1
            'Si on trouve "Tablette" ou "Produits" (on peut enlever le LCase si souhaité)
            'If LCase(oRng.Offset(i, 0)) = "Tablette" Or LCase(oRng.Offset(i, 0)) = "Produits" Then
             If oRng.Offset(i, 0) = "Tablette" Or oRng.Offset(i, 0) = "Produits" Then
                'On vérifie qu'on a des éléments à sa droite
                If .Cells(oRng.Offset(i, 1).Row, .Columns.Count).End(xlToLeft).Column >= oRng.Offset(i, 1).Column Then
                    'Si oui, on récupère la range des valeurs
                    Set oProd = Range(oRng.Offset(i, 1), .Cells(oRng.Offset(i, 1).Row, .Columns.Count).End(xlToLeft))
                    'qu'on parcours.
                    For Each oCell In oProd
                        'Si on trouve quelque chose
                        If oCell <> "" Then
                            n = n + 1
                            'on sauvegarde les éléments.
                            ReDim Preserve oTable(1 To 2, 1 To n)
                            oTable(1, n) = oCell
                            oTable(2, n) = oCell.Offset(1, 0)
                        End If
                    Next oCell
                End If
            End If
        Next i
    End With

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Salut,

    Ici je pense, il faut redimensionner le tableau à 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ReDim Preserve oTable(1 To 3, 1 To n)
    oTable(1, n) = oCell
    oTable(2, n) = oCell.Offset(1, 0)
    oTable(3, n) = oCell.Color
    Gdal

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Février 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ReDim Preserve oTable(1 To 3, 1 To n)
    oTable(1, n) = oCell
    oTable(2, n) = oCell.Offset(1, 0)
    oTable(1, n) = oCell.Color
    Est-ce que cette ligne devrait être à 3 au lieu de 1? oTable(1, n) = oCell.Color.

    Merci
    (dans les 2 cas j'ai une erreur)

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Les messages se sont croisés. Il y avait effectivement une erreur dans mon 1er post.

  5. #5
    Membre averti
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Février 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 32
    Par défaut
    Merci pour la correction,

    Est-ce que je devrais définir oCell.Color dans les variables?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Recherche()
    'Déclaration des variables
    Dim oRng As Range
    Dim i As Integer, n As Integer
    Dim oProd As Range, oCell As Range
    Dim oTable() As String

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Je viens d'essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'on sauvegarde les éléments.
    ReDim Preserve oTable(1 To 3, 1 To n)
    oTable(1, n) = oCell
    oTable(2, n) = oCell.Offset(1, 0)
    oTable(3, n) = oCell.DisplayFormat.Interior.Color
    Debug.Print oRng.Offset(i, 0) & " - " & oTable(1, n) & " - " & oTable(2, n) & " / " & oCell.Offset(1, 0).AddressLocal & " - " & oTable(3, n)
    Fonctionne!
    La ligne debug.print est utilisée pour le débugger (Affichage / Fenêtre d'exécution)

    Gdal

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

Discussions similaires

  1. Couleur de texte, couleur de fond
    Par defluc dans le forum Delphi
    Réponses: 6
    Dernier message: 17/05/2006, 15h15
  2. Couleur de fond sur un "text"
    Par Livingstone dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/01/2006, 12h02
  3. [Tlistview] Couleur de fond et de texte d'une ligne
    Par radimby dans le forum Composants VCL
    Réponses: 8
    Dernier message: 21/12/2005, 09h17
  4. Changer la couleur de fond d'un champ "text"
    Par nic211 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/02/2005, 13h50
  5. Réponses: 4
    Dernier message: 23/06/2004, 14h30

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