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

Twee rijen samenvoegen tot één met kommascheiding

Status
Niet open voor verdere reacties.

Dingina

Gebruiker
Lid geworden
8 jul 2011
Berichten
18
Graag zou ik de cellen van twee rijen willen samenvoegen tot één rij met cellen.
Bijvoorbeeld rij A1:Z1 samenvoegen met rij A2:Z2.
En wel zo dat de inhoud van A1 en A2 gezamenlijk terechtkomt in cel A1 of A2, met een kommascheiding tussen de originele inhoud.
Hetzelfde geldt dan voor B1 en B2, C1 en C2 etc.
Het mooiste zou zijn als twee complete rijen via de zijkant van het excelblad zijn geselecteerd, dat dan een macro deze per celcombinatie samenvoegt.

Wie zou mij kunnen helpen met deze puzzel?

Bedankt alvast,

Jelle Woudstra
 
Code:
Sub M_snb()
    [A1:Z2] = [if(row(A1:Z2)=1,A1:Z1 & ", " & A2:Z2,"")]
End Sub
 
Bedankt voor je snel antwoord.
De formule werkt voor de aangegeven vaste rijen.
Maar hoe kan de formule werken voor twee willekeurige rijen, die overigens wel opvolgend bij elkaar staan.
Dus bijvoorbeeld rij combinatie A67:Z68 en voor willekeurig andere "koppels" van rijen (A73:Z74, etc)?
Nu al bedankt voor je attente hulp!

Jelle Woudstra
 
Code:
Sub M_snb()
    selection.name="snb_1"
    [snb_1] = [if(row(snb_1)=1,offset(snb_1,,,1)& ", " & offset(snb_1,1,,1),"")]
End Sub
 
Helaas krijg ik de macro niet werkend.
In iedere cel verschijnt de macro formule zonder dat er een bewerking is.
Als bijvoorbeeld de afzonderlijke cellen van rij A3:Z3 moet worden samengevoegd met rij A4:Z4, dan kan ik een lege rij invoegen onder rij 4 (dus rij 5)
De macro zou dan de row above en de row above +1 moeten samenvoegen per cel, en de inhoud (met komma scheiding wegzetten in de betreffende cel van rij 5.
Ten tweede zou het zeer handig zijn als de macro wordt geactiveerd wanneer de cursor in bijvoorbeeld cel A5 staat, dat dan de gehele rij per cel wordt gevuld met de samengevoegde inhouden van de twee bovenliggende rijen.
Het lijkt mij een moeilijke vraag, maar misschien heb je er een antwoord op?
Zou je er nog eens naar willen kijken?

Bedankt alvast,

Jelle Woudstra
 
Het klinkt meer als een opdracht: wat is je budget ?
 
snb
Wil je de code een beetje uitleggen?
[snb_1] = [if(row(snb_1)=1,offset(snb_1,,,1)& ", " & offset(snb_1,1,,1),"")]
Die rode 1 geeft op de een of andere manier het rijnummer aan.
Daar door werkt het alleen met de eerste 2 rijen.
Als ik het op rij 12 probeer moet daar 12 komen.
Maar als ik daar een variabele R neer zet werkt het niet. ( bv: R=Selection(1,1).Row )

groet sylvester

ps ik ben dyslectisch :o let niet te veel op de taalfouten e.d., deze keer heb ik de tekst laten nakijken door iemand anders.
 
@Sylvester,

Vba werkt niet tussen haken.
De functie van @snb moet je zien als een werkbladfunctie.

Je kan een variabele in een cel zetten, of een naam geven en daarnaar verwijzen in de evaluatie.
 
Ik zal maar niet vertellen waar ik allemaal last van heb ...;)

Je kunt tussen rechte haken (evaluate) geen variabelen zetten/gebruiken.
De code uitleggen kost 2 a4-tjes. Maar hij werkt in deze vorm alleen met de eerste 2 rijen.
 
Harry gaf de oplossing voor elke regel:
Code:
Sub M_snb()
    ActiveWorkbook.Names.Add Name:="testrij", RefersToR1C1:="=" & Selection(1, 1).Row
    Selection.Name = "snb_1"
    [snb_1] = [if(row(snb_1)=testrij,offset(snb_1,,,1)& ", " & offset(snb_1,1,,1),"")]
End Sub
Snb, kun je aangeven hoe je de ééntjes moet plaatsen voor de juiste copy of waar dat staat?
groet sylvester
 
Laatst bewerkt:
En van wie komt die wijsheid denk je ? @snb ;)
 
snb en Harry bedankt voor de informatie:thumb:
Ik hoop dat Jelle Woudstra er ook wat aan heeft.
groet sylvester
 
Dank voor jullie serieuze aanpak.
Echter, helaas krijg ik jullie suggesties niet aan de praat
Ik heb nu de volgende macro gemaakt, die in principe goed werkt, maar alleen voor één Row8
Hoe kan ik deze macro nu laten werken voor de row waarop de cursor staat?

Toelichting bij onderstaande macro:
insert row, voeg de cel boven de rij en daar weer boven samen (R[-1] en R[-2]), en kopieer deze handeling over alle cellen van de row van A tot H

Code:
Sub Macro15()
'
' Macro15 Macro
'
' Sneltoets: Option+Cmd+z
'
    Rows("8:8").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A8").Select
    ActiveCell.FormulaR1C1 = "=R[-2]C&"", ""&R[-1]C"
    Range("A8").Select
    Selection.AutoFill Destination:=Range("A8:H8"), Type:=xlFillDefault
    Range("A8:H8").Select
End Sub

Misschien is dit uitgangspunt gemakkelijker te gebruiken.
Ik zie uit naar jullie antwoord!

Bedankt alvast

Jelle
 
Laatst bewerkt door een moderator:
@Dingina snb maakte een grapje, tenminste daar ga ik van uit omdat ook hij weet hoe het werkt op Helpmij. Het is niet de bedoeling op Helpmij dat er geld geboden wordt voor hulp.
 
Geweldig! De macro werkt.
De toegepaste uitvoering van Wher is prima.
Mijn kennis was kennelijk toch te beperkt om de macro van snb om te zetten voor de toepassing.

Bedankt allemaal, voor jullie hulp!

Jelle Woudstra

P.S. Mijn suggestie dat het mij € 50 waard was, is inderdaad bedoeld om aan te geven dat ik erg blij zou zijn (en nu ben) met de oplossing.
 
Als in een cel meer dan 10 woorden tekst staat, dan laat deze zich niet combineren met de andere cel, waarin eveneens een aantal woorden tekst staan.
In de gecombineerde cel verschijnt de foutmelding: #WAARDE!
Weet iemand van jullie wat hiervoor de limitatie is?

Jelle Woudstra
 
Misschien een overschrijding van meer dan 255 tekens ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan