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 :

Lister les couleurs excel en long [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut Lister les couleurs excel en long
    Bonjour a tous
    je cherche a lister les couleurs Excel en long sans passer par un object

    du genre si ca existe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1 to 56 
    msgbox application.indexcolor(i)
    next
    quelqu'un a une idée??
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    j'ai de la difficulté à comprendre, il y en a tout simplement 56.

    EDIT: en passant ce n'est pas indexcolor c'est ColorIndex

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    pourtant simple

    je cherche a lister les couleur Excel sans passer par un object range ou autre

    exemple avec un object range a supposer que mes cellules soit colorées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i = 1 to 56 
    msgbox cells(1,1).interior.color
    next
    j'obtiens la couleur en long

    mais je veut partir de l'application
    un truc du genre si ca existe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox application .color(colorindex (i))
    c'est plus clair par ce que la je peut plus simplifier
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    pourtant simple
    je cherche a lister les couleur Excel sans passer par un object range ou autre
    Bonjour,
    je ne comprend toujours pas, si c'est de construire un tableau de tout les couleurs dans excel alors

    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 test
      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual   'pre XL97 xlManual
    Dim i As Long
    Dim str0 As String, str As String
    For i = 0 To 56
      Cells(i + 1, 1).Interior.ColorIndex = i
      Cells(i + 1, 1).Value = "[Color " & i & "]"
      Cells(i + 1, 2).Font.ColorIndex = i
      Cells(i + 1, 2).Value = "[Color " & i & "]"
      str0 = Right("000000" & Hex(Cells(i + 1, 1).Interior.Color), 6)
     
      str = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
     
      Cells(i + 1, 3) = "#" & str & "#" & str & ""
      Cells(i + 1, 4).Formula = "=Hex2dec(""" & Right(str0, 2) & """)"
      Cells(i + 1, 5).Formula = "=Hex2dec(""" & Mid(str0, 3, 2) & """)"
      Cells(i + 1, 6).Formula = "=Hex2dec(""" & Left(str0, 2) & """)"
      Cells(i + 1, 7) = "[Color " & i & ")"
    Next i
    done:
      Application.Calculation = xlCalculationAutomatic  'pre XL97 xlAutomatic
      Application.ScreenUpdating = True
    End Sub

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oh!!puré je pensais parler Français pourtant

    non je ne veut pas faire de tableaux de couleur
    je ne veux pas utiliser d'object (range control , shapes , etc.....)

    je veux

    le retour de chaque couleur index de excel en long ou même en hex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i= 1 to 56 
    msgbox lacouleur(X) d'Excel ' le x représentant un des 56 possibilités
    next
    dans le msgbox je doit avoir le long ou hex correspondant a la couleur(x)

    donc ma question est
    existe il oui ou non une expression représentant la couleur(x) d'Excel mais pas un membre de l'object range ou autre

    du genre application.couleur(X) ou autre

    je ne peut pas faire plus clair la
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    le retour de chaque couleur index de excel en long ou même en hex
    Oui mais tu veux la couleur en long

    en sachant qu'il y en à 56
    en Long c'est directement ton i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 56
        MsgBox "Le ColorIndex de " & i & " en Long  est " & i
    Next
    C'est pour ça que j'ai de la difficulté à comprendre.

    ou
    Est-ce que tu veux savoir quel est le CouleurIndex du string "RED" en Long ? Ça je ne sait pas

    ou
    Est-ce que tu cherche un genre de application.CouleurIndex.Count ? Ça non plus je ne sais pas

    mais pour ta question
    je cherche a lister les couleurs Excel en long ? il sont déjà en long et en sachant qu'il y en a 56, tu as déjà ta réponse, de 1 à 56

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    wahouh....

    je te cite
    en Long c'est directement ton i
    et NON !!!!!!! "i" C'EST L'INDEX(colorindex) dans la boucle en aucun cas c'est le long de la couleur

    d'ailleurs couleur 1 ou même 56 en long donne du noir


    mais bon visiblement tu ne me comprends pas

    je sais pas comment l'exprimer mieux que ca je parle Français pourtant

    en gros je donne l'index en paramètre et me redonne le long voila est ce possible sans utiliser d'object c'est pas compliqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox couleurexcel(36)
    le message m'affiche XXXXXX(la valeur long de la couleur)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour à vous deux et bonjour au forum,

    Tu ne vas surement pas aimer mais je te propose ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function couleur_en_Long(i As Byte) As Long
     
    Dim couleur_temp As Long
    Dim rg As Range: Set rg = ActiveCell
     
    couleur_temp = rg.Interior.Color
    rg.Interior.ColorIndex = i
    couleur_en_Long = rg.Interior.Color
    rg.Interior.Color = couleur_temp
     
    End Function
     
     
    Sub test(): MsgBox couleur_en_Long(3): End Sub
    Sinon je ne pense pas qu'il existe une collection des couleurs qu'on puisse utiliser sans utilise les propriétés ColorIndex d'un objet.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour Antoni

    non j'aime pas

    je ne veut justement pas utiliser d'object

    vous pensez bien que ma question n'était pas si simple sinon je n'aurais pas ouvert un post
    syntaxe :
    expression . colorindex' donne l'index de la couleur de l'expression
    expression étant un object (range,control,etc...)

    expresion.color donnerait le long de la couleur

    moi ce que je veux c'est que le "expression soit un ( soit l'application ou l'application. Palette ,ou autre ) si ca existe

    il y a bien un moyen de lister les couleur disponible dans l'application excel sans pour autant passer par une cellule par exemple

    c'est cette expression que je cherche
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Expert éminent sénior
    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
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir Les couleurs en VBA Excel: Les équivalences Hex-Long-RGB et adapter à ton contexte.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    voilà pour je ne comprenais pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim toto as Long
    toto = 6
    cells(1,1).interior.colorindex = toto
    la cellule est jaune et non noir,


    Ça été long, mais je crois que j'ai finalement compris.
    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
    Sub test()
        CouversionCouleurLong 6 ' 6 est le ColorIndex
    End Sub
     
    Function CouversionCouleurLong(Couleur As Integer) As Long
        Dim CouleursLng()
        CouleursLng = Array(0,0, 16777215, 255, 65280, 16711680, 65535, 16711935, 16776960, 128, 32768, 8388608, 32896, 8388736, 8421376, _
        12632256, 8421504, 16751001, 6697881, 13434879, 16777164, 6684774, 8421631, 13395456, 16764108, 8388608, 16711935, 65535, _
        16776960, 8388736, 128, 8421376, 16711680, 16763904, 16777164, 13434828, 10092543, 16764057, 13408767, 16751052, 10079487, _
        16737843, 13421619, 52377, 52479, 39423, 26367, 10053222, 9868950, 6697728, 6723891, 13056, 13107, 13209, 6697881, 10040115, 3355443, 16777215)
        'En cas d'erreur colorie en noir
        If Couleur < 0 Or Couleur > 56 Then CouversionCouleurLong = 0
        CouversionCouleurLong = CouleursLng(Couleur)
        MsgBox CouversionCouleurLong
    End Function

  12. #12
    Expert éminent sénior
    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
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, il y a aussi Afficher palette 256 couleurs, sans doute à adapter.
    sinon :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Option Explicit
    Sub Couleurs()
    Dim Ws As Worksheet
    Dim RGBc As Long
    Dim B As Integer, G As Integer, R As Integer
    Dim i As Long
    Dim iRow As Long, iCol As Long
    Dim Ar() As Variant
    Dim str0 As String, str As String
     
        Set Ws = ActiveWorkbook.Worksheets.Add
     
        With Ws
            .Cells(i + 1, 2) = "ColorIndex"
            .Cells(i + 1, 3) = "Html"
            .Cells(1, 4) = "R"
            .Cells(1, 5) = "G"
            .Cells(1, 6) = "B"
        End With
     
        '   56 Couleurs Standards
        For i = 1 To 56
            With Ws
                .Cells(i + 1, 1).Interior.ColorIndex = i
                .Cells(i + 1, 2) = i
     
                str0 = Right$("000000" & Hex(Cells(i + 1, 1).Interior.Color), 6)
                str = Right$(str0, 2) & Mid$(str0, 3, 2) & Left$(str0, 2)
                .Cells(i + 1, 3) = "#" & str
     
                RGBc = .Cells(i + 1, 1).Interior.Color
                R = Int(RGBc Mod 256)
                G = Int((RGBc Mod 65536) / 256)
                B = Int(RGBc / 65536)
     
                .Cells(i + 1, 4) = R
                .Cells(i + 1, 5) = G
                .Cells(i + 1, 6) = B
                .Cells(i + 1, 7) = RGBc
            End With
        Next i
     
        '   40 Couleurs Disponibles dans Menu Couleur Cellules
        Ar = Array(1, 53, 52, 51, 49, 11, 55, 56, _
                9, 46, 12, 10, 14, 5, 47, 16, _
                3, 45, 43, 50, 42, 41, 13, 48, _
                7, 44, 6, 4, 8, 33, 54, 15, _
                38, 40, 36, 35, 34, 37, 39, 2)
     
        With Ws
            i = 1
            For iRow = 1 To 5
                For iCol = 1 To 8
                    .Cells(iRow + 1, 7 + iCol).Interior.ColorIndex = Ar(i - 1)
                    .Cells(iRow + 1, 7 + iCol) = Ar(i - 1)
                    i = i + 1
                Next iCol
            Next iRow
     
            With .Range("H2:M6")
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
     
            .Columns("B:F").EntireColumn.AutoFit
            .Range("H5:O5").Font.ColorIndex = 0
            .Columns("H:O").ColumnWidth = 2.25
     
            .Range("H2:O4").Font.ColorIndex = 2
            .Range("N5").Font.ColorIndex = 2
     
            .Range("A1:P18").Select
            ActiveWindow.Zoom = True
     
            .Range("A1").Select
        End With
    End Sub

  13. #13
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    il ne veux pas passer par un objet alors je crois qu'il faut toute les mettre dans un array

    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
    Sub test()
         toto = CouversionCouleurLong(6)
        MsgBox toto
    End Sub
     
    Function CouversionCouleurLong(Couleur As Integer) As Long
        Dim CouleursLng()
        CouleursLng = Array(0,0, 16777215, 255, 65280, 16711680, 65535, 16711935, 16776960, 128, 32768, 8388608, 32896, 8388736, 8421376, _
        12632256, 8421504, 16751001, 6697881, 13434879, 16777164, 6684774, 8421631, 13395456, 16764108, 8388608, 16711935, 65535, _
        16776960, 8388736, 128, 8421376, 16711680, 16763904, 16777164, 13434828, 10092543, 16764057, 13408767, 16751052, 10079487, _
        16737843, 13421619, 52377, 52479, 39423, 26367, 10053222, 9868950, 6697728, 6723891, 13056, 13107, 13209, 6697881, 10040115, 3355443, 16777215)
        'En cas d'erreur colorie en noir
        If Couleur < 0 Or Couleur > 56 Then CouversionCouleurLong = 0
        CouversionCouleurLong = CouleursLng(Couleur)
     
    End Function

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Merci Gnain c'est la conclusion que j'ai eu toute a l'heure :mettre tout dans un array

    mais ca ne me plait pas je trouverais un autre moyen

    Merci pour le coup de main
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Possibilité de RGB en long

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox RGB(255, 111, 254)

  16. #16
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    J'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ActiveWorkbook.Colors(6)
    colorindex 6 donne bien 65535

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    and the WINNER!!!!! is GNAIN !!!!!!!!!

    et ben voila quelque chose de bien : Moi être très content

    Maintenant tout le monde sait grâce a toi

    merci a tous les participants c'est tellement simple quand on sait pourtant il fallait aller la chercher cette question ( lister les 56 couleur excel sans utiliser d'object range )

    voila un petit sujet de contribution qui a l'air de rien mais dans son contexte .........
    j
    e suppose que Gnain va s'en charger

    y a que moi pour poser des questions tordues pareil
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    je suis curieux, si ce n'est pas trop confidentiel, tu nous à toujours pas dit à quoi ça va te servir.

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je travail sur le projet de je ne sais plus qui sur la page betclic

    je construit donc le code html d'une table avec certaines donnée de la page

    ce code correspond a plusieurs tableaux

    a chaque tableaux j'ajoute un td colspans X contenant le titre du tableaux

    et chaque tableaux est créer dans une seule boucle

    en fin de boucle j'envoie dans une fonction que j'ai créer y déjà quelque année
    cette fonction créé un doc html virtuel en mémoire avec createobject(htmlfile)

    une fois le doc créé je stylise mes balises "TD"(fontstyle,bordures et background du titre
    et c'est la que la fonction arrive je fait un rnd sur workbook.colors et j'obtiens une couleur différente pour chaque titre

    cette couleur je la renvoie dans une fonction qui me la converti en couleur html

    je me sert de mon clipboard virtuel pour stoker le codehtmll
    et je paste sur le sheet
    j'obtiens ainsi un tableau Excel tout styler sans passer par les fonctions Excel donc sans boucler sur les cellules
    ce qui n'est pas négligeable en cas de grande plage utilisée

    je te fait un exemple et je reviens
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    voila
    c'est pas optimiser c'est pas le but

    le but étant de te montrer ce que je fait
    copie ce code dans un fichier vierge
    regarde le resultat
    tu trouvera certainement si tu cherche bien dans les contributions
    une des miennes traitant le style des cellule excel par le html /CSS

    quand tu aura vu le résultat
    ouvre l'éditeur vba et la fenêtre d'exécution copie le code html du debug et colle le dans un fichier block note et sauve le en html ouvre le avec IE
    tu aura le même résultat mais sur une page web
    c'est beau non?
    et tout ca avec un fichier html virtuel et un clipboard virtuel LOL
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Sub exemple_table_html_to_tableexel()
    Dim elemlig(3), elemlig2, elemlig3
    elemlig1 = Array("prenom", "Gnain", "patrick")
    elemlig2 = Array("age", "20", "45")
    elemlig3 = Array("membre", "oui", "oui")
     
    code = code & "<tr>" & vbCrLf
    For i = 0 To 2
    code = code & "<td>" & elemlig1(i) & "</td>" & vbCrLf
    Next
    code = code & "</tr>" & vbCrLf
    code = code & "<tr>" & vbCrLf
    For i = 0 To 2
    code = code & "<td>" & elemlig2(i) & "</td>" & vbCrLf
    Next
    code = code & "</tr>" & vbCrLf
    code = code & "<tr>" & vbCrLf
    For i = 0 To 2
    code = code & "<td>" & elemlig3(i) & "</td>" & vbCrLf
    Next
    code = code & "</tr>" & vbCrLf
    With CreateObject("htmlfile")
    .body.innerhtml = "<table>" & code & "</table>"
    couleur1 = coul_XL_to_coul_HTMLX(ActiveWorkbook.Colors((Rnd * 53) + 2))
    couleur2 = coul_XL_to_coul_HTMLX(ActiveWorkbook.Colors((Rnd * 53) + 2))
    With .getelementsbytagname("table")(0): .cellpadding = 0: .cellspacing = 0: End With
    Set ligne = .getelementsbytagname("TR")
    For i = 0 To ligne.Length - 1
    ligne(i).Children(1).Style.backgroundcolor = couleur1
    ligne(i).Children(2).Style.backgroundcolor = couleur2
    Next
    For Each elem In .all
    elem.Style.Border = "1px solid"
    Next
    'mon clipboard virtuel
    faire = .ParentWindow.clipboardData.SetData("text", .body.innerhtml)
            With Sheets(1)
                Set cel = .Cells(Rows.Count, 1).End(xlUp).Offset(2, 0)
                cel.Select
                .Paste:
            End With
            faire = .ParentWindow.clipboardData.ClearData("text")
     
    Debug.Print .body.innerhtml
    'tu n 'a qu'a recopier tout ce qui se trouve dans le debug (fenetre d'execution) et le mettre dans un fichier blocknote et le sauver en html
    ' tu aura le meme resultat que sur le sheet
    End With
    End Sub
    Public Function coul_XL_to_coul_HTMLX(couleur)
        Dim str0 As String, str As String
        'If couleur = 16777215 Then couleur = vbWhite
        str0 = Right("000000" & Hex(couleur), 6)
        str = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
        coul_XL_to_coul_HTMLX = "#" & str & ""
    End Function
    j'ai fait ca a l'arrache ne m'en veut pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Lister les fichiers d'un répertoire dans une feuille Excel
    Par AlainTech dans le forum Contribuez
    Réponses: 3
    Dernier message: 10/03/2016, 14h14
  2. Lister les fichiers Excel ouverts avec Microsoft.Office.Interop.Excel
    Par datacell33 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/10/2010, 10h41
  3. Determiner les couleurs du camembert Excel en Perl
    Par makohsarah dans le forum Langage
    Réponses: 0
    Dernier message: 22/04/2009, 10h23
  4. [Excel] Lister les éléments distincts d'une colonne
    Par GnarlyYoyo dans le forum Excel
    Réponses: 2
    Dernier message: 30/12/2006, 10h00
  5. Réponses: 2
    Dernier message: 03/05/2006, 15h01

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