Set variable = Nothing

Résolu
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 23 févr. 2012 à 14:54
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 23 févr. 2012 à 18:56
Bonjour,

Ma question sera brève :
Dans le cas ci-dessous est-il nécessaire de mettre la variable 'pos' à Nothing ?
   Dim pos As Range
   Set pos = Range("AG1:AG400").Find(What:=ActiveCell.Value, LookIn:=xlValues)
      '  traitement
   Set pos = Nothing '  ???

Merci et bonne journée

Cheyenne

6 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
23 févr. 2012 à 15:07
Salut,

à priori et jusqu'a preuve du contraire, pour le VBA non et en tout cas pas pour ce type d'objet.

A+
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 févr. 2012 à 18:19
on peut toujours trouver un cas particulier mais de façon général ce n'est pas une action recommandée, même si cela ne fait pas de mal

Pas vraiment d'accord avc toi, bigfish,
Les "cas particuliers", j'en ai vu une floppée + 15 et ne sont pas vraiment si "particuliers".

Voilà en tout état de cause ce qu'en dit l'aide VBA, quel que soit l'objet affecté à une vraiable objet

Nothing Facultatif. Met fin à l'association entre objectvar et un objet donné. L'attribution de la valeur Nothing à l'argument objectvar libère l'ensemble des ressources système et mémoire associées à l'objet anciennement référencé lorsqu'aucune autre variable ne le désigne.

Je ne cherche pas à entamer une polémique. Juste à éclairer les choix à faire.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
23 févr. 2012 à 15:24
Bonjour bigfish_ le vrai,

Merci pour ta réponse rapide.

Bonne continuation,

Cheyenne
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 févr. 2012 à 16:31
Bonjour,
Voilà le genre de situation dans laquelle ont peut se trouver, en ne déclarant pas à Nothing.

 Dim plage As Range
 Set plage = Range("A1:B10")
' traitement sur la plage plage (n'importe lesquels
' puis
' on veut rechercher dans n'importe quelle autre plage si cellules avec commentaires
' il nous faut alors ce On Error, sans quoi ===>> plantage si aucun commentaire
' mais voilà ! pas de chance ! aucun commentaire n'est là !
 On Error Resume Next
 Set plage = Range("A1:A2").SpecialCells(xlCellTypeComments)
 On Error GoTo 0
' traitement sur plage (imaginons le pire : delete !
' car regardons ce que contient encore plage :
 If Not plage Is Nothing Then MsgBox plage.Address


Je ne prends personnellement jamais de tels risques dans mes applkis ===>> en mettant systématiquement à Nothing : d'une pierre 2 coups : je décharge la mémoire et je me préserve de ce genre de mauvaise plaisanterie.
Et cela ne mange pas de pain !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
23 févr. 2012 à 16:42
re,

on peut toujours trouver un cas particulier mais de façon général ce n'est pas une action recommandée, même si cela ne fait pas de mal, comme cela peu l'être dans d'autre langage comme le VB6 ou les variables objet peuvent persister en mémoire même après fermeture de l'appli.
Ce n'est pas le cas avec excel qui vide la mémoire lorsqu'on le ferme.

C'est bien dans ce contexte que j'ai répondu.

A+
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
23 févr. 2012 à 18:56
Re,

Merci à vous deux pour le complément d'informations.

Bonne soirée,

Cheyenne
0
Rejoignez-nous