Zoeken naar en retourneren van waarde o.b.v. combinatie van 2 ranges

Status
Niet open voor verdere reacties.

MLJE1980

Gebruiker
Lid geworden
18 mei 2017
Berichten
18
Goedemiddag,

Ik hoop dat jullie mij kunnen helpen met het volgende:
Bijgevoegd een vba script dat ik gebruik om te zoeken in andere sheets naar een bepaalde waarde en op basis hiervan gegevens retourneert.
Nu is mij gevraagd of ik het script ook kan laten zoeken naar een combinatie van 2 waardes, dus het script moet zoeken naar Type en als de 1e cel rechts daarvan dezelfde waarde heeft als Pot dan de gevraagde waardes worden geretourneerd.
Hoe ik de vba nu heb aangepast zoekt hij wel alleen kijkt het script of beide waardes in de sheet staan en niet de combinatie van. Hoe kan ik dit erin verwerken? (als het mogelijk is)

Code:
Sub Zoek_In_Alle_Sheets()
    Dim sht     As Worksheet
    Dim c       As Long
    Dim Rng     As Range
    Dim Rng2    As Range
    Dim Type    As String
    Dim locatie As String
    Dim afdeling  As String
    Dim rij     As String
    Dim rijnr   As Integer
    Dim Pot As String
        
    Type = Sheets("Invulblad").Range("B5")
    Pot = Sheets("Invulblad").Range("C5")
    
    Application.ScreenUpdating = False
    
Workbooks(2).Activate
    For Each sht In Worksheets
        If sht.Name <> "Invulblad" And sht.Name <> "ID" Then
            With sht.UsedRange
                Set Rng = .Find(What:=Type)
                Set Rng2 = .Find(What:=Pot)
                If Not Rng Is Nothing And Not Rng2 Is Nothing Then
                     c = Rng.Column
                    locatie = Rng.Offset(0, -1)
                    afdeling = sht.Name
                    Pot = Rng.Offset(0, 1)
                    rij = .Cells(1, c - 1)
                    rijnr = Right(rij, 2)
                    Workbooks(1).Activate
                    With Sheets("Invulblad")
                        .Cells(6 + rijnr, 5) = locatie
                        .Cells(6 + rijnr, 6) = afdeling
                        .Cells(6 + rijnr, 7) = Potm
                    End With
                    Workbooks(2).Activate
                   Else
                MsgBox "Niks gevonden"
                End If
                 
            End With
        End If
    Next sht
    Application.ScreenUpdating = True
    Workbooks(1).Activate
End Sub

Alvast bedankt,

Michael
 
Laatst bewerkt:
In plaats van
Code:
Set Rng2 = .Find(What:=Pot)
If Not Rng Is Nothing And Not Rng2 Is Nothing Then
dit:
Code:
If Not Rng Is Nothing And Rng.Offset(0,1) = Pot Then
 
Hallo AHulpje,

Bedankt voor je antwoord.

Alleen, wanneer ik de wijziging doorvoer krijg ik de melding Fout 91 tijdens uitvoering:

Objectvariabele of Blokvariabele With is niet ingesteld

Groeten,

Michael
 
Waarom heb je soortgelijke gegevens in verschillende werkbladen staan ?

Verdiep je in Arrays als je met VBA wil werken:

Code:
sn= Sheets("Invulblad").Range("B5:C5")

Ook jouw Excel bevat 'advanced filter'. Gebruik wat Excel bevat.
 
Laatst bewerkt:
Vervang
Code:
[COLOR=#333333]If Not Rng Is Nothing And Rng.Offset(0,1) = Pot Then[/COLOR]

door
Code:
[COLOR=#333333]If Not Rng Is Nothing Then
[/COLOR]    If [COLOR=#333333]Rng.Offset(0,1) = Pot
[/COLOR]        ...
        ...
    End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan