question format nombre en VBA

C

C@thy

Guest
Bonjour ami(e)s foromeux, foromeuses

coucou me revoilou, avec une 'tit question VBA :

oilà, je récupère dans excel un fichier texte avec des nombres formatés avec un . du genre 20248.5 et je voudrais tranformer dans 6 de mes colonnes (disjointes) ce texte en un nombre avec 2 décimales ex. : 20248,50.

Je suis sûre que c'est fastoche pour vous, mais moi je rame.
Un grand MERCI à tous ceux et toutes celles qui peuvent m'aider

c u soon

BipBip.gif
 
C

C@thy

Guest
Merci SuperMagikGénialTi, j'ai essayé ça :

Range("C6:D" & derligne & ",H6:K" & derligne).Select
For Each c In Selection
c.Value = CDec(c.Value)
Next
Selection.NumberFormat = "#0.00"

eh ben ça marche,

j'essaie ton truc et je te dis.

Grande nouvelle : je viens de passer à outlook express et... je lis les zip en P.J!!! vouais! Youpiiiiiiiiiiiiiii!

Biz @+

BipBip.gif
 
J

Jean-Marie

Guest
Bonjour, Tout le monde

Cathy j'ai une question, as-tu des données numériques dans ton fichier ayant une virgule comme séparateur et le point, ou tes données ont comme séparateur que le point.

Dans le dernier cas, il est possible dans la troisième étape d'import du fichier de modifier le symbole du séparateur décimale en cliquant sur le bouton Paramètres avancés...

Bonne soirée à tous

@+Jean-Marie
 
C

C@thy

Guest
Bonjour tout le monde et Jean-Marie,

J'ai Excel 2000, dans la 3ème étape je n'ai pas de bouton paramètres avancés. (et les utilisateurs auxquels la macro est destinée n'ont que Excel97).

J'ai coché l'option standard qui convertit les valeurs numériques en nombre, mais ce ne sont pas des valeurs numériques, donc ça marche pô!

voici mon fichier en P.J.

BipBip.gif
 

Pièces jointes

  • TXT.zip
    2.8 KB · Affichages: 239
  • TXT.zip
    2.8 KB · Affichages: 239
  • TXT.zip
    2.8 KB · Affichages: 255
L

LaurentTBT

Guest
Bonjour à tous

Bizarre, bizarre. J'ai excel XP, et j'ai bien le bouton Avancé en étape 3. J'ai bien choisi la virgule comme séparateur décimal, mais le résultat de l'import de données conserve le point.

Une idée, Jean-Marie?

Bonne journée à tous.

Laurent.
 
T

Ti

Guest
tiens, Cathy, je m'aperçois que je n'ai pas tout mis dans le bon ordre :

Function Nombre(Valeur)
Nombre = Format(Val(Valeur), "###0.00")
End Function

Concernant la partie numérique qui disparaît, il peut s'agir d'Excel 2000 qui ne réagit pas comme XP, chez moi, le point est bien reconnu par Val. Ce que tu peux essayer c'est de remplacer Val par CCur (c'est ce que conseille l'aide d'Excel, même si ça fonctionne à l'inverse dans XP...) Sinon il suffit de faire :
Val(Replace(Valeur,".",","))

Donc la fonction entière :

Function Nombre(Valeur)
Nombre = Val(Format(Replace(Valeur,".",","), "###0.00"))
End Function

(pas testé, je te dis tout ça de tête)
 
C

C@thy

Guest
Merci à vous tous de vous être penchés sur ma question.

Donc, pour l'instant j'ai résolu mon problème de la façon que j'ai indiquée plus haut, ce n'est pas très orthodoxe et ça rallonge le traitement (le fichier exemple n'a que 107 lignes mais le vrai en aura 40000!), mais ça marche.

J'ai eu des trucs bizarres, du genre lorque je crée ma listbox avec les fichiers du répertoire, la 1ère ligne est vide, ou bien si le répertoire n'existe pas, il liste par défaut le contenu de mes documents, j'ai donc rajouté des tests partout, mais j'ai encore un problème car l'utilisateur veut travailler en réseau, le fichier txt sur le réseau s'ouvre correctement mais pas le fichier modèle excel (que je remplis avec les données du fichier txt), il va chercher dans mes documents... (où il n'est pas!)

Je vais aller régler ça directement sur le poste des utilisateurs pour voir ce qui se passe. Je vous donnerai les résultats.

Biz

@+

BipBip.gif
 
L

LaurentTBT

Guest
Cathy, je n'y comprends plus rien.

Je viens de faire la requète au boulot sous Excel97 à partir de ton fichier txt, et j'obtiens bien des valeurs numériques avec virgule, sur lesquelles je peut travailler (les sommes fonctionnent sans problème). Essaye ton fichier directement sur un des postes de travail sous Excel 97, cela fonctionnera peut-être sans avoir besoin d'une macro.

Bonne journée. Laurent.
 
C

C@thy

Guest
Génial, Laurent,
je vais essayer ça demain chez mes zutilisateurs préférés qui ont 97, si ça marche chez eux je supprimerai cette partie de conversion dans ma macro. Bizarre bizarre, 97 mieux que 2000?

BipBip.gif
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom