couleur

B

bin

Guest
Bonjour à tous!!!

Mon problème est surement tres simple mais je débutte depuis 1 mois en VBA sous excel...alors soyez cléments!

Voila:
je veux copier une plage de 5 cellules du fichier classeur1.xls et les coller à la suite de celle que j'ai déjà collées dans classeurs2.xls, et ce, de façon repetitive...
C'est ce que fait ce code:


Sub couleur()
Range("C4:D8").Select
Selection.Copy
Workbooks.Open Filename:= _
"E:\Documents and Settings\Fabien.RICHARD\Desktop\Classeur2.xls"
Range("C6").End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
End Sub

Mais ce qui serai bien c'est que pour differencier la plage copiée avec sa précedente, elle ait des couleur differentes...
Alors j'ai intercalé ces deux lignes:

Range(ActiveCell.End(xlDown), ActiveCell.End(xlDown).Offset(-4, 1)).Select
Selection.Interior.ColorIndex = 8

(8 c'est mon chiffre fetiche...evid's)

Est ce que qqun sait comment je peux mettre une couleur differente à chaque fois (sauf des copuleurs très foncées qui m'empecheraient de voir ce qui y est ecrit)?
Genre en mettant un nombre aleatoire...


Merci à TOUS!!
 
J

JCA06

Guest
Salut bin,

Tu peux par exemple alterner deux couleurs pour éviter que ce soit le carnaval !

En plus de la couleur 8, tu choisies la 88 ou la 888 ou ...

Tu testes la couleur de la zone précédente et tu choisies ta couleur en fonction.

Bon coloriage !
 
L

LaurentTBT

Guest
Bonjour à tous,

Je pense qu'il serait plus simple d'alterner 2 couleurs, car pour une couleur aléatoire, il faudra tester qu'elle soit différente de la précédente, le hasard ne faisant pas toujours bien les choses!
Voici ce que ça pourrait donner:

Sub couleur()
Dim AncienneCouleur
    Range("C4:D8").Copy
    Workbooks.Open Filename:= _
        "E:\Documents and Settings\Fabien.RICHARD\Desktop\Classeur2.xls"
    AncienneCouleur=Range("C6").End(xlDown).Interior.ColorIndex
    Range("C6").End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste
    if AncienneCouleur=8 then
        Range(ActiveCell.End(xlDown), ActiveCell.End(xlDown).Offset(-4, 1)).Interior.ColorIndex = 4 'L'autre couleur que tu souhaites!
    else
         Range(ActiveCell.End(xlDown), ActiveCell.End(xlDown).Offset(-4, 1)).Interior.ColorIndex = 8
    end if
ActiveWorkbook.Save
End Sub


Voilà, bonne journée.
 
J

JCA06

Guest
Bonjour LaurentTBT,

Je suis content que tu me confirmes que l'idée était bonne !

Dans quelques temps, j'essaierai de mettre le code qui va avec, mais pour le moment, je me méfie des cagades que je pourrais marquer !

Merci de ton aide !

A plus
 

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 004
Membres
104 003
dernier inscrit
adyady__