Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 à tous,
merci pour vos propositions.
Le powerquery de Chris pourrait etre envisagé.
Idem pour celle de deadpool_cc
J'ai testé la mavcro de Job75 et une fois de plus la réponse est excellente : 2,16 secondes.
Merci à tous et bonne journée
 

chris

XLDnaute Barbatruc
Bonjour

Modifier le chemin dans l'onglet Chemin puis Données, Actualiser tout

Nécessite que toutes les cellule soient convertibles en nombre
 

Pièces jointes

  • Test2_PQ.xlsx
    422 KB · Affichages: 4

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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…