Ainsi, par exemple, disons que mon tableau est [32,43,92,99] ("codé en dur" dans le code VBA, vous n'avez pas besoin de vous soucier des entrées), puis dans une feuille Excel, je surligne une grille rectangulaire de cellules numéroté de 1 à 100. Serait-il possible de parcourir le tableau et de mettre en surbrillance les cellules correspondantes avec ces valeurs dans la feuille ? Dans ce cas, mettre en surbrillance les cellules lisant 32, 43, 92, 99.

Sub readClipboard()
  Dim DataObj As New MSForms.DataObject
  Dim S As String
  DataObj.GetFromClipboard
  S = DataObj.GetText
  S = Application.Clean(S)
  S = Application.Trim(S)
  S = Split(S)
End Sub

Je voudrais donc faire correspondre ce tableau S avec une sélection, puis mettre en surbrillance les cellules dont les valeurs correspondent aux valeurs du tableau.

0
Sally 19 nov. 2019 à 23:59

1 réponse

Meilleure réponse

Voici une façon d'y parvenir. Cela suppose que vous avez sélectionné/mis en surbrillance la plage qui contient les valeurs que vous allez faire correspondre. Cela définit simplement la couleur de la cellule sur un gris laid.

Sub highlightfromarray()
    S = Array(1, 5, 10, 23, 38)

    'Capture user range selection to a variable
    Dim userRange As Range
    Set userRange = Selection

    'VAriable for found range
    Dim foundRange As Range

    'Loop through array
    For Each numItem In S
        'Using Range.Find() method, find each item and highlight
        Set foundRange = userRange.Find(numItem)
        If Not foundRange Is Nothing Then foundRange.Interior.ColorIndex = 15
    Next
End Sub
1
JNevill 19 nov. 2019 à 21:24