Erreur 6 dépassement de capacité

bonjour

j'aimerai avoir votre aide

j'ai une erreur 6 "dépassement de capacité " quand je clique sur le bouton (afficher les ligne cacher) :

il fonctionne bien et depuis que j'ai rajouter le code pour surligné la cellule sélectionne il me mais cette erreur la... d'ou ça peux bien provenir ?

code pour surligné :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveSheet.Unprotect Password:="aaa"

Set champ = Range("A3:AZ300")

'---- restitution couleurs

If Not Intersect(champ, Target) Is Nothing And Target.Count < 100 Then

CoulCurseur = RGB(255, 255, 0)

For Each n In ActiveWorkbook.Names

If Left(n.Name, 11) = "MémoCouleur" Then

Adr = Mid(n.Name, 12): coul = Val(Mid(n, 2)): If coul = 300 Then coul = xlNone

If Range(Adr).Interior.Color = CoulCurseur Then Range(Adr).Interior.Color = coul

End If

Next n

'------ sauvegarde couleurs

For Each n In ActiveWorkbook.Names

If Left(n.Name, 7) = "MémoAdr" Then n.Delete

Next n

For Each c In Target

ActiveWorkbook.Names.Add Name:="MémoCouleur" & Replace(c.Address, "$", ""), RefersTo:=c.Interior.Color

Next c

Target.Interior.Color = CoulCurseur

End If

ActiveSheet.Protect Password:="aaa"

End Sub

code pour afficher les ligne cacher :

Private Sub CommandButton4_Click()

ActiveSheet.Unprotect Password:="aaa"

Cells.Select

Selection.EntireRow.Hidden = False

Cells(1, 1).Activate

Range("A5").Select

ActiveSheet.Protect Password:="aaa"

End Sub

Bonjour,

Mets ta macro entre les balises prévues pour plus de lisibilité (voir icone </>), avec indentation, tu y gagneras aussi.

Quelle est la ligne en cause ? je suppose que c'est

ActiveWorkbook.Names.Add Name:="MémoCouleur" & Replace(c.Address, "$", ""), RefersTo:=c.Interior.Color

Je ne suis pas certain qu'on puisse affecter ce genre de formule par macro à un nom.

Il faudrait prendre le problème autrement. As-tu un bout de fichier ?

Bonjour à tous,

ActiveWorkbook.Names.Add Name:="MémoCouleur" & c.Address(0, 0), RefersTo:="=" & c.Interior.Color

Mais pourquoi vouloir le mettre dans un nom et non dans une variable tableau ou dictionary ?

eric

Edit : après relecture si ton but est de surligner la sélection, met plutôt une MFC qui ne touche pas la couleur de fond. Plus besoin de mémoriser quoique ce soit.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Const num As Long = 1    ' n° de la MFC si plusieurs à gérer sinon utiliser =VRAI en formule
    suppMFC ActiveSheet, 1
    With Target
        .FormatConditions.Add Type:=xlExpression, Formula1:="=" & num & "=" & num
        .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With .FormatConditions(1).Interior
            .Color = 65535
        End With
        .FormatConditions(1).StopIfTrue = True
    End With
End Sub

Sub suppMFC(sh As Worksheet, num As Long)
    Dim fc As FormatCondition
    For Each fc In sh.Cells.FormatConditions
        If fc.Formula1 = "=" & num & "=" & num Then fc.Delete
    Next fc
End Sub

Tu peux surligner toute la ligne avec With Target.EntireRow

Rechercher des sujets similaires à "erreur depassement capacite"