Microsoft 365 Correspondance de mot dans une cellule

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 !

willschmidt

XLDnaute Nouveau
Bonjour à tous,

J'ai du mal à trouver quelle formule correspond à ma recherche !

Je voudrais reproduire dans la colonne G du fichier exple1 la colonne B du fichier exple2, avec comme condition :
- si dans une cellule de la colonne A du fichier exple1 on retrouve ce qu'il y a écrit dans un des cellules de la colonne A du fichier exple2 (par exemple dans mes fichiers on retrouve le mot SEREGENTI à la fois dans la celulle A4 du fichier exple 1 et dans la celulle A8 fichier exple2)
- alors on réécrit la cellule de la colonne B du fichier exple2 dans la cellule G du fichier exple2 (on réécrit en G4 du fichier exple1 ce qu'il y a écrit en B8 du fichier exple 2)

Merci d'avance, j'espère avoir été assez clair dans mes explications.
Bonne journée 🙂
 

Pièces jointes

Hello une solution "simple" serait par Power Query
1) importer le fichier Exemple2 (ne faire que la connexion)
2) importer le fichier Ex1
séparer la première colonne avant et après le 1er espace==> pour extraire le fournisseur
3) fusionner les deux tables
 

Pièces jointes

Bonsoir willschmidt, vgendron,

Téléchargez les 2 fichiers joints dans le même dossier (le bureau) et ouvrez Exple1.xlsm.

La macro dans le code de la feuille :
VB:
Private Sub Workbook_Activate()
Dim fichier$, tablo, i&, j As Variant
fichier = ThisWorkbook.Path & "\Exple2.xlsx" 'modifiable
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
With Workbooks.Open(fichier)
    tablo = .Sheets(1).[A1].CurrentRegion.Resize(, 2)
    .Close False
End With
[A1].CurrentRegion.Columns(7).Offset(1).ClearContents 'RAZ
For i = 2 To UBound(tablo)
    j = Application.Match("*" & tablo(i, 1) & "*", Columns(1), 0)
    If IsNumeric(j) Then Cells(j, 7) = tablo(i, 2)
Next
Columns(7).AutoFit 'ajustement largeur
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle s'exécute automatiquement quand on ouvre ou active le fichier Exple1.xlsm.

A+
 

Pièces jointes

Bonjour le forum,

On peut préférer affecter la macro à un bouton :
VB:
Sub MAJ()
Dim fichier$, tablo, i&, j As Variant
fichier = ThisWorkbook.Path & "\Exple2.xlsx" 'modifiable
Application.ScreenUpdating = False
With Workbooks.Open(fichier)
    tablo = .Sheets(1).[A1].CurrentRegion.Resize(, 2)
    .Close False
End With
[A1].CurrentRegion.Columns(7).Offset(1).ClearContents 'RAZ
For i = 2 To UBound(tablo)
    j = Application.Match("*" & tablo(i, 1) & "*", Columns(1), 0)
    If IsNumeric(j) Then Cells(j, 7) = tablo(i, 2)
Next
Columns(7).AutoFit 'ajustement largeur
End Sub
A+
 

Pièces jointes

- 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

Réponses
4
Affichages
147
Réponses
5
Affichages
351
Retour