XL 2019 Remplacement de valeurs tres long avec grosse base de données

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour,
J'ai une feuille excel avec 25 000 lignes et environ 60 colonnes.
Il y a 2 soucis dans cette base :
1 - Les valeurs sont écrites avec un point au lieu d'une virgule.
2 - Beaucoup de cellule ont des nombres en format TEXTE.

Auriez vous une solution rapide sous vba pour remplacer les . en , et les nombre-texte en nombre.
Merci et bonne journée
 
Solution
Bonjour le forum,

Téléchargez le fichier déposé sur cjoint.com :

https://www.cjoint.com/c/NFehaWhtEP7

et lancez la macro :
VB:
Sub Conversion()
Dim t, ds$, tablo, ub%, i&, j%, x$
t = Timer
ds = Application.DecimalSeparator
With [A1:BH25000] 'à adapter
    tablo = .Formula 'au cas où il y aurait des formules
    ub = UBound(tablo, 2)
    For i = 1 To UBound(tablo)
        For j = 1 To ub
            x = Replace(tablo(i, j), ".", ds)
            If IsNumeric(x) Then tablo(i, j) = CDbl(x) 'conversion
    Next j, i
    .Value = tablo 'restitution
End With
MsgBox Timer - t
End Sub
Chez moi elle s'exécute en 2,6 secondes.

A+

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour Chris,
Je te remercie pour cet import et modification des données à partir d'une adresse de fichier.
Je suis étonné, car je ne vois aucun code. Et ca marche.
L'import se fait bien mais qu'à partir de la ligne 3. Sans les titres dse 2 premières lignes.pourquoi?
Merci beaucoup
 

Discussions similaires

Réponses
5
Affichages
356
Réponses
7
Affichages
623

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh