COLORIAGE DE TABLEAU

cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015 - 22 déc. 2009 à 14:37
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 22 déc. 2009 à 14:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51009-coloriage-de-tableau

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 déc. 2009 à 14:53
salut,
tout à fait d'accord avec la précédente remarque

en plus une erreur de frappe : DA apparait 2 fois pour 2 valeurs différentes (select case, la seconde ne sera jamais évaluée)

voir ce snippet pour gagner quelques (300) lignes
http://www.codyx.org/snippet_identifier-position-colonne-excel-depuis-son-header-vice_282.aspx#906

reste pas mal de boulot pour rendre tout çà un minimum propre
bon courage
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 déc. 2009 à 14:49
clair.

utilises des boucles, supprime ce genre de choses:
Select Case colstartCB.Value
Case "A"
colS = 1
Case "B"
colS = 2

au profit d'un calcul bien senti.

de même, dommage de changer le focus a tour de bras (lent)

Range("A1").Select
ActiveCell.FormulaR1C1 = "Ligne de départ"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Ligne de fin"
Range("C1").Select
ActiveCell.FormulaR1C1 = "Colonne de départ"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Colonne de fin"
Range("E1").Select
ActiveCell.FormulaR1C1 = "HEXACOLOR1"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Aperçu1"
Range("G1").Select
ActiveCell.FormulaR1C1 = "HEXACOLOR2"
Range("H1").Select
ActiveCell.FormulaR1C1 = "Aperçu2"

donne simplement

Range("A1").Value = "Ligne de départ"
Range("B1").Value = "Ligne de fin"
Range("C1").Value = "Colonne de départ"
Range("D1").Value = "Colonne de fin"
Range("E1").Value = "HEXACOLOR1"
Range("F1").Value = "Aperçu1"
Range("G1").Value = "HEXACOLOR2"
Range("H1").Value = "Aperçu2"
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
22 déc. 2009 à 14:37
Outre le fait que tu aurais du préciser que ta source était liée à Excel, je t'invite très fortement à regarder la syntaxe de la boucle For...Next et les arguments qui peuvent être passé à Range.
Ton code est beaucoup trop long et beaucoup trop mal structuré pour être proposé comme exemple.
Rejoignez-nous