Ce problème semble très simple, mais je ne trouve pas la solution (je suis déjà en train de perdre la raison :))
OK, je veux juste mettre une certaine valeur dans une cellule Excel, en utilisant le code vba, aussi simple que ceci:
Cells(1,1).Value2 = "123,456"
Le problème: il s’agit d’une chaîne (intentionnelle), mais Excel la convertit toujours en nombre et place ce nombre dans la cellule, au lieu de la chaîne souhaitée.
Comment puis-je forcer Excel à ne pas le convertir et à mettre dans la cellule exactement ce que je veux (la chaîne) ??
Merci,
Cells(1,1).Value2 = "'123,456"
notez l'apostrophe simple avant le numéro - cela indiquera à Excel que tout ce qui suit doit être interprété comme du texte.
En effet, comme l'a souligné Tim Williams, le moyen de le faire fonctionner consiste à effectuer un pré-formatage au format texte. Ainsi, pour tout faire via VBA, procédez comme suit:
Cells(1, 1).NumberFormat = "@"
Cells(1, 1).Value = "1234,56"
C'est probablement trop tard, mais j'ai eu un problème similaire avec les dates que je voulais entrer dans les cellules d'une variable de texte. Inévitablement, il a converti ma valeur de texte variable en date. Ce que je devais finalement faire était concatenter un 'à la variable chaîne et ensuite le mettre dans la cellule comme ceci:
prvt_rng_WrkSht.Cells(prvt_rng_WrkSht.Rows.Count, cnst_int_Col_Start_Date).Formula = "'" & _
param_cls_shift.Start_Date (string property of my class)