XL pour MAC Remplacer des valeurs dispersées sur une feuille selon une liste

  • Initiateur de la discussion Initiateur de la discussion cloum1
  • 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 !

cloum1

XLDnaute Nouveau
Bonjour
J'ai utilisé Excel pour faire un plan d'implantation pour un projet d'aménagement d'un local d'archives de boites sur des étagères
Les boites (cellules colorées) sont numérotées et réparties graphiquement sur une feuille (voir fichier implantation)
Je souhaiterai remplacer le numéro de boite en fonction d'une liste. J'ai 2 colonnes (colonne A étant la liste des valeurs à remplacer et colonne B la nouvelle valeur correspondante) (cf fichier liste)
Cette nouvelle valeur est en fait le numéro de la boite suivi du numéro de carton utilisé pour le déménagement. J'ai fusionné les deux avec un tiret séparateur pour créer la colonne B

J'ai bien vu que ce genre de question avait déjà été posée mais il s'agissait de valeurs en liste.

Ici les cellules à traiter sont dispersées sur la feuille !

Est ce que quelqu'un a une idée ?

Merci et bonne année !
 

Pièces jointes

Dernière édition:
Bonsoir Cloum,
En PJ j'ai rapatrié la liste dans le même fichier pour faire plus simple.
J'ai dupliquer l'autre feuille pour avoir les repères.
Dans la nouvelle feuille il suffit ainsi de faire :
VB:
=RECHERCHEV(Ancien!E18;Liste!$A:$B;2)
Mais la liste n'est pas complète donc j'ai arrêté. Dans la liste il manque : 4232 ... 4177, 0801 ... 0643 que j'ai mis en rouge en colonne D.
Il en manque beaucoup d'autres, mais le principe est là il vous suffit de remettre à jour la liste et de mettre les bonnes formules.
 

Pièces jointes

Bonsoir cloum1, sylvanu,

Une solution VBA avec cette macro :
VB:
Sub Remplacer()
Dim t#, r As Range, P As Range, v As Variant, n&
t = Timer
With Feuil1
    Set r = Intersect(.UsedRange.EntireRow, .[E:AD])
End With
Application.ScreenUpdating = False
On Error Resume Next
With Workbooks.Open(ThisWorkbook.Path & "\liste.xlsx")
    If Err Then MsgBox "Fichier 'liste.xlsx' introuvable...": Exit Sub
    On Error GoTo 0
    Set P = .Sheets(1).[A:B]
    For Each r In r
        If r <> "" Then If r.Interior.ColorIndex <> xlNone Then v = Application.VLookup(r, P, 2, 0): If Not IsError(v) Then r = v: n = n + 1
    Next
    .Close False
End With
Application.ScreenUpdating = True
MsgBox n & " remplacements effectués en " & Format(Timer - t, "0.00 \sec")
End Sub
Téléchargez les fichiers joints dans le même dossier et ouvrez le fichier .xlsm.

A+
 

Pièces jointes

Bonjour Sylvanu
Merci pour votre retour !!. c'est exactement ca
Je vais essayer de voir comment ca marche mais je ne maitrise pas le VBA.
effectivement il manque des valeurs , il faut que je finisse de mettre en forme le tableau.
je dois auparavant mettre un préfixe "DOC-" devant la valeur contenue dans chaque cellule colorée en jaune
Est ce que ca peut se faire automatiquement ?
 
J'ai essayé ta macro . Merci ! mais il ne trouve pas le fichier liste.xlsx (pourtant j'ai mis les 2 dans un même dossier )
Ah oui j'oubliais que vous êtes sur MAC, le séparateur de chemin n'est pas "\".

Alors utilisez ce fichier (2) avec :
VB:
With Workbooks.Open(ThisWorkbook.Path & Application.PathSeparator & "liste.xlsx")
 

Pièces jointes

Merci !!, je viens d'essayer c'est top. Apparement vous avez fait aussi le nécessaire pour que cela ne modifie que les cellules en couleur (numéro de boite) , je craignais justement que cela ne modifie aussi les autres cellules qui possèdent aussi des données pouvant se trouver dans la lise.

Merci beaucoup en tout cas, je n'aurais pas pu faire autant !
 
- 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