Abreveation de code [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015
-
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015
-
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

Messages postés
74
Date d'inscription
samedi 8 décembre 2012
Statut
Membre
Dernière intervention
14 juin 2014
18
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.
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
Encore plus simple même :
Range("K10:K22").Interior.ColorIndex = 35
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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

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

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

merci pour vos aides mais k est une variable et le code que vous m'avez donné de variable ne marche pas
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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
Messages postés
8
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
6 février 2015

oui vous avez raison, votre dernier code m'a aidé beaucoup, merci encore une fois