
Envoyé par
francis60
Si Application.UseSystemSeparators = False Alors Application.International(xlDecimalSeparator) = Application.DecimalSeparator
Assertion fausse : tu n'as pas bien lu ou pas bien compris alors !
L'astuce de Theze et Clément est évidemment valable pour connaître le séparateur décimal en cours côté Excel.
Mais ce n'est pas la seule : il suffit juste de bien comprendre ma ligne de code …
Par défaut à l'installation d'Excel, Application.DecimalSeparator est bien égale à Application.International(xlDecimalSeparator)
mais il ne faut surtout pas l'entendre comme une constante, ce serait une erreur bien trop grossière ‼
Sinon une seule propriété suffirait, pourquoi alors y-en-a-t-il deux ?!
Et pourquoi le VBA dispose-t-il aussi de la propriété UseSystemSeparators ?
Tout simplement par exemple dans le cas d'un "import" de données (plutôt un "Coller") avec un séparateur décimal
différent de celui du système, en désactivant cette propriété comme dans l'exemple de l'aide VBA
le séparateur décimal peut être modifié via Application.DecimalSeparator.
(Juste avant cette modification, les deux propriétés peuvent être égales, ton assertion est donc fausse !)
Une fois les données numériques bien importées il suffit de réactiver UseSystemSeparators et là
Application.DecimalSeparator reste différent de Application.International(xlDecimalSeparator),
le séparateur décimal en cours n'étant donc plus celui de cette propriété Application.DecimalSeparator !
D'où ma ligne de code ! Tout ceci étant dans l'aide VBA interne …
Inutile de modifier Windows ! Juste en suivant l'exemple de l'aide VBA de la propriété UseSystemSeparators …
Séparateur décimal et dates, même combat : il suffit de chauffer à peine une paire de neurones !
Partager