> Tous les forumsAutres langages

 Remplacer point par virgule dans VBA
Statut du sujet : NON RESOLU Imprimer
 nerea144
  Posté le 27/05/2008 @ 18:22  
 Petite astucienne

28 Messages

Bonjour,

Je récupère des résultats dans un fichier brut ou les valeurs ont des points au lieu de virgules.

Remplacer ces points par des virgules fonctionne très bien sur Excel :

- Je copie les données brut pour en faire un collage spécial valeur dans mon fichier, ensuite je fais EDITION remplacer les . par ,

Là pas de problème. Mais quand je retranscris cette instruction dans VBA, ce qui donne :

Selection.Copy

Range("H18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Les points ont bien été remplacés par des virgules, mais les données sont en format texte et excel me demande de les convertir en nombre, ce que je ne sais pas résoudre dans VBA.

Avez-vous une solution ?

Merci.

 Afficher le profil de nerea144Envoyer un message privé à nerea144
 
 
Publicité
 arrial  Posté le 29/05/2008 à 14:24  
Petit astucien


53 Messages

Bonjour,

Je n'ai pas essayé sur les versions actuelles d'OS et d'Office, aussi, c'est sous toutes réserves que je propose une voie.

Sous Office 5 (?) et Windows 3 (?), il fallait jouer sur les options régionales, non pas de Office mais de Windows.

Essaie toujours et tiens-nous au courant ‼

@+

Afficher le profil de arrialEnvoyer un message privé à arrial
 Revenir en haut de la page
 davidouandco  Posté le 13/06/2008 à 18:46  
Petit astucien

7 Messages

tout doit être absolument automatisé, ou bien est-ce que tu veux juste récupérer tes infos rapidement?

j'ai pas trop le temps de chercher en macro mais une fois que t'as collé tes résultats

en H18....

tu te mets en I18 (par exemple) tu met ' =CNUM(H18) ' pour reconvertir tes valeurs en numérique

tu recopies ta formule vers le bas, et après tu sélectionnes tout ça et tu le recopies ailleur (genre J18) COLLAGE SPECIAL, VALEURS

le tour est joué (en plus pas trop difficile d'écrire la formule en VBA, ni de la recoppier...)

c'est de la bidouille, mais bon

Afficher le profil de davidouandcoEnvoyer un message privé à davidouandco
 Revenir en haut de la page
 davidouandco  Posté le 13/06/2008 à 18:57  
Petit astucien

7 Messages

c'est un peu bourrin, mais si tu rajoutes le code qui suit à la fin du tiens (et l'adapte à ton besoin)

tu récupères ainsi tes valeurs au format numérique :

Range("I18").Formula = "=VALUE(RC[-1])" 'inscrit ta formule dans I18

Range("I18").AutoFill Destination:=Range("I18:I25"), Type:=xlFillDefault 'recopie ta formule (genre jusque I25...)

Selection.Copy 'copie les données

Range("J18").Select 'va sur J18 et collage spécial
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Afficher le profil de davidouandcoEnvoyer un message privé à davidouandco
 Revenir en haut de la page
 TheGni  Posté le 20/08/2008 à 11:22  
Petit astucien

1 Message

Ou alors, faire un simple NombrePoint = Val(Str( NombreVirgule ))

Afficher le profil de TheGniEnvoyer un message privé à TheGni
 Revenir en haut de la page
 arrial  Posté le 21/08/2008 à 07:50  
Petit astucien


53 Messages

"Les points ont bien été remplacés par des virgules, mais les données sont en format texte et excel me demande de les convertir en nombre, ce que je ne sais pas résoudre dans VBA."

Pitit complément : si tu entres une virgule du clavier alphabétique comme séparateur décimal, ça ne marche pas et le nombre est identifié comme un texte. Il faut IMPÉRATIVEMENT que la virgule soit une transformation du point du PAVÉ NUMÉRIQUE. Cela ne marche pas avec le point du PAVÉ ALPHABÉTIQUE. Il y a donc deux codes de points et deux codes de virgules. Ton problème réside là-dedans.

Ceci, dans Excel.

Selon mes vieux souvenirs, on entre des virgules alpha, sous VBA et ça doit marcher ?

Afficher le profil de arrialEnvoyer un message privé à arrial
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page