Menu

Macro pour remplacer colonnes avec dictionnaire

Messages postés
6
Date d'inscription
lundi 30 mai 2016
Dernière intervention
16 mars 2019
-
Bonjour!

prb d'excel avec grosse base de données ici...

Je cherche a écrire une macro. Mon fichier Excel a 5 pages (p1 p2 p3 p4).

J’aimerais que la macro travaille sur les colonnes S à AC de ces pages.
Chaque page a entre 300.000 et 750.000 lignes. Le fichier fait 270MO!
Il s’agit de remplacer des expressions selon un « dictionnaire » que j’ai constitué, par colonne, sur une dernière page. ça va permettre d’alléger le fichier en enlevant les longues séries de caractère. Je compte perdre 30% de poids et ainsi pouvoir mieux le traiter dans un logiciel statistique dédié (stata).

Ces colonnes ont des expressions longues dedans, du genre:
« Meuble a tiroir en bois »
Je veux raccourcir ça, doit pr un chiffre, soit une abbreviation. j'ai un dictionnaire, colonne (texte long; abbréviation). le tout, sans doublons.


Ma démarche au début a été de faire une masse de Recherche V, les copier en valeur, et supprimer la colonne de base. C'est très long, ça rame, je me demande si ya une meilleure solution. J'ai aussi fait, pour des cas faciles, des chercher-remplacer dans le casseur (respecter la casse, celule entière). Peu optimal, pourtant j'ai des ordi assez au taquet.


Je suis totalement perdu!
J’ai tenté des trucs mais je crois que
1. erreurs de syntaxe
2. Pas adapté à la taille de la tache


Si quelqu’un pouvait me guider un peu!
merci bcp de votre aide!




En PJ un exemple de fichier: https://www.cjoint.com/c/ICqlXIFTWkx

il est comme mon fichier, mais plus léger. il contient un dictionnaire "incomplet", fondé sur la dernière page. EN jaune sont les colonnes que j'ai travaillé par RechercheV


<config>
2 Mac
2 PCs
Afficher la suite 

Votre réponse

2 réponses

Messages postés
7687
Date d'inscription
dimanche 13 juin 2010
Dernière intervention
23 mars 2019
1667
0
Merci
Bonjour,

Excel n'est pas un SGBD !
Il en existe de nombreux gratuits.
Ayadin75
Messages postés
6
Date d'inscription
lundi 30 mai 2016
Dernière intervention
16 mars 2019
-
merci, je vais regarder ça. En effet, excel n'est vraiment pas fait pour ça! là j'ai supprimé quelques colonnes pour simplifier, mais c'est galère sinon!
Commenter la réponse de Patrice33740
Messages postés
22587
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2019
7290
0
Merci
Bonjour à tous,

Je me suis amusé avec ton fichier. Mais comme dit Patrice, 270 Mo il risque d'exploser en plein vol.

Tu n'as plus à construire le dico, je le construis au fur et à mesure. Les n° ne reprennent donc pas à 0 à chaque champ.
J'ai réduit ton fichier à 168ko en supprimant les lignes vides (des fois un million...)
Ce qui est amusant c'est qu'il est passé à 181ko après traitement. La feuille dico sans doute
Reste à voir ce que ça donnera sur le vrai.

Tu as une constante shExclu et la définition des colonnes de S à AC à traiter à fixer dans le code avant.
https://mon-partage.fr/f/MDUxftAh/
eric

PS : je tiens compte de la casse. Je n'ai pas voulu rajouter un traitement en plus si c'était inutile.
Il faudra déjà du temps pour tout traiter...
Rajoute toi-même ou demande si besoin

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Ayadin75
Messages postés
6
Date d'inscription
lundi 30 mai 2016
Dernière intervention
16 mars 2019
-
Bonjour! merci bcp! j'espère que ça vous a un peu amusé en effet :p ! je regarde ça de suite et je vous répond après ou demain après avoir tout bien compris!

Aussi, comment avez vous fait pour supprimer les lignes vides ? C'est quelque chose que j'aimerais faire sur bcp d'autres fichiers, ça semble très utile! pour alléger, c'est la meilleure option ?
eriiic
Messages postés
22587
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 mars 2019
7290 -
Tu fais Ctrl+Fin pour voir la dernière cellule.
Tu supprimes lignes et colonnes inutiles, Enregistrer
Ben c'est la meilleure option si c'est la cause de l'embonpoint oui, sinon non.

Tu peux aussi l'enregistrer en xlsb. Il prendra toujours autant de place en mémoire, mais moins sur le disque. Toujours du temps de gagné à l'ouverture et à l'enregistrement
eric
michel_m
Messages postés
15753
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
22 mars 2019
3634 -
bonjour tt le monde
une petite astuce pour supprimer les lignes vides colonne A ou autre suivant la feuille

Sub Supprimer_si_vide()
Dim Ligne As Long

On Error Resume Next
Ligne = Columns("A").Find("*", , , , , xlPrevious).Row
Range("A2:A" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Commenter la réponse de eriiic