XL 2016 Remplacement du contenu d'une cellule par une autre

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

Phytoman

XLDnaute Junior
Bonjour à tous et merci pour vos éventuelles suggestions 🙂
Un de mes amis fan de foot me demande de l'aider à constituer une fichier Excel dans lequel il pourrait automatiser la mise en correspondance d'une cellule par rapport à une autre.
Je m'explique :
Il a un petit site dédié au foot dans lequel il remonte tous les résultats téléchargés sur la plateforme officielle de la fédération belge.
Lorsque c'est fait il doit convertir chaque nom de club (un par un) dans une version "raccourcie" avant de les envoyer sur son site.
En effet, les noms utilisés dans la fédération est trop long. Le nom présent dans CLUB devrait être remplacé par sa version WF MATCH.
exemple :
CLUBwf match
K.RC.GenkGenk
Cercle Brugge K.SV. Cercle de Bruges
K.St.-Truidense VV. Saint-Trond
SV.Zulte Waregem Zulte Waregem
KV.RS.Waasland-SK.Beveren Waasland-Beveren
R.SC.Anderlecht Anderlecht
R. Fraiture Sp AFraiture Sports

Là ou cela se corse, c'est qu'il doit en plus convertir son fichier de résultats. Celui-ci remonte tous les matchs avec l'appellation longue des clubs.
R. Fraiture Sp A deviendrait alors Fraiture Sports
3A
18-08-19​
15:00​
Racour AOreye
2​
2​
3A
18-08-19​
15:00​
Templiers Nandrin BRfc.Huy B
1​
2​
3A
18-08-19​
15:00​
Fizoise BOuffet Warzée
0​
1​
3A
18-08-19​
15:00​
R. Fraiture Sp AHuccorgne
0​
3​
3A
18-08-19​
15:00​
Warnant BBurdinne
0​
2​
3A
18-08-19​
15:00​
RSC. Haneffe JSK Crisnée
3​
1​

J'espère avoir été clair 🙂
Merci de votre aide
 
Bonjour,

si la table de correspondance CLUB=> wf match existe, une petite moulinette VBA permettrait de modifier rapidement....

Un classeur contenant cette table et les données issues de la fédération permettrait de tester et de proposer un code adapté...

A+
 
Ces fichiers sont de toute façon téléchargeables gratuitement sur le site de la fédération 🙂 En annexe :
1) Liste de tous les prochains matchs en province de Liège (toutes compétitions confondues).
2) Le fichier de correspondances (partiel il est en cours de réalisation)
Le cas échéant, devra-t-il réunir tous les matchs dans un seul fichier ?
 

Pièces jointes

Pour plus de simplicité, j'ai mis la feuille de correspondance dans le classeur match, en conservant son nom.

la macro suivante remplace, dans la feuille lieresdownP les noms des clubs par leur correspondance si elle est connue.

la liste des clubs inconnus est copiée en fin de feuille de correspondance (supprimer les commentaires pour l'activer), mais, attention, la relance de la macro remplacera le nom de ces clubs par ... vide...... tant que le nom "raccourci" n'est pas renseigné

à tester:

VB:
Sub Décode()
Dim Dico, Dico2, TC, i, T, FC As Worksheet, FM As Worksheet

Set Dico = CreateObject("Scripting.Dictionary")
Set Dico2 = CreateObject("Scripting.Dictionary")
Set FC = Worksheets("correspondances-clubs-import-un")
Set FM = Worksheets("lieresdownP")

TC = FC.Range("A2:B" & FC.Range("B" & Rows.Count).End(xlUp).Row)
For i = LBound(TC, 1) To UBound(TC, 1)
    Dico(TC(i, 1)) = TC(i, 2)
Next

T = FM.Range("E2:E" & FM.Range("E" & Rows.Count).End(xlUp).Row)
For i = LBound(T, 1) To UBound(T, 1)
    If Dico.Exists(T(i, 1)) Then
        T(i, 1) = Dico(T(i, 1))
    Else
        Dico2(T(i, 1)) = ""
    End If
Next

FM.Range("E2").Resize(UBound(T, 1), 1) = T 'copie les correspondances

'supprimer les ' devant les deux lignes suivantes pour copier les clubs sans correspondance

'derFC = FC.Range("A" & Rows.Count).End(xlUp).Row + 1
'FC.Range("A" & derFC).Resize(Dico2.Count, 1) = Application.Transpose(Dico2.keys)

End Sub

A+
 
1) J'ai copié-collé le contenu de la feuille "correspondances-clubs-import-un" dans le fichier "lieresdownP" dans un onglet du même nom.
2) j'ai été dans VBA -->feuille "lieresdownP" et y ai copié ton code
3) j'ai enregistré
Quand je fais exécuter la macro rien ne se passe. Quand je sélectionne les deux colonnes et exécute la macro idem ?!
 
Dans le fichier "matchs-liege", créez une feuille "correspondances-clubs-import-un" et y coller le contenu de la feuille du même nom du classeur "correspondances...."
dans un module standard copier la macro (ça devrait marcher si la macro est copiée dans la feuille de code d'une feuille...)
Autorisez les macros et Enregistrez en classeur Excel xlms

au besoin joignez le classeur en défaut...

A+
 
prise en compte des colonnes D et E, et suppression de la possibilité d'obtenir les noms complets sans correspondance:

VB:
Sub Décode()
Dim Dico, Dico2, TC, i, T, FC As Worksheet, FM As Worksheet

Set Dico = CreateObject("Scripting.Dictionary")
Set Dico2 = CreateObject("Scripting.Dictionary")
Set FC = Worksheets("correspondances-clubs-import-un")
Set FM = Worksheets("lieresdownP")

TC = FC.Range("A2:B" & FC.Range("B" & Rows.Count).End(xlUp).Row)
For i = LBound(TC, 1) To UBound(TC, 1)
    Dico(TC(i, 1)) = TC(i, 2)
Next

T = FM.Range("D2:E" & FM.Range("E" & Rows.Count).End(xlUp).Row)
For i = LBound(T, 1) To UBound(T, 1)
    If Dico.Exists(T(i, 1)) Then T(i, 1) = Dico(T(i, 1))
    If Dico.Exists(T(i, 2)) Then T(i, 2) = Dico(T(i, 2))
Next

FM.Range("D2").Resize(UBound(T, 1), UBound(T, 2)) = T 'copie les correspondances

End Sub
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre
Retour