Macro pour vérifier et mettre la valeur unique dans une cellule à partir d'une plage de colonnes

1

Je suis très nouveau pour les macros.

Je voulais convertir la formule suivante en macro

=IF(COUNTIF($B$1:$B1,$A2)=1,"NA",$A2)

Où dans le $ B1 sera incrémental et j'imprimerai la valeur en $ B2.

La sortie finale devrait ressembler à celle ci-dessous

enter image description here

Sundhar
la source

Réponses:

1

Est-ce que vous ne voulez pas de doublons? Utilisez un dictionnaire de script.

Dim dict as Object
set dict = CreateObject("Scripting.Dictionary")
Dim i as Long
For i = 2 to 9
   dict(cells(i,1)) = 1
Next
Dim dictKey as Variant
i = 1
For Each dictKey in dict.Keys()
   cells(i,2) = dictKey
   i = i+1
Next

Ou à la fin:

dim dictVal as string
For i = 2 to 9
  dictVal = cells(i,1)
  If Dict(dictVal).Exists Then
    cells(i,2) = cells(i,1)
  Else: cells(i,2) = "N/A"
  End if
Next

Ou si vous voulez la façon brute de le faire

Sub testing()
    Dim i As Long
    Dim j As Long
    Dim c As Range
    For i = 2 To 9
        With Range(Cells(i + 1, 1), Cells(9, 1))
            Set c = .Find(Cells(i, 1), LookIn:=xlValues)
                If c Is Nothing Then
                    Cells(i, 2) = Cells(i, 1)
                Else: Cells(i, 2) = "N/A"
                End If
        End With
    Next
End Sub
Raystafarian
la source
Oui, je n'ai pas besoin de doublons, mais j'ai aussi besoin de la sortie dans une nouvelle colonne, cela ne devrait pas changer les valeurs dans la même colonne
Sundhar
Ensuite, comparez la première colonne aux clés dict pour voir si elles sont .Exists Voir mise à jour.
Raystafarian
Bien sûr, je vais essayer la même chose et vous posterai le résultat
Sundhar
Bonjour, @Raystafarian ça me donne la sortie comme ça Oracle N / A java java jsp N / A javascript N / A .net N / A Services de gestion N / A Java N / A Puis je viens de retirer le not de If Not c Is Nothing Then alors ça a fonctionné
Sundhar
Oui, je suppose que je regarde maintenant la not n'est pas correct
Raystafarian