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

Waarden uit cellen samenvoegen d.m.v. knippen een plakken

Status
Niet open voor verdere reacties.

KeBr

Gebruiker
Lid geworden
25 apr 2016
Berichten
161
Ik heb een macro gemaakt waarbij de waarden uit een aantal onder elkaar liggende cellen worden samengevoegd in een cel. Dit gebeurt d.m.v. knippen en plakken, in de macro heb ik telkens een komma met spatie opgenomen als scheiding.
Nu werkt deze macro in zoverre dat telkens dezelfde gegevens worden samengevoegd.
Ik zou graag een optie hebben om na een selectie van hetgeen samengevoegd moet worden de macro dan te starten, de plaats waar de samengevoegde gegevens moeten komen te staan is telkens 2 kolommen naar recht en een rij boven hetgeen samengevoegd gaat worden,
In de bijlage hetgeen wat ik bedoel.
 

Bijlagen

  • teksten combineren.xlsm
    15,7 KB · Weergaven: 46
Welke versie van Office gebruik je?
Als dat Office 2016 is kan je de functie TEKST.COMBINEREN er voor gebruiken.
 
Laatst bewerkt:
Code:
Sub hsv()
 Range("k12") = Join(Application.Transpose(Selection), ", ")
End Sub
 
bedankt voor je reactie,
Ik gebruik Excel 2016. met TEKST.COMBINEREN krijg een fout melding, #WAARDE

Ik zou ook graag een soort macro hebben omdat ik dit enkele honderden keren moet uitvoeren waarbij het aantal te combineren regels telkens anders. Vandaar ook mijn vraag of het mogelijk is na selectie van de gegevens een macro te starten.

alvast bedankt voor reacties
 
Beste HSV, moet ik de code dan voor mijn eigen macro plaatsen?
Ik ben helaas nog niet zo gevorderd in VBA.
toch bedankt.
 
Selecteer de cellen en draai de macro.
In cel K12 komt het resultaat.
 
Die TEKST.COMBINEREN werkt prima. Plaats eens een voorbeeld van hoe je die hebt gebruikt waar je dan #WAARDE uit krijgt.

Zo zou het moeten zijn in K8 van je voorbeeld document:
=TEKST.COMBINEREN(", ";WAAR;I9:I16)
 
Laatst bewerkt:
die van Harry werkt bij mij niet. misschien heb je hier iets aan:
Code:
Sub combineren2()
For Each i In Selection
    If i <> "" Then t = t & ", " & i
Next
If t <> "" Then t = Mid(t, 3)
Selection(0, 3) = t
End Sub
 
Doe je vast iets verkeerd @Sylvester-ponte
 
Zet deze procedure in een module en hang er een toetscombinatie aan...
Code:
Sub VoegSamen()

    With Selection
        If .Cells(1).Row = 1 Then Exit Sub
        .Cells(1).Offset(-1, 2).Value = Join(Application.Transpose(.Value), ", ")
    End With

End Sub
Werkt overal in je sheet...
 
Beste Harry en sylvester-ponte,

Bedankt voor jullie snelle reactie's beide zijn voor mij goed bruikbaar.
 
Ook als je maar een cel selecteert.
Code:
Sub hsv()
if selection.count > 1 then
 Range("k12") = Join(Application.Transpose(Selection), ", ")
else
 range("K12") = activecell.value
end if
 
Wat een programmeer geweld hier.:d

Code:
Sub VenA()
For Each ar In Columns(9).SpecialCells(2).Areas
  For j = 1 To ar.Rows.Count
    c00 = c00 & "," & ar(j, 1)
  Next j
  ar.Offset(, 2).Resize(1) = Mid(c00, 2)
  c00 = ""
Next ar
End Sub
 
Code:
Sub zoveel_hsv()
Dim ar as range
 For Each ar In Columns(9).SpecialCells(2).Areas
   If ar.Count > 1 Then
      ar.Cells(1).Offset(, 2) = Join(Application.Transpose(ar), ", ") & ", "
    Else
      ar.Cells(1).Offset(, 2) = ar
    End If
 Next ar
End Sub
 
Volgens mij staat er een file op de weg naar Rome :p
 
Ik wilde ook nog een duit in het zakje doen na HSV's optie om ook slechts 1 cel te kunnen selecteren...
Code:
Sub VoegSamen()

    With Selection
        If .Cells(1).Row = 1 Then Exit Sub
        .Cells(1).Offset(-1, 2).Value = IIf(IsArray(.Cells), Join(Application.Transpose(.Value), ", "), .Value)
    End With

End Sub
En dat via een simpele IIF uitvraging. Maarrrrrr.... Als alleen de .Value (het "false" gedeelte) moet worden gegeven als resultaat, krijg ik een Runtime Error 13 (type mismatch). Weet iemand soms waarom die fout wordt gegenereerd? Zonder de IIF en alleen maar .Value achter de "=" werkt het wel. Maar in de hele if-structuur dus niet. Vreemd vreemd vreemd... Het "true" gedeelte heeft nergens last van en werkt gewoon.

Ik wil dit draadje niet kapen, maar het was in mijn ogen op zich wel een reactie op de vraag, dus misschien dat 1 van de VBA'ers dit weet?
 
Laatst bewerkt:
@Ginger,

Zowel de true- als falsepart wordt gecontroleerd.
Vandaar de foutmelding.
Ik had die variant ook geprobeerd. :d
 
Zowel de true- als falsepart wordt gecontroleerd.

Wowwwwww.... No Way!!! Da's dus een héle "dure" functie om te gebruiken. Ik dacht altijd dat die na de TRUE wel zou stoppen.
Weer wat geleerd. Véél dank voor dit antwoord!

[EDIT] Hmmmm... maar bij alleen het True gedeelte werkt het wel, dus zou je zeggen dat die inderdaad stopt na het True gedeelte. Vreemd hoor dat niet alleen de vergelijking de keuze is voor True of False...
 
Laatst bewerkt:
@Ginger, het stopt niet na True, het zit m in de Join, die wil een Array en krijgt iets anders bij 1 cel
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan