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

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

  • table.xls
    33.5 KB · Affichages: 34
  • Parametrage.xls
    39 KB · Affichages: 38
  • table.xls
    33.5 KB · Affichages: 39
  • Parametrage.xls
    39 KB · Affichages: 41
  • table.xls
    33.5 KB · Affichages: 46
  • Parametrage.xls
    39 KB · Affichages: 61

Misange

XLDnaute Barbatruc
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

  • table.xls
    38 KB · Affichages: 53
  • table.xls
    38 KB · Affichages: 63
  • table.xls
    38 KB · Affichages: 49
  • Parametrage.xls
    39.5 KB · Affichages: 39
  • Parametrage.xls
    39.5 KB · Affichages: 44
  • Parametrage.xls
    39.5 KB · Affichages: 48

chrisdu73

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 698
dernier inscrit
Guillaume MPOYI