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

jcproperty

XLDnaute Nouveau
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 édition:

JNP

XLDnaute Barbatruc
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 :rolleyes:...).
Sinon, il faudra que tu postes ton fichier pour qu'on puisse regarder là où ça bloque :)...
Bonne suite :cool:
 

jcproperty

XLDnaute Nouveau
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

  • Copie de évaluations de rentrée 2011.xls
    178.5 KB · Affichages: 83

JNP

XLDnaute Barbatruc
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 :rolleyes:...
Bon courage :cool:
 

kjin

XLDnaute Barbatruc
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 !
:confused:, 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
 

jcproperty

XLDnaute Nouveau
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.
 

Discussions similaires

Réponses
5
Affichages
1 K

Statistiques des forums

Discussions
312 147
Messages
2 085 767
Membres
102 968
dernier inscrit
Tmarti