Macro remplacer une série de mots par des sigles (plage donnée)
TOT127
Messages postés
1045
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
un fichier: http://www.cjoint.com/c/FKlmuc5AAjX
J'ai un fichier de 2 feuilles, dans chacune la dernière colonne comporte des États d'un pays (New York Arkansas, etc). je dois remplacer ça par les abréviations, pour alléger mon fichier (qui est énorme, 120Mo). Puis quand j'aurai access je le mettrai dedans, semaine prochaine.
J'ai excel 2007 et un PC.
Je veux, à chaque fois, dans la colonne C:C de F1 et F2 remplacer les états par les abréviations (j'ai une liste). Je suis débutant en VBA,et pour l'instant je ne réussis qu'à faire de petits exercices, et je n'ai pas réussi à faire une macro, même en regardant des macros à modifier sur google.
Je dois limiter le remplacement aux plages, car je veux pas que "New York Restaurant" devienne "NY Restaurant" (ça serait un prb pour le matching avec une autre base de données.....), et le nombre d'items à remplacer est de 30 (donc faudrait tous les écrire dans la macro).
Je précise - vous allez hurler - que chaque feuille fait 900.000 lignes.
Merci bcp!
un fichier: http://www.cjoint.com/c/FKlmuc5AAjX
J'ai un fichier de 2 feuilles, dans chacune la dernière colonne comporte des États d'un pays (New York Arkansas, etc). je dois remplacer ça par les abréviations, pour alléger mon fichier (qui est énorme, 120Mo). Puis quand j'aurai access je le mettrai dedans, semaine prochaine.
J'ai excel 2007 et un PC.
Je veux, à chaque fois, dans la colonne C:C de F1 et F2 remplacer les états par les abréviations (j'ai une liste). Je suis débutant en VBA,et pour l'instant je ne réussis qu'à faire de petits exercices, et je n'ai pas réussi à faire une macro, même en regardant des macros à modifier sur google.
Je dois limiter le remplacement aux plages, car je veux pas que "New York Restaurant" devienne "NY Restaurant" (ça serait un prb pour le matching avec une autre base de données.....), et le nombre d'items à remplacer est de 30 (donc faudrait tous les écrire dans la macro).
Je précise - vous allez hurler - que chaque feuille fait 900.000 lignes.
Merci bcp!
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Suggestion :Option Explicit Sub states() Dim f As Worksheet Dim li As Long Dim etat As String Dim abbrev As String For Each f In ThisWorkbook.Worksheets li = 1 Do etat = Cells(li, 3) abbrev = "" Select Case etat Case "CALIFORNIE": abbrev = "CA" Case "TEXAS": abbrev = "TX" End Select If abbrev <> "" Then Cells(li, 3) = abbrev End If li = li + 1 Loop While Cells(li, 3) <> "" Next End Sub
Cela va faire le boulot (pour CA & TX) sur la troisième colonne de toutes tes feuilles, jusqu'à rencontrer une cellule vide.-
-
-
-
il s’arrête peut-être trop tôt, sur la première ligne sans rien en colonne C?
ce code prévient quand il a fini chaque feuille :Option Explicit Sub states() Dim f As Worksheet Dim li As Long Dim etat As String Dim abbrev As String For Each f In ThisWorkbook.Worksheets li = 1 Do etat = Cells(li, 3) abbrev = "" Select Case etat Case "CALIFORNIE": abbrev = "CA" Case "TEXAS": abbrev = "TX" End Select If abbrev <> "" Then Cells(li, 3) = abbrev End If li = li + 1 Loop While Cells(li, 3) <> "" MsgBox "fini " + f.Name + ", dernière ligne =" + CStr(li) Next End Sub -
-
-
900 000 lignes ??? !!! Ah ben je suis sûr que tu as une version
d'Excel ultérieure à la version 2003, alors !!! Cordialement. 😉