[Résolu] Utiliser ou non le ".value" pour remplir une cellule ?

g.milano

XLDnaute Junior
Bonjour,

Je suis en train de modifier une macro que j'avais l’année dernière. A l’époque, j'avais écrit un magnifique :

Range("A" & j).Value = Val(Right(Range("B" & j).Value, Len(Range("B" & j).Value) - 3))

Mais en y introduisant une fonctionnalité faite récemment, je vois que j'ai écrit :

Range("B" & i) = Val(Replace(Range("B" & i), "□", ""))

Eh oui, le ".value" a disparu (je suis infichu de vous dire pourquoi) sans que cela gêne le fonctionnement.

J'ai un peu cherché sur le net pour savoir s'il y a une différence entre les deux. Mais j'ai juste trouvé Ce lien n'existe plus :

Code:
La propriété par défaut de l'objet range est sa valeur (value). Si la cellule A1 contient Salut !,
 MaVariable = range("A1")
'est équivalent à 
'MaVariable = Range("A1").value 
 et renvoie Salut !.

Donc l'effet est le même avec ou sans le ".value" :confused:

Je voudrais savoir quel "danger" peut entraîner une généralisation de l'emploi de la version sans ".value" (car je me doute bien que sémantiquement, le ".value" est nécessaire pour remplir l’intérieur de la range).


Merci pour vos éclaircissements. m(_ _)m
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utiliser ou non le ".value" pour remplir une cellule ?

Bonjour G.Milano, bonjour le forum,

Value est la propriété par défaut pour une donnée de type Range. Donc mettre ou ne pas mettre le .Value ne change rien si ce n'est permettre de mieux comprendre à un novice qui lira ton code...
 

Si...

XLDnaute Barbatruc
Re : Utiliser ou non le ".value" pour remplir une cellule ?

salut

comme de tout sous-entendu, il faut en connaître la portée (ici, comme au jeu des chaises musicales, on risque de se retrouver tout bête) !

Essaie, dans une macro, de glisser la ligne
Code:
 Sheets(Range("B3")).[A1] = "C'est tout bon."
sachant que dans B3 il y a le nom d'une feuille puis corrige en ajoutant .Value !
 

g.milano

XLDnaute Junior
Re : Utiliser ou non le ".value" pour remplir une cellule ?

Code:
 Sheets(Range("B3")).[A1] = "C'est tout bon."
sachant que dans B3 il y a le nom d'une feuille puis corrige en ajoutant .Value !
J'ai une erreur 13 dans les 2 cas ! Donc je ne vois pas la différence.

J'ai écrit ça dans vba :

Code:
Sub test()
Sheets(Range("B3")).[A1] = "C'est tout bon."
End Sub

Sub testval()
Sheets(Range("B3")).[A1].Value = "C'est tout bon."
End Sub

et nommé "coucou" la feuille et aussi "coucou" dans la cellule B3...


Si tu pouvais me dire ou j'ai merdé, parce que j'aimerais bien connaître la différence :rolleyes:
 

ROGER2327

XLDnaute Barbatruc
Re : Utiliser ou non le ".value" pour remplir une cellule ?

Bonjour à tous.


(...)
comme de tout sous-entendu, il faut en connaître la portée
(...)
Bien dit ! Approuvé !
Même si le basic de Bill est laxiste et tolère beaucoup d'à peu près, il est préférable de ne pas trop en profiter. Mieux vaut être précis : ça oblige à savoir exactement ce que l'on veut.​


Bonne journée.


ROGER2327
#6460


Vendredi 27 Gueules 140 (Saint Tabagie, cosmogène - fête Suprême Quarte)
3 Ventôse An CCXXI, 3,9193h - violier
2013-W08-4T09:24:23Z
 

ROGER2327

XLDnaute Barbatruc
Re : Utiliser ou non le ".value" pour remplir une cellule ?

Re...


J'ai une erreur 13 dans les 2 cas ! Donc je ne vois pas la différence.

J'ai écrit ça dans vba :

Code:
Sub test()
Sheets(Range("B3")).[A1] = "C'est tout bon."
End Sub

Sub testval()
Sheets(Range("B3")).[A1].Value = "C'est tout bon."
End Sub

et nommé "coucou" la feuille et aussi "coucou" dans la cellule B3...


Si tu pouvais me dire ou j'ai merdé, parce que j'aimerais bien connaître la différence :rolleyes:

Code:
Sub test()
Sheets(Range("B3")).[A1] = "C'est tout bon."
End Sub

Sub testval()
Sheets(Range("B3").Value).[A1] = "C'est tout bon."
End Sub

Sub testval2()
Sheets(Range("B3").Value).[A1].Value = "C'est tout bon."
End Sub



ROGER2327
#6461


Vendredi 27 Gueules 140 (Saint Tabagie, cosmogène - fête Suprême Quarte)
3 Ventôse An CCXXI, 3,9502h - violier
2013-W08-4T09:28:50Z
 

Dranreb

XLDnaute Barbatruc
Re : Utiliser ou non le ".value" pour remplir une cellule ?

Bonjour.
Le danger c'est de se retrouver un beau jour dans un cas où il considère l'objet Range alors qu'on pensait uniquement à sa propriété Value.
Comme par exemple quand on l'ajoute comme Item à un Dictionary
Il vaut mieux dire à VBA ce qu'on pense vouloir lui faire faire: ce n'est pas à lui de décider !
Cordialement
 

MJ13

XLDnaute Barbatruc
Re : Utiliser ou non le ".value" pour remplir une cellule ?

Bonjour à tous

Comme je code à l'instinct, c'est vrai que en général, je teste et je regarde si ça tourne normalement.

Le problème qu'on peut avoir c'est de bugger à cause du fait que Excel attend un autre type de données :confused:.

De toute façon, pour bien comprendre ce qui se passe, il faut lire l'aide (F1) et toujours debugger son programme en cas de problème :).
 

Discussions similaires

Statistiques des forums

Discussions
312 295
Messages
2 086 959
Membres
103 404
dernier inscrit
sultan87