Abreveation de code

Résolu
kanizol
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015
- 23 mai 2014 à 12:27
kanizol
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015
- 23 mai 2014 à 16:29
Bonjour,
je cherche une abreviation de ce code parce qu'il me parait tres long
If Feuil2.Cells(9, k).Value >= Feuil1.Cells(j, 1).Value And Feuil2.Cells(9, k).Value < Feuil1.Cells(j, 2).Value And Feuil1.Cells(j, 3).Text = "CDF" And Feuil1.Cells(j, 4).Text = "E" Then
Feuil2.Cells(10, k).Interior.ColorIndex = 35
Feuil2.Cells(11, k).Interior.ColorIndex = 35
Feuil2.Cells(12, k).Interior.ColorIndex = 35
Feuil2.Cells(13, k).Interior.ColorIndex = 35
Feuil2.Cells(14, k).Interior.ColorIndex = 35
Feuil2.Cells(15, k).Interior.ColorIndex = 35
Feuil2.Cells(16, k).Interior.ColorIndex = 35
Feuil2.Cells(17, k).Interior.ColorIndex = 35
Feuil2.Cells(18, k).Interior.ColorIndex = 35
Feuil2.Cells(19, k).Interior.ColorIndex = 35
Feuil2.Cells(20, k).Interior.ColorIndex = 35
Feuil2.Cells(21, k).Interior.ColorIndex = 35
Feuil2.Cells(22, k).Interior.ColorIndex = 35
End If
ces dernier ligne se repetent beaucoup et je cherche de les resumer dans une seule ligne
et merci

3 réponses

YepoMax
Messages postés
74
Date d'inscription
samedi 8 décembre 2012
Statut
Membre
Dernière intervention
14 juin 2014
20
23 mai 2014 à 12:58
Bonjour,

Pourquoi pas utiliser un FOR ?

http://msdn.microsoft.com/fr-fr/library/5z06z1kb.aspx

Feuil2.Cells( x, k).Interior.ColorIndex = 35 avec x qui varie de 10 à 22 compris.

Je félicite la démarche tout de même : "mon code est long et répétitif" --> chercher une solution.

Bien à vous,
YepoMax.
0
jordane45
Messages postés
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
23 mai 2014 à 13:13
Bonjour;

Pour ce type de demandes toutes simples ... l'enregistreur de macro est ton meilleur ami...

    Range("K10:K22").Select
    With Selection.Interior
        .ColorIndex = 35
    End With


PS : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
jordane45
Messages postés
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
23 mai 2014 à 13:14
Encore plus simple même :
Range("K10:K22").Interior.ColorIndex = 35
0
jordane45
Messages postés
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
23 mai 2014 à 13:18
Ou si ton k est variable :
'si K est une lettre correspondant à ta colonne
k = "J"
Range(k & "10:" & k & "22").Interior.ColorIndex = 35

'Si c'est le Numéro de colonne:
k = 5
Range(Cells(10, k), Cells(22, k)).Interior.ColorIndex = 35

0
kanizol
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015

23 mai 2014 à 15:48
merci pour vos aides mais k est une variable
0
kanizol
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015

23 mai 2014 à 15:51
merci pour vos aides mais k est une variable et le code que vous m'avez donné de variable ne marche pas
0
jordane45
Messages postés
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
23 mai 2014 à 16:12
Comment ça il ne marche pas ??
Sub test()
' pour l'exemple je met une valeur à k
k = 4

'le changement de couleur se fait sur la colonne désignée par k...
' A savoir.. dans mon exemple : la colonne 4 ...c'est à dire..la colonne : D
Range(Cells(10, k), Cells(22, k)).Interior.ColorIndex = 35
End Sub
0
kanizol
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015

23 mai 2014 à 16:29
oui vous avez raison, votre dernier code m'a aidé beaucoup, merci encore une fois
0