FIND avec HYPERLIEN

Bonsoir à tous,

j'ai 2 classeurs différents à comparer avec retour des erreurs sur le premier classeur. (plus ou moins 350 lignes).

1er classeur : Suivi / Suivi (à partir de la ligne 2)

2e classeur : Data / Data (à partir de la ligne 13)

Je cherche l’existence du premier numéro de la ligne 2 dans 1er classeur en COLONNE A dans le 2e classeur en COLONNE B et ainsi de suite

Si je trouve les 2 mêmes valeurs dans ces 2 colonnes alors je cherche dans la ligne de la valeur trouvée dans le 1er classeur en COLONNE I l'état de commande pour la comparer avec la COLONNE L de la ligne de la valeur équivalente trouvée dans le 2e classeur afin de me faire un retour dans le premier classeur.

SAUF que dans les 2 classeurs, les 2 valeurs à trouver dans 1er classeur COLONNE A et 2e classeur COLONNE B sont des liens hypertexte.

Du coup, ma boucle ne trouve rien et me renvoie qu'elle ne trouve pas la référence dans le 2e classeur.

Pourtant les hyperliens des deux fichiers sont exactement les mêmes (je l'ajoute via un textbox dans le 1erclasseur et dans le 2e c'est une extraction business object).

Cela ne fonctionne pas non plus si je supprime les hyperliens dans les 2 classeurs..

A contrario, si je copie la cellule du 2e classeur/colonne B et la colle dans le 1er classeur/colonne A pour faire un essai, cela me renvoie bien le résultat

Afin de faciliter la compréhension de mon soucis (explications surement bancales ),

je vous ai joins les 2 fichiers sources épures bien sur pour la confidentialité des données mais qui vous permettrons peut être de m'aider à résoudre ce problème.

Il suffit d'ajouter via l'usf une commande avec un numéro existant dans DATA (type 00XXXX) et de faire la MAJ via le bouton dans la feuille Suivi du 1er classeur.

Merci d'avance à ceux qui m'aideront à résoudre ce problème

Bonne soirée à tous, et encore merci d'exister !

5suivi.xlsm (27.40 Ko)
4data.zip (8.73 Ko)

Bonsoir,

il ne trouve pas de correspondance entre tes 2 fichiers car dans ton fichier data, les numéros de commande sont suivis d'un espace, alors que dans ton fichier suivi, ils y sont sans cet espace.

soit tu supprimes ces espaces, soit tu adaptes ton instruction find comme ceci :

Set Cel = WsExt.Columns(ColExt).Find(what:=WsMain.Cells(J, ColMain), LookIn:=xlValues, lookat:=xlPart)

Désolé pour la réponse tardive, pas eu le temps de me re pencher dessus depuis!

Aie aie aie, merci énormément, c'était effectivement bien l'espace en fin de numéro du coup je l'ai simulé lors de la creation du n° de commande dans le fichier suivi et ça fonctionne parfaitement. (pas faute d'avoir retourné les cellules dans tout les sens pendant une nuit)

Ca m'évite le xlPart

Par contre, dernière petite question, j'en ai profité pour colorier le fond des cellules en couleur quand il y a des changements mais j'aurais aimé intégrer une autre couleur si la valeur= LIVREE par exemple.

Je suppose que c'est possible en rajoutant un IF pendant le contrôle mais il a pas l'air de me prendre la valeur au sérieux.

D'avance, merci

bonsoir,

une proposition de solution via un IF

If Not Cel Is Nothing Then
            ' On à trouvé la référence
            If WsMain.Cells(J, ColComMain) = WsExt.Cells(Cel.Row, ColComExt) Then
                WsMain.Cells(J, ColResult) = "ETAT DE COMMANDE INCHANGE ligne " & Cel.Row
            Else
                WsMain.Cells(J, ColResult) = WsExt.Cells(Cel.Row, ColComExt)
                '-------------------------------------
                If WsMain.Cells(J, ColResult) = "LIVREE" Then
                    WsMain.Cells(J, ColResult).Interior.Color = vbYellow
                Else
                    WsMain.Cells(J, ColResult).Interior.Pattern = xlNone
                End If
                '-------------------------------------
            End If
        Else
            WsMain.Cells(J, ColResult) = "NON TROUVE DANS DATA MISE A JOUR A FAIRE MANUELLEMENT VIA LIEN DU NUMERO DE COMMANDE"
        End If

Bonjour h2so4

Merci de ta réponse rapide, je ne sais pas si tu as essayé mais j'étais également parti sur cette solution qui ne fonctionne malheureusement pas.

J'ai essayé aussi

.Interior.Color = 3

ne fonctionne pas.

Après il me reste toujours la possibilité de passer par l'event worksheet change mais bon.

Merci pour ton aide!

edit : après l'avoir testé sur le fichier spécifique au forum, ça fonctionne très bien mais pas lors de l'adaptation à mon fichier d'origine. Je vais me pencher dessus. La seule différence avec le fichier forum c'est que je colle les résultats d'état de commande différents directement dans la colonne état de commande du fichier. C'est bizarre

edit2 : Merci h2so4, ça fonctionne à merveille sur mon fichier!!!! En faite comme dit plus haut, j'utilisais

.Interior.Color = 3

alors que

.Interior.ColorIndex = 3

fonctionne à merveille. Je ne sais pas pourquoi puisqu'interior.color fonctionne bien sur des shapes.

Bonsoir,

le sujet .color et .colorindex est entre autres traité ici

https://forum.excel-pratique.com/viewtopic.php?forum_uri=cours-astuces&t=21547&start=

Rechercher des sujets similaires à "find hyperlien"