Set variable = Nothing [Résolu]

Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
- - Dernière réponse : 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
3
Merci
Salut,

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

A+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
266
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
0
Merci
Bonjour bigfish_ le vrai,

Merci pour ta réponse rapide.

Bonne continuation,

Cheyenne
Commenter la réponse de cs_cheyenne
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
266
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
0
Merci
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+
Commenter la réponse de bigfish_le vrai
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
0
Merci
Re,

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

Bonne soirée,

Cheyenne
Commenter la réponse de cs_cheyenne

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.