• 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 onder voorwaarden

Status
Niet open voor verdere reacties.

styxeldiablo

Gebruiker
Lid geworden
17 jul 2016
Berichten
49
Hallo experts!

Ik heb met bloed zweet en tranen weten gegevens uit een API weten te halen in excel en deze weer te geven in tabellen...
Het betreft productgegevens voor in mijn webshop welke ik uiteindelijk naar een csv bestand wil omzetten zodat ik deze kan importeren...

Bij het ophalen van de gegevens met de API kon ik het enkel voor elkaar krijgen de productfoto's te exporteren zonder dat deze als extra kolommen bij de producten terecht kwamen.
Middels onderstaand voorbeeld is dit misschien duidelijker om aan te geven. In het voorbeeld zijn de productcodes als letters en de foto's als cijfers

A 1
A 2
A 3
A 4
B 5
B 6
B 7
C 8
C 9
C 10
C 11
C 12
C 13

Niet elk product heeft dus standaard hetzelfde aantal foto's, de manier waarop ik ze graag zou willen (denk dat dit het makkelijkste kan met een macro) is als volgt:

A 1|2|3|4
B 5|6|7
C 8|9|10|11|12|13

Hopelijk kan iemand me hierbij helpen, ik heb geprobeerd te functie tekst.samenvoegen te gebruiken en dan het | symbool ertussen in te voegen alleen kwam dit niet helemaal goed door het rechtstreeks als formule te plaatsen...

Alvast bedankt voor de moeite :)

Groetjes,

Robert
 
Niet dat ik nu nog veel tijd heb vanavond, maar misschien belangrijk om te weten voor anderen.

Staan de letters in kolom A en de cijfers in kolom B?
Of alles in kolom A?
 
Dat gaat beter als je een voorbeeld documentje plaatst.
 
Als het in twee kolommen staat.
Misschien ben ik te voorbarig, maar ik kap ermee voor vanavond.
Code:
Sub hsv()
Dim sv, i As Long
sv = Cells(1).CurrentRegion
With CreateObject("scripting.dictionary")
  For i = 1 To UBound(sv)
   .Item(sv(i, 1)) = .Item(sv(i, 1)) & "|" & sv(i, 2)
  Next i
 Cells(1, 5).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
End With
End Sub

Als je een vrij nieuw versie hebt van Excel is er ook de formule =Textjoin(
Google er maar eens op.
 
Laatst bewerkt:
Ik kan alsnog een voorbeeld documentje plaatsen als dan wenselijk is, de oplossing van Harry (HSV) werkt echter bijna perfect. De data staat inderdaad in 2 kolommen. Het enige wat ik graag zou willen is dat er aan het begin van de samenvoegingen dan geen | symbool staat, alleen de eerste zou weg moeten verder werkt de macro perfect :)
 
Formule voor Excel 365:
Code:
=TEKST.COMBINEREN("|";WAAR;ALS($A$1:$A$13="A";$B$1:$B$13;""))
I.p.v. de "A" kan er ook een verwijzing komen natuurlijk...
 
Even vanaf mobieltje.

Code:
Sub hsv()
Dim sv, i As Long
sv = Cells(1).CurrentRegion
With CreateObject("scripting.dictionary")
  For i = 1 To UBound(sv)
   .Item(sv(i, 1)) = .Item(sv(i, 1)) & iif(.item(sv(i,1))="","","|") & sv(i, 2)
  Next i
 Cells(1, 5).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan