Macro - Modification cellule selon critère

Bonjour forum,

Dans une macro de mise à jour de base de données, j'aimerai intégrer un code qui me permettrait de résoudre le problème suivant :

Une fois la mise à jour effectuée, ma base de donnée distingue 2 clients alors que ce sont sensés être les mêmes.

Ces 2 clients, (qui sont les mêmes donc) se nomment "BEL" et "BEL INDUSTRIE".

J'aimerai que "BEL INDUSTRIE" soit automatiquement modifié pour se nommer "BEL" dans le but de conserver l'utilité des TCD et graphiques rattachés à la base de données.

Voila un exemple plus parlant que mes piêtres explications :

https://www.excel-pratique.com/~files/doc2/Exemple_4.xls

Merci à ceux qui me liront,

Etienne

Bonjour

Edition Remplacer peut être très efficace pour ce genre de situation.

Dans Rechercher, saisir BEL INDUSTRIE

Dans Remplacer, saisir BEL

Cliquer ensuite sur Remplacer tout.

Il est bien sûr possible d'enregistrer tout ça dans une macro, associée à un bouton.

Fichier

Cordialement,

Bonsoir à tous,

un autre code

Sub test()
Dim Lg As Integer, Cel As Range
Lg = Range("b65536").End(xlUp).Row
    For Each Cel In Range("b2:b" & Lg)
        Cel = WorksheetFunction.Substitute(Cel, "BEL INDUSTRIE", "BEL")
    Next Cel
End Sub

Mais comme dit V_Elbie que je salut, pas besoin de macro pour çà.

Amicalement

Claude.

Bonjour,

Il faut savoir comment ta mise à jour de base de données est efféctuée.

Si cela se fait par code tu peux simplement ajouter cette ligne à la fin de ton code :

Range("B1:B" & Range("B65536").End(xlUp).Row).Replace What:="BEL INDUSTRIE ", Replacement:="BEL"

en dehors des solutions proposées par Velbie et Dubois, tu peux aussi simplement créer une macro avec l'instruction ci-avant.

Vérifie que BEL INDUSTRIE est toujours bien entré de la même manière car un espace en plus ne te donnera pas le même résultat

Amicalement

Dan

Bonjour le forum et bonjour les chefs,

C'est au top, j'ai pris ta ligne de code Dan; merci à toi, à dubois et V_elbie pour vos réponses.

Bonne journée,

Etienne

Re,

Une petite question et je clos le fil,

Lorsque je filtre manuellement ma base de données (filtre auto), et que je sélectionne "BEL"; il faut attendre une dizaine de secondes pour filtrer, tandis que lorsque je choisis un autre client (nimporte lequel) la filtration est instantanée.

A quoi peut-ce être dû?

Cordialement,

Etienne

Bonjour,

Il faudrait le fichier pour pouvoir juger

Claude.

Re dubois,

J'ai tenté de faire un fichier exemple, mais le problème disparaît.

Je suppose que c'est dû à la taille du fichier (bientôt 3Mo).

Ce qui m'embête, c'est que ça ne le fait que quand je filtre "BEL".

Autre aberration :

Lorsque je filtre ma BDD, grâce au code récupéré, je n'ai plus que "BEL" ==> parfait.

Sauf que dans mes TCD, on me distingue toujours 2 "BEL" / apparemment pas exactement la même syntaxe. Je verrai ça après manger.

A bientôt,

Etienne

re,

Sauf que dans mes TCD, on me distingue toujours 2 "BEL" / apparemment pas exactement la même syntaxe.

Oui cela vient du fait que le TCD conserve les anciennes étiquettes de données. Le mieux est de faire ton TCD après la mise à jour.

Si tu réactualises un TCD, il faudra passer par un code pour éliminer cette vieux items.

Amicalement

Dan

Re Dan,

Donc si j'ai bien compris j'inscrit ce code dans une macro :

Sub deleteolditem()
'Macro de Debra Dalgleish adaptée par DAN pour p@cm@n le 31/10/06
'http://www.excel-downloads.com/forum/69453-detruire-anciennes-etiquettes-dans-tcd.html
Dim pt As PivotTable
Dim sh As Worksheet
For Each sh In Worksheets
For Each pt In sh.PivotTables
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
pt.PivotCache.Refresh
Next pt
Next sh
End Sub

Une fois la macro exécutée, je la vire et c'est bon?

Je teste ça tout de suite.

J'anticipe une question : Lorsque je mettrai à jour ma base de données comme je le fais chaque début de mois, devrai-je effectuer la manip à nouveau? [quand je mets à jour, je vire tout et je remplace]

Si c'est le cas je mettrais ton code dans ma macro de mise à jour.

Merci pour tes lumières,

Etienne

Re,

Malheureusement, la macro semble n'avoir aucun effet :/

J'ai pourtant utilisé le code "multi-TCD" mais rien n'y fait, je n'arrive pas à voir un quelconque changement.

A voir,

Etienne

re,

Lorsque je mettrai à jour ma base de données comme je le fais chaque début de mois, devrai-je effectuer la manip à nouveau?

Oui si tu as actualisé le TCD avec des données que tu ne veux plus. Sinon une fois fait tu ne devras plus le faire..

[quote][quand je mets à jour, je vire tout et je remplace] [/quote]

Que veux-tu dire ? Tu peux expliquer ce que tu fais exactement ?

Les TCD sont-ils sur une seule feuille et fait avec quelle version d'excel ?

A te relire

Dan

Bonjour Dan,

Lorsque je dis que "je vire tout et je remplace" quand je mets à jour, cela signifie que le fichier source est lui même une base de données qui est mensuellement mise à jour. Mon opération consiste juste à copier cette base de données lorsqu'elle est mise à jour, [je me crée ma base de données BIS pour manipuler les données à ma guise]

Cordialement,

Etienne

re,

J'aimerais mieux voir ton fichier. ce serait plus simple.

Si tes TCD sont sur la même feuille, place toi sur la feuille en question et utilise ce code :

Sub deleteolditem() 
Dim pt As PivotTable 
For Each pt In sh.PivotTables 
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone 
pt.PivotCache.Refresh 
Next pt 
End Sub 

A te relire

Dan

Re Dan,

Chaque TCD est sur une feuille différente, aurais-tu la même formule applicable sur tous les onglets?

Je ne peux t'envoyer le fichier (trop gros) et lorsque je l'élague, les TCD sont chamboulés (et le problème disparaît bien sûr ).

Merci pour ta formule,

Cordialement,

Etienne

EDIT : Erreur d'exécution '424' : Objet requis

re,

Si tu as des TCD sur les autres onglets, il faut reprendre le premier code et y définir quelles sont les feuilles où il n'y a pas de TCD.

Quel est le nom de ces feuilles ?

Amicalement

Dan

Bonjour Dan,

Voila les feuilles où il n'y a PAS de TCD :

"Bouton Macro" ; "GRAPHIQUES" ; "GRAPHIQUES-2" ; "GRAPHIQUES-3" ; "Grands comptes" ; "International" ; "GRAPHIQUE-International" ; "Critères" .

A noter que les onglets "GRAPHIQUE" sont des graph réalisés à partir des TCD du même classeur, je ne sais pas si il faut les prendre en compte.

Cordialement,

Etienne

re,

Déso de cette question, mais peux-tu me donner aussi les noms de feuilles avec TCD.

A te relire

Dan

Re Dan,

Pas de quoi t'excuser ,

Voila la liste des onglets contenant des TCD :

"CA-Groupe-Année" ; "CA-Groupe-Mois" ; "NBjT-Groupe-Année" ; "CA-Type-Année" ; "Répartition-NBjT-Année" ; "CA-Produit-Année" ; "Prix moyen par jour" ; "Prix moyen-produit" ; "Prix moyen-type" ; "CA-Client" ; "CA-Pays" .

Merci et bonne journée,

Etienne

re,

Bon finalement la macro que de Debra est celle que tu dois prendre.

Je ne comprends pas pourquoi tes TCD sont chamboulés. Tu dois avoir un autre souci dans ton fichier.

Peux-tu envoyer ton fichier ? Vois ta mp sur ce site.

Amicalement

Dan

Rechercher des sujets similaires à "macro modification critere"