automatiser un "remplacer par"

  • Initiateur de la discussion juliette
  • Date de début
J

juliette

Guest
Bonsoir à toutes et à tous,

Avant de rester enfermée au bureau, je sollicite votre aide car je bute sur un problème.
En effet, j'ai un classeur composé de 2 feuilles.
l- a 1ère feuille est une base de donnée de 10 colonnes (Code, Nom, Prénom,...).
- la 2ème feuille me permet de faire quelques modifications dans la feuille1.
ainsi, en colonne A de la feuille 2, j'ai une liste de codes
en colonne B de cette même feuille, j'ai une liste de nouveaux codes

Ce que je souhaiterai faire, c'est grâce à un code VBA, remplacer dans la feuille 1- colonne A, les éventuelles codes qui figureraient en colonne A de la feuille 2 par les nouveaux codes (colonne B-feuille2).

mon explication est un peu tirée par les cheveux mais j'espère que quelqu'un pourra m'aider à éviter la "création d'une colonne puis rechercheV" ou le "edition-remplacer par"...

Merci d'avance

Juliette
 
M

myDearFriend

Guest
Bonsoir Juliette,


La procédure suivante devrait répondre à ta demande :

Sub ModifCodes()
Dim TabCode As Variant
Dim TabNvCode As Variant
Dim L As Long
Dim L2 As Long
'Charge les Codes de la feuille 2 dans un tableau variant temporaire TabNvCode()
With Sheets(2)
L = .Range("A65536").End(xlUp).Row
TabNvCode = .Range(.Cells(1, 1), .Cells(L, 2)).Value
End With
'Charge les Codes feuille 1 dans un tableau variant temporaire TabCode()
With Sheets(1)
L = .Range("A65536").End(xlUp).Row
TabCode = .Range(.Cells(1, 1), .Cells(L, 1)).Value
'Compare les tableaux
For L = 1 To UBound(TabNvCode, 1)
For L2 = 1 To UBound(TabCode, 1)
If TabNvCode(L, 1) = TabCode(L2, 1) Then
TabCode(L2, 1) = TabNvCode(L, 2)
End If
Next L2
Next L
'Réaffecte les nouveaux codes en feuille 1
.Range(.Cells(1, 1), .Cells(UBound(TabCode, 1), 1)).Value = TabCode
End With
End Sub



Cordialement,
Didier_mDF
 

Discussions similaires

Réponses
5
Affichages
171
Réponses
8
Affichages
431

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz