Probleme avec une macro

  • Initiateur de la discussion Cédric
  • Date de début
C

Cédric

Guest
Bonjour, j'ai une macro qui me permet de mettre des "1" dans des cellules juste en cliquant dessus et de les effacer en recliquant. Elle marchait jusqu'à présent mais j'ai modifié les cellules où je dois et cliquer, et là ça ne marche plus. Au secours.

Voilà ma macro qui se trouve dans "Worksheet" "SelectionChange":

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("M11:O295,Q11:S295,U11:W295,Y11:AA295,AD11:AF295,AH11:AJ295,AL11:AN295,AP11:AR295,AU11:AW295,AY11:BA295,BC11:BE295,BG11:BI295,BL11:BN295,BP11:BR295,BT11:BV295,BX11:BZ295,CC11:CE295,CG11:CI295,CK11:CM295,CO11:CQ295,CU11:CW295,CY11:DA295,DC11:DE295,DG11:DI295,DL11:DN295,DP11:DR295,DT11:DV295,DX11:DZ295,EC11:EE295,EG11:EI295,EK11:EM295,EO11:EQ295,ET11:EV295,EX11:EZ295,FB11:FD295,FF11:FH295,FK11:FM295,FO11:FQ295,FS11:FU295,FW11:FY295")) Is Nothing Then
If Target = 1 Then
Target = ""
Else
Target = 1
End If
End If
End Sub


Quand j'effectue un débogage, il me souligne en jaune toute la ligne "If Not Application ... Is Nothing Then".


Vue que je suis novice dans les macros je ne sait quoi faire.

En espérant que vous pourrez m'aider.

Merci par avance...

Cédric
 
M

Minick

Guest
Salut,

C'est à confirmer mais je pense que tu ne pas pas mettre une chaine de plus de 256 caracteres dans ton argument Range et la à vu de nez tu as au moins 300 voir 400 caracteres.
Je te suggere de faire des tests successifs.

En esperant t'aider et ne pas dire trop de bétises

@+ Minick
 
Z

Zon

Guest
Salut,

Minick à ma connaissance il n'y a pas ce problème là avec les range, Range n'accpete que 2 arguments et avec des guillemets, ici il y en a plus d'une quarantaine. On peut passer par un tableau:(il faut mettre des guillemets)
dim T
T=array(("M11:O295","Q11:S295","U11:W295"......)
for i=0 to ubound(t)
If Not Application.Intersect(Target, Range(t(i))) is nothing then
target=iif(target=1,"",1) 'une autre façon d'écrire ton test
end if
next i
end sub

A+++
 
C

Cédric

Guest
Bien vu Minick, j'ai enlevé plusieurs cellules et ça marche, mais il me manque une grosse partie.
Il n'y a pas moyen de mettre toutes mes cellules, ou de faire une autre macro? Car il me faut vraiment ces clics sur toutes ces cellules.

En attendant de vos nouvelles...

Merci d'avance

Cédric
 
C

Cédric

Guest
Salut Zon,

je viens d'essayer ta macro

"dim T .... end sub"

mais cela ne marche pas, il n'y a pas de "1" qui apparait en cliquant.
Je suis novice, pouvez vous détailler "pas par pas"
ce que je dois faire.

Encore merci

Cédric
 
Z

Zon

Guest
Re,

Il faut mettre cette procédure dans selection_change

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
dim T,I&
T=array(("M11:O295","Q11:S295","U11:W295") 'ici continuer à remplir en mettant des virgules et des guillemets
for i=0 to ubound(t)
If Not Application.Intersect(Target, Range(t(i))) is nothing then
target=iif(target=1,"",1) 'une autre façon d'écrire ton test
end if
next i
end sub

A+++
 

Statistiques des forums

Discussions
312 779
Messages
2 092 045
Membres
105 167
dernier inscrit
JulJon2004