Microsoft 365 Accélération du traitement par variable tableau

DanB34

XLDnaute Nouveau
Bonjour,
Le mieux étant l'ennemi du bien, je cherche à gagner du temps sur l'exécution d'une macro, plus par envie de progresser que par nécessité absolue, même s'il est arrivé que certains fichiers comportent plus de 200.000 lignes de données et nécessitent un temps de traitement conséquent.
L'idée étant de supprimer les espaces invisibles, retours chariot... dans les cellules à travers une variable tableau.
Mais, j'ai des problèmes de connexions de neurones qui ne me facilitent pas la vie :rolleyes:

J'avais 2 idées :
1. passer par une variable tableau pour accélérer le traitement
2. ne traiter que les cellules comportant des caractères invisibles
Il est même sûrement possible de faire les 2 ?

Voici le code ci-dessous. Je joins aussi un fichier avec 3 boutons :
- Reset : remplis les cellules
- OK : supprime les espaces en double, triple... les retours chariot... -> fonctionne, mais peut être long
- KO : est sensé fonctionner par le biais d'une variable tableau, mais rien ne fonctionne correctement.
Merci d'avance pour le temps passé et les idées apportées.
Dan

VB:
Sub Nettoyer_Cars_Invisibles_Tableau()
Dim Tablo As Variant
Dim CelDepAdresse, CelArvAdresse, PlageDonnees As String
Dim c As Range
Dim car, tmp, i As Long
Dim rep As String
  
    CelDepAdresse = Range("B13").Address
    'Dernière cellule de la plage
    Range(Split(ActiveSheet.UsedRange.Address, ":")(1)).Select
    CelArvAdresse = ActiveCell.Address
    PlageDonnees = Range(CelDepAdresse & ":" & CelArvAdresse).Address
    Range(PlageDonnees).Select
    
    Tablo = Range(PlageDonnees)
    
    car = Array(8, 10, 13, 160)
    Set Tablo = Range(PlageDonnees)
    'MsgBox Tablo.Address
    For Each c In Tablo
        tmp = c.Value
        For i = 0 To UBound(car)
            tmp = Replace(tmp, Chr(car(i)), " ")
        Next i
        c = Application.Trim(tmp)
    Next c
    
    Range(PlageDonnees) = Tablo

End Sub
 

Pièces jointes

  • Classeur2.xlsm
    122.4 KB · Affichages: 10

Discussions similaires

Réponses
12
Affichages
245

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16