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

samenvoegen van excel waarden

Status
Niet open voor verdere reacties.
Dat ziet er goed uit, zeg!

Ik weet niet hoe je het hebt gedaan maar dat zoek ik nog wel uit:thumb:
 
Of zó:

Code:
Sub M_snb()
   sn = Cells(1).CurrentRegion
   
   With CreateObject("Scripting.dictionary")
      For j = 2 To UBound(sn)
        If InStr(.Item(sn(j, 2)) & ";", ";" & sn(j, 3) & ";") = 0 Then .Item(sn(j, 2)) = .Item(sn(j, 2)) & ";" & sn(j, 3)
      Next
      
      Open "G:\OF\export.csv" For Append As #1
      For j = 0 To .Count - 1
         Print #1, .Keys()(j) & vbTab & .Item(.Keys()(j))
      Next
      Close
   End With
End Sub
 
De oplossing van Peter kapt de output af als die langer is dan 32767 karakters.
Als de geconcateneerde data niet via Excel maar als .csv aan de andere applicatie aangeboden kan worden is snb's oplossing prima bruikbaar.
Maar als het perse via Excel moet worden aangeboden wordt bij het openen van snb's csv-bestand ook afgekapt als de tekst langer dan 32767 karakters telt.
Wat gebeurt er als je mijn oplossing gebruikt na het sorteren van je data?
 
@AHulpje

Je hebt volkomen gelijk.
Er even de =LENGTE( .. oplos gelaten en exact 32767 karakters.
In het laatste bestandje van de TS zijn het 149100 karakters.

@Susanthuis
Ik weet niet hoe je het hebt gedaan maar dat zoek ik nog wel uit
Doe dus geen moeite want met power query gaat het helaas fout.
 
Jouw voorbeeld uit #36 met 7455 rijen bevat slechts 20 unieke waarden in kolom B + C. Is kolom A nog van belang?
De dubbele waarden kunnen met de macro eenvoudig verwijderd worden:

Code:
Sub Verwerk()
    Dim r As Long
    Dim a As String
    Dim r3 As Long
    [COLOR=#008000]'Ontdubbelen[/COLOR]
    ActiveSheet.Range("A:C").RemoveDuplicates Columns:=Array(2, 3), Header:=xlYes
    r3 = 1
    r = 3
    a = Cells(2, 3) & ";"
    e = Cells(2, 2)
    Do While e <> vbNullString
        Do While Cells(r, 2) = e
            If Len(a & Cells(r, 3)) < 32766 Then
                a = a & Cells(r, 3) & ";"
                r = r + 1
            Else
                Sheets("Output").Cells(r3, 1) = e
                Sheets("Output").Cells(r3, 2) = a
                MsgBox "Resultaat voor " & e & " was langer dan 32767 karakters, is nu gesplitst."
                a = ""
                r3 = r3 + 1
            End If
        Loop
        Sheets("Output").Cells(r3, 1) = e
        Sheets("Output").Cells(r3, 2) = a
        r3 = r3 + 1
        e = Cells(r, 2)
        a = ""
    Loop
    MsgBox "Zie werkblad Output"
    Application.Goto Sheets("Output").Range("A1")
End Sub
 
Laatst bewerkt:
Jouw voorbeeld uit #36 met 7455 rijen bevat slechts 20 unieke waarden in kolom B + C. Is kolom A nog van belang?
De dubbele waarden kunnen met de macro eenvoudig verwijderd worden:

Code:
Sub Verwerk()
    Dim r As Long
    Dim a As String
    Dim r3 As Long
    [COLOR=#008000]'Ontdubbelen[/COLOR]
    ActiveSheet.Range("A:C").RemoveDuplicates Columns:=Array(2, 3), Header:=xlYes
    r3 = 1
    r = 3
    a = Cells(2, 3) & ";"
    e = Cells(2, 2)
    Do While e <> vbNullString
        Do While Cells(r, 2) = e
            If Len(a & Cells(r, 3)) < 32766 Then
                a = a & Cells(r, 3) & ";"
                r = r + 1
            Else
                Sheets("Output").Cells(r3, 1) = e
                Sheets("Output").Cells(r3, 2) = a
                MsgBox "Resultaat voor " & e & " was langer dan 32767 karakters, is nu gesplitst."
                a = ""
                r3 = r3 + 1
            End If
        Loop
        Sheets("Output").Cells(r3, 1) = e
        Sheets("Output").Cells(r3, 2) = a
        r3 = r3 + 1
        e = Cells(r, 2)
        a = ""
    Loop
    MsgBox "Zie werkblad Output"
    Application.Goto Sheets("Output").Range("A1")
End Sub

Wow, ik ben echt onder de indruk van ieder van jullie oplossingen! Sorry dat ik gisteren na een bepaalde tijdstip niet meer reageerde.
De query van Ahulpje werkt ineens wel (i.t.t. wat ik eerder in #38 beweerde) en wordt afgekapt op 32767 tekens. Ik vind dat niet erg want dan doe ik dat in Excel (niet ideaal maar ik heb geen andere keuze) opnieuw voor de resterende regels.
Dit geldt ook voor de oplossing van Peter. Daar wordt het ook afgekapt op 32767 tekens.
Ervan uitgaande dat de oplossing van snb alleen voor .csv bestand gebruikt kan worden, is dat voor nu niet te gebruiken. Ben het met jullie eens dat Excel niet handig is om als middel toe te passen.
Nogmaals mijn hartelijke dank voor alle moeite!:thumb:

@Hulpje: zoveel dank! Je laatste macro werkt:D!!!!!
 
Laatst bewerkt:
Ik kan me geen software-ontwikkelaar voorstellen die eisen stelt aan een importbestand (Excel), dat dat programma niet kan leveren vanwege interne beperkingen. Ben benieuwd welk programma dat is en of dat programma niet een csv-importfaciliteit heeft, waarvan jij niet op de hoogte gesteld bent.
Ik sluit niet uit dat jouw vraag op een misverstand berust.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan