Re : definir comme variable la plage selectionner
re a vous deux
content que l'ami jeanmarie t'ai trouvé une solution flo.
je reviens sur ton code précédant en essayant d'etre pédagogique (c'est pas gagné) :
voici ton code avec des commentaires, pour t'aider :
Dim Cellu As Range
Dim selec As Variant
selec = Selection.Address
'selec = Selection.Address = tu places simplement dans la variable selec, l'adresse de ta selection
'comme ceci : $A$1:$A$13, ce n'est qu'un texte(string en jargont)
'pour t'en convaincre, utilises ce code tout de suite apres ton initialisation : msgbox selec
Cellu = Cells.SpecialCells(xlCellTypeFormulas, 2)
'ici, je ne comprend pas pourquoi tu veux initialiser ta variable cellule,
'ceci sera fait lors de son utilisation dans la boucle for next
'cette ligne est à supprimer
For Each Cellu In selec
'on a vu que selec ne stockait qu'un vulgaire texte ($A$1:$A$13)
'ceci n'en fait pas une plage de données, tu ne peux pas utiliser directement ce texte
'il te faut dire aux codes dans quoi il doit faire sa boucle :
'il doit le faire à travers une plage (range) comme ceci :
'For Each Cellu In Range(selec)
'on aurait pu ecrire : for each cellu in range($A$1:$A$13)
If Cellule.Type = Formula Then
'ca, je sais pas ou tu es allé le pecher, mais c'est pas bon
'pour tester si une cellule contient une formule, il existe l'instruction
'HasFormula qui renvoi vrai si il s'agit d'une formule ou faux dans le cas contraire
'la bonne syntaxe est if cellu.hasformula =true then
'de plus ta variable à changer de nom LOL
Cellule.ClearContents
'pareil, on ne parle plus de cellu mais de cellule:Cellu.ClearContents
Exit For
End If
Next Cellu
et ton code expurgé des commentaires :
Dim Cellu As Range
Dim selec As Variant
selec = Selection.Address
For Each Cellu In Range(selec)
If Cellu.HasFormula = True Then
Cellu.ClearContents
Exit For
End If
Next Cellu
salut