Probleme avec ColorIndex

Tiret2

XLDnaute Nouveau
Bonjour a tous,

je vous explique mon problème:

J'ai un classeur avec 2 onglet, je dois analyse le 1er, si la ligne (appelons la "ligne i")est d'une couleur particulière (la même que celle de la ligne 7 je crois) alors je dois aller dans le 2eme onglet.
Dans le 2eme onglet je dois parcourir la 1ere colonne pour voir si il y a correspondance de texte, si oui, je dois copier (sur cette ligne que l'on appellera "ligne Y") une certaine plage de cellule et la copier dans "la ligne i", le problème étant que les dites-cellules du ère onglet sont fusionnées (et doivent le rester).
Vu que ce n'est pas possible d’après Excel j'essaye de contourner le problème en parcourant les 52 cellules de la "ligne Y" et de copier au fur et a mesure la couleur de la "ligne Y" vers la "ligne i", vindiou c'est compliqué a comprendre...
J'ai donc ce code VBA mais il ne marche a priori pas et il y a un problème sur l'affectation de la couleur je pense.

Sub Part22()
Dim q As Integer
Dim m As Integer
Dim p As Integer
Dim ColorCell As Integer

Set Wb1 = ThisWorkbook
Worksheets(1).Activate
For m = 17 To 300
If Worksheets(1).Cells(m, 2).Interior.ColorIndex = Worksheets(1).Cells(7, 4).Interior.ColorIndex Then 'Comparaison avec la couleur de la ligne 7
For q = 1 To 100
If Wb1.Worksheets(1).Cells(m, 4).Value = Wb1.Worksheets(2).Cells(q, 1).Value Then
'Verification que le texte corresponde
For p = 1 To 54
ColorCell = Worksheets(2).Cells(q, p).Interior.IndexColor
Worksheets(1).Cells(m, 8 + 7 * (q - 1)).Interior.IndexColor = ColorCell

'Couleur mise en mémoire puis appliquée a la cellule, le debeugeur intervient
Next p
End If
Next q
End If
Next m

End Sub

J'ai du faire une erreur de syntaxe qui m’échappe a moins que ce que j'essaye de faire ne soit simplement pas possible...
Toute aide sera la bienvenue je vous remercie d'avance!
 

Roland_M

XLDnaute Barbatruc
Re : Probleme avec ColorIndex

bonjour

ici

ColorCell = Worksheets(2).Cells(q, p).Interior.IndexColor
Worksheets(1).Cells(m, 8 + 7 * (q - 1)).Interior.IndexColor = ColorCell

ce serait pas plutôt !?
ColorCell = Worksheets(2).Cells(q, p)).Interior.ColorIndex
Worksheets(1).Cells(m, 8 + 7 * (q - 1))).Interior.ColorIndex = ColorCell
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Probleme avec ColorIndex

Bonjour Tiret, bonjour le forum,

Il semblerait que tu sois passé de ColorIndex à IndexColor et VBA n'a pas aimé...

Ton code modifié :
Code:
Sub Part22()
Dim Wb1 As Workbook
Dim q As Integer
Dim m As Integer
Dim p As Integer
Dim ColorCell As XlColorIndex

Set Wb1 = ThisWorkbook
With Worksheets(1)
    For m = 17 To 300
        If .Cells(m, 2).Interior.ColorIndex = .Cells(7, 4).Interior.ColorIndex Then 'Comparaison avec la couleur de la ligne 7
            For q = 1 To 100
                If .Cells(m, 4).Value = Wb1.Worksheets(2).Cells(q, 1).Value Then
                    'Verification que le texte corresponde
                    For p = 1 To 54
                        ColorCell = Worksheets(2).Cells(q, p).Interior.ColorIndex
                        .Cells(m, 8 + 7 * (q - 1)).Interior.ColorIndex = ColorCell
                        'Couleur mise en mémoire puis appliquée a la cellule, le debeugeur intervient
                    Next p
                End If
            Next q
        End If
    Next m
End With
End Sub

[Édition]
Bonjour Roland on s'est croisé...
 

Tiret2

XLDnaute Nouveau
Re : Probleme avec ColorIndex

Arf effectivement, c'est une erreur toute bête. Merci beaucoup!

Mais bon mon code ne fonctionne pas, donc j'ai une question pour vous:
au niveau des indices de Cells, est ce que Excel ne tient compte QUE des lignes affichées? J'ai quelques lignes masquées dans mon premier onglet et donc j'essaye de comprendre ce qui ne va pas.


Peut être que la condition If .Cells(m, 4).Value = Wb1.Worksheets(2).Cells(q, 1).Value ne teste en réalité pas la chaîne de caractère et c'est pour cela que je n'ai pas de résultat? Cette macro au delà d’être lourde est frustrante, je ne peux pas savoir ou est mon erreur dans les 3 boucles...

Si quelqu'un sait comment je peut copier une cellule dans une cellule fusionnée (7 cellules fusionnées en 1 seule) en VBA il pourrait certainement me sauver la vie. Car il me dit que c'est pas possible.

Un grand merci pour le premier point et merci d'avance si vous vous penchez sur mon problème
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Probleme avec ColorIndex

Bonjour Tiret, bonjour el forum,

On va pas y passer des heures à te faire des propositions dans le vide ! Commence par mettre ton fichier en pièce jointe et après on verra...
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Probleme avec ColorIndex

Bonjour le fil, bonjour el forum,

J'ai téléchargé ton fichier. Comme je n'ai qu'Excel 2003, j'utilise une visionneuse qui me permet d'ouvrir les fichiers plus récents et là... Elle refuse d'ouvrir ton fichier. Pourrais-tu mettre une version compatible Excel 2003 ?
 

Tiret2

XLDnaute Nouveau
Re : Probleme avec ColorIndex

Bonjour Robert,

https://www.dropbox.com/s/tfj8ryifndgcdl8/Travail23.xls alors bizarrement il pèse 10 fois plus lourd vu qu'il y avait pas mal de mise en forme conditionnelles, lors de changement de format, il a pas apprécié je pense...
Si il y a un problème dis le moi.

Merci a toi

EDIT: A priori l'analyse se fait bien correctement (suivi des variables avec affichages de MsgBox bien pratique), mais rien a faire, rien ne se colore...

EDIT: En fait j'avais fait l'erreur de mettre Cells(m, 8 + 7 * (q - 1)).Interior.ColorIndex = ColorCell
alors que c'etait Cells(m, 8 + 7 * (p - 1)).Interior.ColorIndex = ColorCell


Mais bon il ne me mets que du noir ou du blanc comme couleur... autre mystère
 
Dernière édition:

Tiret2

XLDnaute Nouveau
Re : Probleme avec ColorIndex

Re-Bonjour a tous,


alors j'ai un réel problème concernant la couleur, le ColorIndex de la cellule récupérée et appliquée aux cellules du premier onglet est toujours de 48...
3 remarques sur ce point:
- Le color index récupéré devrait varier car les couleurs récupérées ne sont pas les mêmes.
- Le colorIndex correspondant a 48 correspond a du gris, mais quand la macro applique le color Index, ca donne une cellule noire...
- Vu que la majeure partie de ma feuille excel est formatée par des mises en formes conditionnelles je me demande si cela peut influer

J'avoue que la mon problème est ultra spécifique et je comprends si personne ne me réponds
 

jpb388

XLDnaute Accro
Re : Probleme avec ColorIndex

Bonjour à tous
à cette ligne
Code:
Worksheets(1).Cells(m, 8 + 7 * (q - 1)).Interior.IndexColor = ColorCell
tu fais référence à une cellule qui est fusionnée et celle ci n'est pas la première cellule de la fusion donc elle prend la valeur que tu lui donne mais elle affiche la valeur de la 1ere cellule
ex: plage fusionnée a8:a20 a8 est bleu
cellule traitée a9 restera bleu même si tu dis quelle est noir
cellule traitée a8 la plage a8:a20 deviendra bleu
 

Discussions similaires

Statistiques des forums

Discussions
312 396
Messages
2 088 054
Membres
103 709
dernier inscrit
FrrankX