• 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 in één cel

Status
Niet open voor verdere reacties.

H3ndrik

Gebruiker
Lid geworden
8 mei 2012
Berichten
30
Beste Helpers,

Ik ben op zoek naar verkorte versie van onderstaande formule

=ALS(D1=1;C1&TEKEN(10);"")&ALS(D2=1;C2&TEKEN(10);"")&ALS(D3=1;C3&TEKEN(10);"")&ALS(D4=1;C4&TEKEN(10);"")&ALS(D5=1;C5&TEKEN(10);"")&ALS(D6=1;C6&TEKEN(10);"")

Zie bijlage ter verduidelijking.

Alvast bedankt voor het meedenken.

Henk
 

Bijlagen

Met formules lijkt het mij niet mogelijk om dit veel korter te maken, daar is VBA voor nodig.

Blijft over de vraag: waarom wil je 50 rijen in 1 cel? Dit lijkt mij totaal onwerkbaar worden.
 
Beste AlexCEL,

Uiteindelijk blijven er van de 50 misschien 5 of 6 over. Deze wil ik in een cel omdat deze als een memo geëxporteerd wordt naar mijn Erp pakket.

Groet Henk
 
Daar is dan inderdaad VBA voor nodig. Zet van de gewenste cel in de eigenchappen Terugloop aan en gebruik dan deze functie die je in een Module zet:
Code:
Function Memo(Bereik As Range) As String
    Dim cl As Range
    For Each cl In Bereik
        If Cells(cl.Row, cl.Column + 1) = 1 Then
            Memo = Memo & cl.Value & vbCrLf
        End If
    Next cl
End Function

Aanroep in je document:
=Memo(C1:C6)
 
Laatst bewerkt:
@Edmoor,

Code:
dim cl as range

Code:
 If cl.offset(, 1) = 1 Then Memo = Memo & cl.Value & vbCrLf
 
Kan ook uiteraard. Ik heb iets tegen het gebruik van Offset, maar da's persoonlijk.
Wat dim cl as range betreft voel ik me betrapt :P
 
Laatst bewerkt:
Dat kan (ik vind het persoonlijk goed leesbaar), maar die 'i as long' hoort er niet in thuis. ;)

edit: je aanpassing gelezen.
 
Die was ik inderdaad vergeten weg te halen :confused:
Aangepast.
 
Laatst bewerkt:
:thumb::thumb:
 
Bedankt zover. Ziet er geweldig uit!

Is er echter nog een mogelijkheid dat hij continu berekend wordt? Het werkt nu alleen bij het verlaten van de cel. En ik wil graag dat hij aanpast op het moment dat er een 1 bijkomt of afgaat.
 
Dat kan. Zet er dan een regeltje extra in:
Code:
Function Memo(Bereik As Range) As String
    Dim cl As Range
    [COLOR="#FF0000"]Application.Volatile[/COLOR]
    For Each cl In Bereik
        If Cells(cl.Row, cl.Column + 1) = 1 Then
            Memo = Memo & cl.Value & vbCrLf
        End If
    Next cl
End Function
 
Bedankt Edmoor!

Ik ben helemaal geholpen hiermee.

Vriendelijk bedankt!

Henk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan