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

Tekst samenvoegen van één kolom

Status
Niet open voor verdere reacties.

vdeindenmedia

Gebruiker
Lid geworden
16 dec 2015
Berichten
6
Hallo,

Heb middels een query gegevens uit een klachtensysteem gehaald. Maar nu is de omschrijving van de klacht verdeeld over meerdere rijen/velden. Deze zouden zich in één veld moeten bevinden, met de overige informatie.

Heb het al geprobeerd middels de tekst samenvoegen formule, maar het betreft een behoorlijk groot excel bestand.

Iemand een idee middels welke formule ik dit op zou kunnen lossen?

Bedankt alsvast!

PS. Heb even een voorbeeld bijgevoegd, dat maakt het wat duidelijker wat ik hiermee bedoel.

Bekijk bijlage tekst samenvoegen.xlsx
 
Dacht heel even aan simpele & formule, echter wordt een zeer lastige.
Waarde in F7 is neem ik aan een tikfoutje en moet ook 0 zijn?
 
Bert,

welkom Helpmij.nl!

Hoe ziet je klachten systeem er uit? Staat daar wel alles op één regel?
Hoe ziet je query er uit en waar naartoe worden de resultaten van de query geschreven?
 
Bert,

welkom Helpmij.nl!

Hoe ziet je klachten systeem er uit? Staat daar wel alles op één regel?
Hoe ziet je query er uit en waar naartoe worden de resultaten van de query geschreven?

Daar staat dus ook alles op verschillende regels, dat is juist het probleem...
 
Met VBA een eitje:

Code:
Sub M_snb()
   sn = Sheet1.Cells(3, 1).CurrentRegion
   
   With CreateObject("scripting.dictionary")
       For j = 2 To UBound(sn)
           If .exists(sn(j, 1)) Then
              sp = .Item(sn(j, 1))
              sp(2) = sp(2) & sn(j, 2)
           Else
              sp = Application.Index(sn, j)
           End If
           .Item(sn(j, 1)) = sp
       Next
       
       Sheet2.Cells(1).Resize(.Count, UBound(sn, 2)) = Application.Index(.items, 0, 0)
    End With
End Sub
 
Met VBA een eitje:

Code:
Sub M_snb()
   sn = Sheet1.Cells(3, 1).CurrentRegion
   
   With CreateObject("scripting.dictionary")
       For j = 2 To UBound(sn)
           If .exists(sn(j, 1)) Then
              sp = .Item(sn(j, 1))
              sp(2) = sp(2) & sn(j, 2)
           Else
              sp = Application.Index(sn, j)
           End If
           .Item(sn(j, 1)) = sp
       Next
       
       Sheet2.Cells(1).Resize(.Count, UBound(sn, 2)) = Application.Index(.items, 0, 0)
    End With
End Sub

Dankjewel voor je reactie. Heb alleen 0 ervaring met VBA dus heb ook geen idee wat ik in de VBA code zelf nog moet veranderen?
 
Hoi,
In de code van Snb hoef je niets te veranderen behalve Sheet1 en Sheet2 veranderen in uw werkbladnamen zoals bv Sheet1 is bij jou Blad1 of data etc
Ik heb de code van Snb eventjes getest,omdat ik diezelf leuk vond ,hierbij vbtje (met de code van Snb), mischien is het dan duidelijker
Zie resultaat op blad 2
@Snb, leuke code:thumb:, die neem ik mee, heb een code die hetzelfde doet maar die is dubbel zolang:o
groet
 

Bijlagen

De code loopt vlekkelings in het bestand dat je plaatste.
Iets veranderen is dan niet verstandig.
 
De code werkt inderdaad. Alleen krijg ik nog wel een foutmelding. Fout 13 tijdens uitvoering: Typen komen niet met elkaar overeen.

En verwijst naar het stukje code: Sheet2.Cells(1).Resize(.Count, UBound(sn, 2)) = Application.Index(.items, 0, 0)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan