• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA script vergelijken

Status
Niet open voor verdere reacties.
Met Vba.
Code:
Sub hsv()
Dim sv, arr, i, ii, hs
sv = Sheets("namen").Range("a4:a8")
arr = Sheets("act").Range("a3:b5")
hs = Split(Join([transpose(row(1:5))]))
  For i = 1 To UBound(sv)
     For ii = 1 To UBound(arr)
        If arr(ii, 1) = sv(i, 1) And arr(ii, 2) = [info!b1] Then hs = Filter(hs, i, 0)
     Next ii
  Next i
 Sheets("info").Cells(1, 10).Resize(UBound(hs) + 1) = Application.Transpose(Application.Index(sv, hs, 0))
End Sub

Of:
Code:
Sub hsv()
Dim sv, arr, i, ii, hs
sv = Sheets("namen").Range("a4:a8")
arr = Sheets("act").Range("a3:b5")
hs = Split(Join(Application.Transpose(sv)))
 For i = 1 To UBound(sv)
    For ii = 1 To UBound(arr)
     If arr(ii, 1) = sv(i, 1) And arr(ii, 2) = [info!b1] Then hs = Filter(hs, arr(ii, 1), 0)
    Next ii
 Next i
Sheets("info").Cells(1, 10).Resize(UBound(hs) + 1) = Application.Transpose(hs)
End Sub
 
Laatst bewerkt:
Als code in de bladmodule van het blad 'info'

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Target.Address = "$B$1" Then Exit Sub
    ar = Sheets("Namen").Cells(3, 1).CurrentRegion
    ar1 = Sheets("act").Cells(2, 1).CurrentRegion
    For j = 2 To UBound(ar)
      For jj = 2 To UBound(ar1)
        If LCase(ar(j, 1)) = LCase(ar1(jj, 1)) And ar1(jj, 2) = Target.Value Then Exit For
      Next jj
      If jj > UBound(ar1) Then c00 = c00 & "|" & ar(j, 1)
    Next j
    Cells(5, 1).Resize(UBound(ar)).ClearContents
    ar3 = Split(Mid(c00, 2), "|")
    Cells(5, 1).Resize(UBound(ar3) + 1) = Application.Transpose(ar3)
End Sub
 
VenA

werkt super alleen nog kort vraagje
ik wil het laten uitvoeren na drukken op knop
heb dit in knop geplakt maar dat werkt niet, graag nog even u hulp
 
De code in #4 is gemaakt voor een druk op de knop.
 
De bekende lengte!
 
code in #4 had ik al getest en die klopt niet
personen in act met juiste datum worden toch getoond na vergelijk
 
Wil ik wel eens zien aan de hand van je voorbeeldbestand.
 
Joop <> joop

Verander....
Code:
If arr(ii, 1) = sv(i, 1) And arr(ii, 2) = [info!b1] Then hs = Filter(hs, arr(ii, 1), 0)
...in.
Code:
If LCase(arr(ii, 1)) = LCase(sv(i, 1)) And arr(ii, 2) = [info!b1] Then hs = Filter(hs, sv(i, 1), 0)

de gehele aangepaste code.
Code:
Sub beschikbaar()
Dim sv, arr, i, ii, hs
sv = Sheets("namen").Range("a4:a8")
arr = Sheets("act").Range("a3:b5")
hs = Split(Join(Application.Transpose(sv)))
 For i = 1 To UBound(sv)
    For ii = 1 To UBound(arr)
     If LCase(arr(ii, 1)) = LCase(sv(i, 1)) And arr(ii, 2) = [info!b1] Then hs = Filter(hs, sv(i, 1), 0)
    Next ii
 Next i
 With Sheets("info").Cells(1, 10)
 .CurrentRegion.ClearContents
 .Resize(UBound(hs) + 1) = Application.Transpose(hs)
 End With
End Sub
 
Laatst bewerkt:
Was ook hier te vinden.

Code:
 If LCase(ar(j, 1)) = LCase(ar1(jj, 1)) And ar1(jj, 2) = Target.Value Then Exit For
 
Dan moet je wel weten dat je arr(ii,1) moet veranderen in sv( i,1).
 
het script werkt in het voorbeeld doch ik wou het ook in origineel verwerken en dan krijg ik volgende foutmelding bij laatste regel "sheets ...."

fout 13.png
 
Code:
if ubound(hs) > -1 then .Resize(UBound(hs) + 1) = Application.Transpose(hs)
 
Dit.....
Code:
[COLOR=#ff0000]if ubound(hs) > -1 then[/COLOR]

.......voor!
Code:
.Resize(UBound(hs) + 1) = Application.Transpose(hs)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan