[Résolu] Formatage de plage dynamique dans une boucle et... erreur 400 !

  • Initiateur de la discussion Initiateur de la discussion jcproperty
  • 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 !

J

jcproperty

Guest
Bonjour,

Je sollicite votre aide, après m'être arraché les cheveux sur ce problème. Je souhaite, à chaque itération d'une boucle For, en profiter pour formater 2 cellules. Pour ce faire, je tente un range dynamique, et je me fais systématiquement jeter avec une erreur 400 en exécution (erreur 1004 en pas à pas). Voici mon code:

Code:
Dim k As Integer
Dim l As Integer
Dim FICHE_ELEVE As Worksheet
Dim Cases As Range

Set FICHE_ELEVE = ThisWorkbook.Worksheets("Fiche élève")

l = FICHE_ELEVE.UsedRange.Rows.Count

For k = 4 To l + 1
   
   [ ... traitement de données ... ]

    Set Cases = FICHE_ELEVE.Range(Cells(k, 2), Cells(k, 3))
        
    Cases.Borders(xlDiagonalDown).LineStyle = xlNone
    Cases.Borders(xlDiagonalUp).LineStyle = xlNone
    With Cases.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Cases.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Cases.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Cases.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Cases.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Cases.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
Next k

FICHE_ELEVE.Activate

Quelqu'un peut-il m'aider à corriger ce problème ?
Merci !

jcproperty
 
Dernière modification par un modérateur:
Re : Formatage de plage dynamique dans une boucle et... erreur 400 !

Bonjour JCProperty et bienvenue 🙂,
Aucune erreur à l'exécution de ton code (mets peut-être quand même une ' devant [ ... traitement de données ... ] pour que ce soit en commentaire 🙄...).
Sinon, il faudra que tu postes ton fichier pour qu'on puisse regarder là où ça bloque 🙂...
Bonne suite 😎
 
Re : Formatage de plage dynamique dans une boucle et... erreur 400 !

@kjin : tu as raison, j'ai enlevé le bloc InsideHorizontal, mais le message d'erreur est toujours là. Je pense vraiment que ça vient du range dynamique, ou de la boucle, car à un autre endroit je fais exactement la même chose, mais avec un Range en dur et hors de la boucle, et je n'ai pas l'erreur.

@ JNP : Je joins le fichier. Il s'agit de la macro "Affiche_Fiche_Eleve()", située dans la feuille 1 nommée "ACCUEIL". Elle est déclenchée par l'action sur le bouton "F" du cadre "ÉLÈVES" après avoir sélectionné un nom dans la listbox correspondante.
 

Pièces jointes

Re : Formatage de plage dynamique dans une boucle et... erreur 400 !

Re 🙂,
Modifie ton
Code:
    FICHE_ELEVE.Range(Cells(k, 2), Cells(k, 3)).Select  
    With Selection
par
Code:
    With FICHE_ELEVE.Range("B" & k & ":C" & k)
Chez moi, ça fonctionne 🙄...
Bon courage 😎
 
Formatage de plage dynamique dans une boucle et... erreur 400 ! [Résolu]

Merci JNP !!
Ca fonctionne... et cela veut dire que l'on ne peut pas affecter de range dynamique à une variable range à l'intérieur d'une boucle. C'est bon à savoir !
 
Re : Formatage de plage dynamique dans une boucle et... erreur 400 ! [Résolu]

... et cela veut dire que l'on ne peut pas affecter de range dynamique à une variable range à l'intérieur d'une boucle. C'est bon à savoir !
😕, ce qui veut dire ?
Cela veut surtout dire que tu ne peux pas sélectionner une plage située sur une autre feuille sans avoir sélectionné cette feuille auparavant
A+
kjin
 
Re : Formatage de plage dynamique dans une boucle et... erreur 400 ! [Résolu]

kjin, comme je te l'avais dit dans une précédente réponse, la méthode que j'utilisais, je l'utilisais dans un autre sub, avec exactement la même syntaxe et cela fonctionnait. La différence était que je sélectionnais une plage non dynamique hors de la boucle For, mais toujours sur une autre feuille, et je n'avais pas d'erreur.
 
- 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

M
Réponses
8
Affichages
2 K
Michelrib
M
S
Réponses
4
Affichages
2 K
stage_ferrit
S
H
Réponses
2
Affichages
1 K
H
C
  • Question Question
Réponses
13
Affichages
3 K
C
Réponses
2
Affichages
1 K
candice**
C
R
Réponses
5
Affichages
2 K
R
C
Réponses
5
Affichages
2 K
Charles78
C
C
Réponses
23
Affichages
4 K
Charles78
C
W
  • Question Question
Réponses
1
Affichages
681
walido78
W
T
Réponses
16
Affichages
3 K
T
C
  • Question Question
Réponses
3
Affichages
996
Cerisaie
C
Réponses
1
Affichages
1 K
L
Réponses
2
Affichages
2 K
louatt
L
Retour