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

data samenvoegen in excelop basis van 1 celinhoud

Status
Niet open voor verdere reacties.

trapson

Nieuwe gebruiker
Lid geworden
14 jan 2016
Berichten
4
Ik heb 2 verschillende excel bestanden met in het ene bestand artikelnummers, omschrijving en prijzen en in het andere bestand artikelnummers en alternatieve bestelnummers.
Deze zijn niet per sé in dezelfde volgorde, er ontbreekt nog wel eens een omnummering.

Nu wilde ik deze rijen samenvoegen op basis van het ene artikelnummer wat in beide bestanden voorkomt. Ik heb geprobeerd te zoeken maar weer niet hoe deze functie zou heten.

Ik heb een voorbeeld bestand is bijgevoegd. werkblad 1 en 2 moeten samengevoegd worden zoals in werkblad 3 zichtbaar is

Bekijk bijlage voorbeeldje.xls

Alvast erg bedankt !
 
En welk bestand is hierbij leidend? Want ik begrijp dat in één van de 2 tabbladen alle artikelnummers staan, en in de andere ontbreken er een paar. Klopt dat?
 
Het eerste tabblad is dan leidend want dat is het originele bestand. Het 2e tabblad is de aanvulling welke bij de artikelnummers van het 1e tabblad gevoegd dienen te worden.
 
Maak even een vierde tabblad aan om het te controleren (daar wordt het naar toegeschreven in de code).
Code:
Sub hsv()
Dim sn, sn2, i As Long, ii As Long, y As Long
sn = Sheets(1).Cells(1).CurrentRegion.Resize(, 6)
sn2 = Sheets(2).Cells(1).CurrentRegion
For i = 1 To UBound(sn)
 For ii = 1 To UBound(sn2)
    If CStr(sn(i, 2)) = sn2(ii, 1) Then
       sn(i, 4) = sn2(ii, 1)
       sn(i, 5) = sn2(ii, 2)
       sn(i, 6) = sn2(ii, 3)
       y = y + 1
    End If
  Next ii
    If y = 0 Then
       sn(i, 4) = ""
       sn(i, 5) = ""
       sn(i, 6) = ""
    End If
   y = 0
  Next i
 Sheets(4).Cells(1).Resize(UBound(sn), 6) = sn
End Sub
 
Je zou iets kunnen doen met verticaal zoeken.
zie bijlage

Groet
Bedankt !
Ik ga eens even kijken wat er precies gebeurt met deze formule, ik heb nog nooit gebruik gemaakt van verticaal zoeken.

Maak even een vierde tabblad aan om het te controleren (daar wordt het naar toegeschreven in de code).
Deze snap ik niet helemaal, werk tot op heden alleen met formule's. Waar kan ik deze code invoeren, en kan ik ook ergens nakijken wat er precies gebeurd zodat ik ook snap wat de code doet ?
 
Ik heb de code aan een knopje gehangen voor je.
Druk daar op en kijk voor het resultaat op blad4.
 

Bijlagen

Heel erg bedankt het knopje doet inderdaad zoals ik het bedoel.
Maar kan ik dit knopje nu ook zelf aanpassen aangezien het maar een voorbeeldje was en in mijn complete bestanden iets meer kolommen en regels gebruikt worden met alle data zoals de prijzen enzovoorts.
Wil ik graag snappen wat het doet en wat ik aan het doen ben zeg maar ;)
 
Als je nog nooit eerder met Vba in aanraking bent geweest is het bijna niet te doen om het zelf aan te passen.
Druk Alt+F11 → dubbelklik aan linkerzijde in de Vb-editor op tabblad "Blad1 (Blad1)".
Hier staat de code.
 
Je kunt dit ook wel oplossen met formules als je geen ervaring hebt met VBA.
Zie blad 5 in de bijlage voor een mogelijke oplossing.

Groet
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan