definir comme variable la plage selectionner

  • Initiateur de la discussion Initiateur de la discussion flo2002
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

flo2002

XLDnaute Impliqué
Bonjour à tous,

j'aurai besoin de définir comme variable la plage de cellule que je viens de selection.
quelque chose comme:
Dim selec As Range
selec = Range....
merci de vos lumieres!
 
Re : definir comme variable la plage selectionner

Bonjour et merci Jean Marie,
j'ai bien essayer mais cependant il semble ne pas comprendre. Quand je vais vais sur ma variable select il met en commentaire selct = nothing.
Merci d'avance

ps:
Dim selec As Range
selec = Range(Selection.Address)
 
Re : definir comme variable la plage selectionner

Re...

Tu te trompes dans ta déclaration de la variable. Le fait de mettre selec = Range(Selection.Address), indique que tu veux mettre dans la variable selec le contenu des données de la plage sélectionnée. Le type de variable appropriée est Variant.

donc
Dim selec As Variant
selec = Range(Selection.Address)

@+Jean-Marie
 
Re : definir comme variable la plage selectionner

Merci c'est plus clair sur ce point, mais j'ai encore un soucis sur une autre variable

Dim Cellu As Range
Dim selec As Variant
selec = Range(Selection.Address)
Cellu = Cells.SpecialCells(xlCellTypeFormulas, 2)

For Each Cellu In selec
If Cellule.Formula = True Then
Cellule.ClearContents
Exit For
End If
Next Cellu

je voudrais le dire que cellu sont les cellules dans selec qui ont une formule.

merci d'avance
 
Re : definir comme variable la plage selectionner

bonjour flo, jean marie

euh, attention flo pour la suite de ton code.

si tu as utilisé ce code :

Code:
 Dim selec
 selec = Range(Selection.Address) 'simplifiable comme ceci : selec=selection
MsgBox selec.Address [COLOR=Red]'bug[/COLOR]
tu viens de créer un tableau variant, je ne sais pas ce que tu comptes en faire, mais tu risques d'avoir des soucis de syntaxe par la suite.

si ton objectif est de simplement stocker ta selection dans une variable il te suffit d'initialiser ta variable selec par l'instruction set, ainsi, le code comprendra que tu veux travailler avec un objet :

Code:
 Dim selec As Range
 Set selec = Selection
 
 MsgBox selec.Address'pas de bug
j'espere que j'ai été clair 😱

salut

 
Re : definir comme variable la plage selectionner

Bonjour Hervé,
je ne comprend pas pourquoi on met un msg box.
Je veux juste définir une plage que je selectione. Ensuite, je veux que par une boucle il cherche les cellules au format formule et les vide.

Merci pour ton aide.
 
Re : definir comme variable la plage selectionner

re

en reprenant ton code, ca pourrait ressembler à ceci :

Code:
Dim Cellu As Range
Dim selec As Range

Set selec = Selection
'Cellu = Cells.SpecialCells(xlCellTypeFormulas, 2) '??????

For Each Cellu In selec
    If Cellu.HasFormula Then
        Cellu.ClearContents
        Exit For '?????
    End If
Next Cellu
salut

edition : j'avais mis un msgbox pour simplement te montrer que ca buggait, fallait bien que je mette quelque chose 🙄
 
Re : definir comme variable la plage selectionner

ok merci
je vais donc relire ton post attentivement et voire ce que je peut faire.
j'ai mis
Dim Cellu
Dim selec As Variant
selec = Selection.Address
Cellu = Cells.SpecialCells(xlCellTypeFormulas, 2)

For Each Cellu In selec
If Cellule.Type = Formula Then
Cellule.ClearContents
Exit For
End If
Next Cellu

et ca a l'air de marcher jusqu'à if...

c'est bon comme ca?
 
Re : definir comme variable la plage selectionner

comme ceci ca ne bug pas mais ca n'enleve pas les formules n'ont plus...
Sub sup_formule2()


Dim Cellu As Range
Dim selec As Range

Set selec = Selection


For Each Cellu In selec
If Cellu.HasFormula Then
Cellu.ClearContents
Exit For '?????
End If
Next Cellu

End Sub
une idée sur le probleme?
Merci encore de votre patience!
 
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

 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
358
Réponses
3
Affichages
257
Réponses
9
Affichages
508
Retour