Erreur d'exécution 91 variable objet ou variable de bloc with non definie

cibleo

XLDnaute Impliqué
Bonsoir le forum,

En Feuil2, un tableau est généré par une macro non présente dans le fichier joint.
(les nouvelles données écrasant les anciennes données, génèrant donc un nouveau tableau)

Sur ce tableau, j'applique une macro de mise en forme : mise en valeur du Maxi et Mini dans 4 colonnes différentes.
Cette macro ne fonctionne jamais suite à la génération d'un nouveau tableau, il m'affiche toujours une erreur d'exécution 91.

Voici les lignes qui posent problème :
.Range(.Range(.Cells(3, Col), .Cells(.Cells.Rows.Count, Col).End(xlUp)).Find(MaxVal).Address).Interior.ColorIndex = 45
.Range(.Range(.Cells(3, Col), .Cells(.Cells.Rows.Count, Col).End(xlUp)).Find(MinVal).Address).Interior.ColorIndex = 43

Par contre, si je ferme le classeur, le rouvre et réexécute la macro de mise en forme, il n'y a aucun problème.

VB:
Sub Maxi_et_Mini1()
Dim LesColonnes(), Col As Byte, k As Byte
LesColonnes = Array("Prix du litre", "Conso Mensuelle", "Conso Moyenne")
With Sheets("Feuil2")
  For k = LBound(LesColonnes) To UBound(LesColonnes)
    Col = .Rows("2:2").Find(What:=LesColonnes(k)).Column
    MaxVal = Application.Max(.Range(.Cells(3, Col), .Cells(.Cells.Rows.Count, Col).End(xlUp)))
    MinVal = Application.Min(.Range(.Cells(3, Col), .Cells(.Cells.Rows.Count, Col).End(xlUp)))
    .Range(.Range(.Cells(3, Col), .Cells(.Cells.Rows.Count, Col).End(xlUp)).Find(MaxVal).Address).Interior.ColorIndex = 45
    .Range(.Range(.Cells(3, Col), .Cells(.Cells.Rows.Count, Col).End(xlUp)).Find(MinVal).Address).Interior.ColorIndex = 43
  Next k
End With
End Sub

Dans le classeur allégé joint, la macro s'exécute normalement, il n'y pas de bug, je n'y comprends rien.

Pouvez vous m'aider
Merci Cibleo
 

Pièces jointes

  • Maxi_Mini.xls
    29.5 KB · Affichages: 67

ROGER2327

XLDnaute Barbatruc
Re : Erreur d'exécution 91 variable objet ou variable de bloc with non definie

Bonjour cibleo


C'est curieux, cette affaire... Essayez ceci :​
VB:
Sub Maxi_et_Mini1()
Dim LesColonnes(), Col&, k&, MaxVal#, MinVal#
    LesColonnes = Array("Prix du litre", "Conso Mensuelle", "Conso Moyenne")
    With Sheets("Feuil2")
        For k = LBound(LesColonnes) To UBound(LesColonnes)
            Col = .Rows("2:2").Find(What:=LesColonnes(k), LookAt:=xlWhole).Column
            With .Range(.Cells(3, Col), .Cells(.Rows.Count, Col).End(xlUp))
                MaxVal = Application.Max(.Cells)
                MinVal = Application.Min(.Cells)
                .Interior.ColorIndex = xlNone
                .Find(What:=MaxVal, LookIn:=xlFormulas).Interior.ColorIndex = 45
                .Find(What:=MinVal).Interior.ColorIndex = 43
            End With
        Next k
    End With
End Sub


ROGER2327
#6155


Lundi 9 Tatane 139 (Saints Ecrase - Merdre, sectateurs - fête Suprême Quarte)
4 Thermidor An CCXX, 0,9391h - ivraie
2012-W29-7T02:15:14Z
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 959
Membres
103 990
dernier inscrit
lamiadebz