Remplacer valeur par une autre provenant d'un autre fichier fermer

  • Initiateur de la discussion Initiateur de la discussion chrisdu73
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chrisdu73

XLDnaute Occasionnel
Bonsoir le forum,

encore une fois je viens à vous pour une aide en VBA, je n'arrive pas a adapter les différentes solutions qui se trouve sur le forum à mon problème.

J'ai un fichier (table.xls) avec en colonne A des codes, je voudrais pouvoir changer un code par un autre en fonction des renseignements que j'ai dans un autre fichier (parametrage.xls) en colonne O le code à changer et le nouveau code en colonne N.
la liste d'anciens et nouveaux codes pouvant évoluer.
les deux fichiers se trouve au même endroit et le fichier (parametrage.xls) restant fermé.

exemple en fichier joint

Avec tout mes remerciements pour votre aide

Chris
 

Pièces jointes

Re : Remplacer valeur par une autre provenant d'un autre fichier fermer

Bonjour

en mettant les deux classeurs dans le même dossier (il faudra que tu ajustes les chemins des classeurs dans la formule).
J'ai mis tes tableaux sous forme de liste pour que la formule s'adapte quand tu ajoutes des valeurs dans ta liste de correspondance et nommé (insertion/nom/définir) anciennum et nouveaunum sur la feuille paramétrage les plages correspondantes. La formule dans le classeur table fait référence à ces noms.
 

Pièces jointes

Re : Remplacer valeur par une autre provenant d'un autre fichier fermer

For w = 2 To Rows.Count
ReDim Preserve tablo(1, w)
tablo(0, w) = ExecuteExcel4Macro(s & w & "C14") 'colonne N
tablo(1, w) = ExecuteExcel4Macro(s & w & "C15") 'colonne O
If tablo(0, w) = 0 Then Exit For
Next w
'------------------------- mise à jour des cellules -----------------
'Application.ScreenUpdating = False
For Each cel4 In Range("S2", [S65536].End(xlUp))
v = Application.HLookup(cel4.Text, tablo, 2, 0)
If Not IsError(v) Then cel4 = v
If IsError(v) Then cel4 = ""
Next
For Each nul In Range("R2", [R65536].End(xlUp))
If nul = 0 Then nul.ClearContents
Next nul

J'ai trouvé cette partie de code qui fonctionne très bien lorsque la valeur recherchée est du texte, mais cela ne marche pas avec une valeur numérique.
Pourquoi ?
est-ce dans la déclaration des variables ?
ou qui peut me dire comment faire pour une valeur numérique.

merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour