Bonjour à tous,
Je suis en train de créer plusieurs macro pour retraiter automatiquement des données issues d'un système tiers.
Je reçois de ce système des valeurs avec des "." comme séparateurs décimaux (que je cherche à remplacer par des virgules) et également, ces chiffres sont vus par excel comme du texte (j'ai alors la petite icone me demandant si je souhaite les convertir en chiffres). Enfin, je cherche à formater ces chiffres (décimal deux digits ou currency Euro).
A date, j'ai créé ces deux macros :
Sub Clean_data()
' Macro pour remplacer les points par des virgules
Sheets("RAW from system").Select
Range("E2:R2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("B2").Select
End Sub
Sub Format_numbers()
' Macro pour formater les nombres'
Sheets("RAW from system").Select
Range("G:G,H:H,J:J,L:L,N:N,P:P,Q:Q,R:R,T:T,U:U,V:V,W:W,X:X,Y:Y,Z:Z,AA:AA").Select
Range("AA1").Activate
Selection.Style = "Currency"
Range("E:E,F:F,M:M,O:O,S:S").Select
Range("S1").Activate
Selection.Style = "Comma"
Range("B2").Select
End Sub
J'arrive donc à répondre au point 1/ (remplacer "." par ",") et au point 2/ (formater les nombres en chiffres ou en euro)
Le problème est donc pour le point 2/, je n'arrive pas à créer une macro qui va venir convertir le texte en "chiffre".
J'ai lu pas mal de messages identiques mais sans jamais réussir à trouver un code qui réponde à ce souhait, j'espère donc que vous allez pouvoir m'aider (je n'en doute pas )
Et pour couronner le tout, est ce que vous savez s'il est possible de mettre une ligne de code disant que si le format (tous les paramètres, virgules, deux digit et stocké sous format nombre) est déjà respecté, Excel ne doit pas traiter cette ligne (pour optimiser les temps de traitements)?
Un grand merci par avance pour votre aide
Bonne journée
Pierre