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.ColorJe 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.ColorMais 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 SubTu peux surligner toute la ligne avec With Target.EntireRow