Macro remplace valeurs

bnolwalid

XLDnaute Junior
Bonjour tout le monde,

SVP aidez moi plllllzzzzz,

En fait, je dispose de deux fichiers Excel : DATA et RECUP_VAL (voir PJ).

Le but est de faire une recherche des noms existants dans le fichier DATA colonne B, cette recherche doit s'effectuer dans l'autre fichier RECUP_VAL colonne A.

Une fois la recherche lancée, on a deux cas :

- Soit le nom existe, dans ce cas là, il faut remplacer sa valeur (DATA colonne C en face de value )par la valeur correspondante (RECUP_VAL colonne B)

Exp : "Absolute" existe donc, "true" doit se transformer en "false"


- Soit il n'existe pas, dans ce cas là, on fait rien.


Je ne sais pas si j'ai été clair, si vs avez des questions n'hésitez pas !

Merci d'avance.
 

Pièces jointes

  • RECUP_VAL.xls
    13 KB · Affichages: 49
  • DATA.zip
    34.3 KB · Affichages: 23
  • DATA.zip
    34.3 KB · Affichages: 25
  • DATA.zip
    34.3 KB · Affichages: 27
Dernière édition:

Odesta

XLDnaute Impliqué
Re : Macro remplace valeurs

Bonsoir
Vous désirez remplacer une valeur déjà existante :

Est-ce possible de mettre cette donnée autre-part, de manière à ne pas avoir de remplacement à faire ?
L'idée est de n'utiliser que des formules pour réaliser votre besoin.

Car si vous devez remplacer une valeur 'en dur' alors il faudra utiliser une macro.

Pouvez-vous nous en dire plus ?

Olivier
 

bnolwalid

XLDnaute Junior
Re : Macro remplace valeurs

Bonsoir Olivier,

Merci de m'avoir répondu, j'ai dèja essayer de passer par une formule, en fait, le fichier original est bcp plus compliqué, et cette solution (formule) n'est pas exhaustive. Sinon, on ne peut mettre la valeur qlq part, il faut vrmt faire le remplacemen...

Donc, si tu peux me proposer une macro, ça serait super !!!
 

Odesta

XLDnaute Impliqué
Re : Macro remplace valeurs

Bonjour

La faire, non, le temps n'étant pas extensible, mais t'aider, avec plaisir.

Dans ton cas présent, il va falloir que tu 'balaye' toute la colonne B :
For i = 6 to 65000 'Cette solution rend le programme long, mais c'est l'une des plus simple à programmer, il sera temps de l'optimiser plus tard.

Chaque fois qu'une valeur est trouvée :
If Cells(i,2).Value <>"" then [...] End If

rechercher dans le fichier RECAP_VAL la correspondance.
While cellule_lue_dans_tableau_recap <> "" or valeur_trouvee = true
If cellule_lue_dans_tableau_recap = information_recheche then [... Valeur = True] End If
ligne = ligne + 1
cellule_lue_dans_tableau_recap = ....
Wend

Si une correspondance est trouvée avant la fin du fichier, remplacer la valeur du premier fichier.
Dans le [...] :
Workbooks(nom_fichier_data).sheets("DATA").cells(i + 2 [à confirmer que c'est toujours + 2 lignes après le nom de la donnée] , 3).value = donnee_trouve



Voila une premiere piste de travail
J'ai toute de même mis un peu de code pour te faciliter la tâche.

Bon courage pour la suite.
N'hésite pas à remettre les fichiers avec le code si tu rencontre des difficultés.

Olivier
 

Discussions similaires

Statistiques des forums

Discussions
312 313
Messages
2 087 165
Membres
103 485
dernier inscrit
maintenance alkern