Dépassement de capacité

Bonjour,

Juste une petite question aujourd'hui:

J'utilise régulièrement le code suivant dans mes fichiers pour surligner la ligne sélectionnée...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    [Matrix].Interior.ColorIndex = 1
If Intersect(Target, [Matrix]) Is Nothing Or Target.Count > 1 Then Exit Sub
                  Range(Cells(Target.Row, 2), Cells(Target.Row, 7)).Interior.ColorIndex = 48
End Sub

... Cela fonctionne mais une chose m'échappe:

Pourquoi ai-je droit, quand je sélectionne toutes les cellules, à l'erreur d'exécution 6 (dépassement de capacité) alors que j'ai bien mon

if target.count>1 then exit sub

Je peux régler le problème avec un

On Error Resume Next

mais je ne comprends pas pourquoi la condition saute...

Si quelqu'un a une explication, je reste à l'écoute.

Cdlt,

Darzou

Bonjour,

Tu peu pas mettre une commande directe dans un évènement.

Met une condition..

    If [Matrix].Interior.ColorIndex <>1 then [Matrix].Interior.ColorIndex = 1

Et suis pas certain que ça marche, si non, supprime cette ligne et voire si tu a encore cette erreur.

A+

Edit: si je comprend bien tu veux surligner la ligne active ? si oui j'ai été chercher ça dans mes archive..

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static AncAdress As Long
    If Target.Count > 1 Then Exit Sub
    If AncAdress <> 0 Then 'remettre en normal
        Rows(AncAdress).Interior.ColorIndex = xlNone
        Rows(AncAdress).Font.ColorIndex = 0
    End If
    Target.EntireRow.Font.ColorIndex = 6
    Target.EntireRow.Interior.ColorIndex = 3
    Target.EntireRow.Interior.Pattern = xlSolid
    AncAdress = Target.Row
End Sub

Bonjour

Juste pour info

Le code sans le On Error Resume Next ne plante pas avec Excel 2003

Si tu peux fournir le fichier avec la macro qui plante ?

Merci pour vos réponses.

@ Lermite: Ton code me renvoie à la même erreur quand je sélectionne toutes les cellules...

@ Banzai64: Ci joint un exemple.

@ Tous: Le "dépassement de capacité" intervient sur la condition Target.Row>1, aussi, si je l'enlève, le débogueur n'apparait plus...

Bref ça plante à partir du moment où plus de 131 072 lignes sont sélectionnées (2 147 483 648 cellules).

Donc serait-il possible qu'excel, du moins, ma version d'excel 2010 ait un soucis pour compter plus 2 000 000 000 cellules (environ) ??

24test.xlsm (14.53 Ko)

Bonjour

haaaah Désolé avec mon 2003 je suis limité à quelques 65 000 lignes

Je conçois mal d'avoir une plage si importante

Désolé je ne pourrai pas t'aider

Juste une suggestion : Avec une Mise En Forme Conditionnelle ?

Bonjour,

essaye avec

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'If Target.Count > 1 Then Exit Sub

If Selection.Rows.Count > 1 Then Exit Sub

Cells.Interior.ColorIndex = 1

Rows(Target.Row).Interior.ColorIndex = 48

End Sub

Amicalement

Claude

Yep ça fonctionne en comptant les lignes et colonnes plutôt que les cellules.

Merci à tous.

Bon week end.

Rechercher des sujets similaires à "depassement capacite"