VBA Copier des cellules vers une autre feuille de calcul où les cellules ont la même valeur

J'ai deux feuilles de calcul avec lesquelles de longs numéros de série sont les valeurs de la cellule. Une feuille (Sheet1) contient une list de chaque numéro de série individuel hyperlié vers un site Web se référant à cet élément. Cette list varie de A1: A31.

La deuxième feuille (Sheet2) contient une list massive de ces mêmes numéros de série, mais dans la gamme G1: G102. La différence est que cette list n'est pas hyperliée, et les numéros de série apparaissent parfois plusieurs fois. Il y a aussi des zones où une cellule est vierge, donc elle divise la colonne continue de données.

J'aimerais essentiellement écrire une macro qui prend la première list dans Sheet1 et, pour chaque cellule, elle la compare à chaque cellule dans la colonne Sheet2 G. Ensuite, si les valeurs correspondent, j'aimerais copyr la cellule hyperliée de la Feuille 1 et collez-le sur cette cellule avec la même valeur dans Sheet2. Par conséquent, Sheet2 colonne G a maintenant une list complète de numéros de série hyperliés.

Est-ce que quelqu'un peut m'aider avec ça? C'est ce que j'ai jusqu'ici … ne semble pas fonctionner:

Sub CopyHyperlinks() Dim cell As Excel.Range Dim myRange As Excel.Range Dim newRange As Excel.Range Set myRange = Excel.ThisWorkbook.Sheets("Contents").Range("A1:A31") Set newRange = Excel.ThisWorkbook.Sheets("Sheet1").Range("G1:G102") For Each cell In myRange If myRange.Cells.Value = newRange.Cells.Value Then newRange.Cells.Value = myRange.Cells.Value Next cell End Sub' 

Voir cette petite fonction . Mettez ceci:

 Function GetHyperLinkAddress(rng As Range) As Ssortingng Dim hl As Hyperlink For Each hl In rng.Parent.Hyperlinks If hl.Range.Address = rng.Address Then GetHyperLinkAddress = hl.Address Exit Function End If Next hl GetHyperLinkAddress = "Not Found" End Function 

dans un module. Dans la feuille de calcul, append

 =GetHyperLinkAddress(Cell#) 

À côté des cellules avec l'hyperlien. Vous pourriez alors utiliser un vlookup pour faire correspondre.