• 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.

Blad vergelijken en resultaten plaatsen op nieuw blad.

Status
Niet open voor verdere reacties.

HarryBee001

Gebruiker
Lid geworden
13 feb 2012
Berichten
5
Experts,

Misschien dat u mij kan helpen. Het volgende probleem zou ik graag willen oplossen.

Ik heb een excel werkblad met 1 kolom waarin alleen ongeveer 100 telefoonnummers staan (afdeling). (A)

Ik heb ook een excel werkblad waarin ongeveer 1000 telefoonnummers staan, maar daarbij staan alle persoonsgegevens en verbruikskosten (hele bedrijf). (B)

De bedoeling is dat door een vergelijking van blad A met blad B, de overeenkomende telefoonnummers met alle persoonsgegevens en kosten, vanuit blad B, in een nieuw, leeg werkblad worden geplaatst.

Weet iemand of dit te realiseren is? En zo ja, mij wegwijs te maken hoe ik dit zou kunnen doen?

Alvast heel veel dank.

Groet, Harry
 
Als dit het niet is, dan graag een voorbeeldje aub

Code:
=ALS.FOUT(VERT.ZOEKEN("cel met tel.nr die je zoekt";"in welke tabel je zoekt";"welke kolom";ONWAAR);"waarde wanneer tel.nr niet gevonden wordt")
 
Zonder voorbeeldbestandje. Heb waar nodig een woordje uitleg geplaatst zodat je het zelf kan aanpassen.
Code:
Sub tst()
sn = Sheets("Blad2").Range("A1:F4") 'Bereik met alle gegevens op Blad B
For Each cl In Sheets("Blad1").Range("A1:A10") 'Doorloop alle telnrs op Blad A
    For i = 1 To UBound(sn)
        If InStr(1, cl, sn(i, 1), 1) <> 0 Then
            Sheets("Blad3").Range("A65536").End(xlUp).Offset(1) = sn(i, 1)
            For x = 1 To 5 'Aantal extra kolommen op Blad B (zonder kolom A)
                Sheets("Blad3").Range("A65536").End(xlUp).Offset(, x) = sn(i, x + 1)
            Next
        End If
    Next
Next
End Sub
 
Laatst bewerkt:
Dank je wel Spaarie. Dit werk gedeeltelijk.

Groet Harry
 
Laatst bewerkt door een moderator:
Rudi,

De code werkt wel, maar geeft niet precies de gewenste gegevens. Ik sluit er een bestandje bij. Misschien dat je me daarmee verder kan helpen. Dank je wel voor je tijd.
Groeten Harry

Zonder voorbeeldbestandje. Heb waar nodig een woordje uitleg geplaatst zodat je het zelf kan aanpassen.
Code:
Sub tst()
sn = Sheets("Blad2").Range("A1:F4") 'Bereik met alle gegevens op Blad B
For Each cl In Sheets("Blad1").Range("A1:A10") 'Doorloop alle telnrs op Blad A
    For i = 1 To UBound(sn)
        If InStr(1, cl, sn(i, 1), 1) <> 0 Then
            Sheets("Blad3").Range("A65536").End(xlUp).Offset(1) = sn(i, 1)
            For x = 1 To 5 'Aantal extra kolommen op Blad B (zonder kolom A)
                Sheets("Blad3").Range("A65536").End(xlUp).Offset(, x) = sn(i, x + 1)
            Next
        End If
    Next
Next
End Sub
 

Bijlagen

Code:
Sub tst()
With Sheets("Blad3")
    .Cells.ClearContents
    .Range("A1").Resize(, 9) = Split("Naam|Gebouw|Locatie|ID|GSM nummer|Abonnement|Verbruik|BTW|Soort", "|")
End With
sn = Sheets("Blad2").Range("A2:I" & Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).Row) 'Bereik met alle gegevens op Blad B
For Each cl In Sheets("Blad1").Range("A2:A" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row) 'Doorloop alle telnrs op Blad A
    For i = 1 To UBound(sn)
        If InStr(1, cl, sn(i, 5), 1) <> 0 Then
            Sheets("Blad3").Range("A65536").End(xlUp).Offset(1) = sn(i, 1)
            For x = 1 To 8 'Aantal extra kolommen op Blad B (zonder kolom 1)
                Sheets("Blad3").Range("A65536").End(xlUp).Offset(, x) = sn(i, x + 1)
            Next
        End If
    Next
Next
End Sub

De bereiken op Blad1 en Blad2 kunnen nog variabel gemaakt worden in de macro zodat automatisch het volledige bereik op beide bladen berekend wordt en niet steeds handmatig moet bijgesteld worden.
 
Laatst bewerkt:
Rudi sorry voor de late reactie maar alsnog mijn dank.
Groet, Harry

Code:
Sub tst()
With Sheets("Blad3")
    .Cells.ClearContents
    .Range("A1").Resize(, 9) = Split("Naam|Gebouw|Locatie|ID|GSM nummer|Abonnement|Verbruik|BTW|Soort", "|")
End With
sn = Sheets("Blad2").Range("A2:I" & Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).Row) 'Bereik met alle gegevens op Blad B
For Each cl In Sheets("Blad1").Range("A2:A" & Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Row) 'Doorloop alle telnrs op Blad A
    For i = 1 To UBound(sn)
        If InStr(1, cl, sn(i, 5), 1) <> 0 Then
            Sheets("Blad3").Range("A65536").End(xlUp).Offset(1) = sn(i, 1)
            For x = 1 To 8 'Aantal extra kolommen op Blad B (zonder kolom 1)
                Sheets("Blad3").Range("A65536").End(xlUp).Offset(, x) = sn(i, x + 1)
            Next
        End If
    Next
Next
End Sub

De bereiken op Blad1 en Blad2 kunnen nog variabel gemaakt worden in de macro zodat automatisch het volledige bereik op beide bladen berekend wordt en niet steeds handmatig moet bijgesteld worden.
 
Zou ik deze formule / macro ook kunnen toepassen op een lijst met barcodes en patientnummers?
Ik wil namelijk o.b.v. een opgegeven selectie bijv. barcodes willen laten controleren in het volledige bestand met diverse gegevens.
Vervolgens de gevonden resultaten laten plaatsen in een nieuw excelsheet.
Hopelijk is dit een beetje duidelijk.
 
Beste Gopje,
Welkom op dit forum.

Duidelijk is wel dat je nog niet de regels kent van dit forum.
Het is niet de bedoeling om in iemand anders zijn topic vragen te gaan stellen en helemaal niet als deze al 4 maanden gesloten is.

Je mag een nieuwe vraag of topic openen met daar in je vraag, evt. voorbeeld bestand en evt. de code die je wilt gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan