Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction Range avec une variable

  • Initiateur de la discussion Initiateur de la discussion max_31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

max_31

Guest
Bonjour tout le monde,

Je pense qu'il doit y avoir un moyen de simplifier le code suivant, mais je ne sais pas comment faire :
With Worksheets("Previsions")
.Range("H" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("I" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("J" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("K" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("L" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("M" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("N" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("O" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("P" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("Q" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
.Range("Q" & Compteur_ligne_Previsions) = "Non recherché"
End With

"Compteur_ligne_Previsions" étant une variable

Les forumers auraient ils une idée ?

Merci d'avance.

PS : j'ai essayé .range("H" & Compteur_ligne_Previsions : "Q" & Compteur_ligne_Previsions).... Mais cela n'a pas fonctionner...
 
Re : Fonction Range avec une variable

Merci beaucoup jmps,

Ca marche très bien.

Mais etant novice, j'aurais 2 questions :
- Pourquoi doit on commencer par i =72 pour la colonne H ?
- Est ce plus rapide de passer par la boucle que tu proposes que par la programmation que j'avais faite initialement ?

Et sinon est ce possible de le faire sans boucle ?
 
Dernière modification par un modérateur:
Re : Fonction Range avec une variable

Bonjour max_31, jmps, le Forum,

Dans ce cas précis, on devrait peut-être éviter la boucle.

Ci-dessous, 2 autres façons de procéder :
Code:
[SIZE=2]Dim Compteur_ligne_Previsions[COLOR=navy] As Long[/COLOR]
      ...
      [COLOR=navy]With[/COLOR] Worksheets("Previsions")
            .Range(.Cells(Compteur_ligne_Previsions, 8), .Cells(Compteur_ligne_Previsions, 17)) _
                        .Interior.ColorIndex = 33
            .Range("Q" & Compteur_ligne_Previsions) = "Non recherché"
      [COLOR=navy]End[/COLOR] With[/SIZE]
ou
Code:
[SIZE=2]Dim Compteur_ligne_Previsions[COLOR=navy] As Long[/COLOR]
      ...
      [COLOR=navy]With[/COLOR] Worksheets("Previsions")
            .Range("H" & Compteur_ligne_Previsions & ":Q" & Compteur_ligne_Previsions).Interior.ColorIndex = 33
            .Range("Q" & Compteur_ligne_Previsions) = "Non recherché"
      [COLOR=navy]End[/COLOR] With[/SIZE]
Un conseil également : tu devrais peut-être aussi essayer de raccourcir un peu tes noms de variable...

Cordialement,
 
Re : Fonction Range avec une variable

Merci pour les précisions jmps. Je me doutais que c'etait ca, mais la j'en ai la confirmation.
Merci mDF pour ta proposition. J'avais oublie quelques details dans mon champ.
Pour ce qui est des noms de variables, j'ai essaye d'etre explicite, car j'en ai beaucoup dans mon code (peut etre trop...), mais je voulais pouvoir m'y retrouver.

Merci pour votre aide.
 
Re : Fonction Range avec une variable

J'ai appliqué la methode de mFD, pour eviter la boucle.
Quand je l'applique a de la mise en forme, c'est nickel.
Par contre, quand je souhaite affecter des valeurs, ca ne fonctionne pas :
voila le code rentré:

Worksheets("Feuil1").Range("N" & i & "😛" & i) = Worksheets("RA").Range("C" & j & ":E" & j)

i, etant le numero de ligne de destination
j, etant le numero de ligne d'origine


En revanche, quand je tape le code suivant, ca fonctionne :
Worksheets("Feuil1").Range("N" & i) = Worksheets("RA").Range("C" & j)
Worksheets("Feuil1").Range("O" & i) = Worksheets("RA").Range("D" & j)
Worksheets("Feuil1").Range("P" & i) = Worksheets("RA").Range("E" & j)

Quelqu'un peut il me dire si je fais une erreur dans le 1er code, ou si ce que je souhaite n'est pas faisable ?

Merci d'avance.
 
Re : Fonction Range avec une variable

Re,

Tu peux essayer comme ça :
Code:
[SIZE=2]Worksheets("Feuil1").Range("N" & i & ":P" & i)[B].Value[/B] = Worksheets("RA").Range("C" & j & ":E" & j)[B].Value[/B][/SIZE]
Cordialement,
 
Re : Fonction Range avec une variable

Merci beaucoup.
Ca marche.
Mais je suis etonne que cela ne fonctionne pas directement sans le .Value, puisque je croyais que c'etait l'instruction par defaut...
Enfin l'essentiel c'est que maintenant ca tourne.
Merci encore mDF
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
830
Réponses
5
Affichages
750
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…