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

Teken(10) informule alleen als cel gevuld is

Status
Niet open voor verdere reacties.

rickbakkenes

Gebruiker
Lid geworden
4 feb 2011
Berichten
58
Beste kenners,

Ik heb een aantal cellen gevuld met tekst naast elkaar. De ene cel is gevuld en de andere weer niet. Ik wil de waarde van al deze cellen in 1 cel krijgen met daartussen elke keer een ALT-ENTER (TEKEN(10).

Echter wil ik geen ALT-ENTER als de cel leeg is. Dus maakt de cel zo onnodig groot.

Zie bijlage voor het voorbeeld.

Ik hoop dat iemand mij kan helpen.

Alvast bedankt.

Groetjes, RickBekijk bijlage helpmij teken10.xlsx
 
Hiermee moet het probleem opgelost zijn.
Code:
=SUBSTITUEREN(TEKST.SAMENVOEGEN(A1;TEKEN(10);B1;TEKEN(10);C1;TEKEN(10);D1;TEKEN(10);E1;TEKEN(10);F1;TEKEN(10);G1;TEKEN(10));TEKEN(10);" ")
 
Beste Harry,

Hiermee vervang ik alle TEKEN(10) voor een spaties. Dat is niet wat ik wil.

Na een cel met tekst wil ik TEKEN(10) en als de cel leeg is wil ik dat niet. Anders krijg ik

Tekstveld gevuld
leeg
leeg
Tekstveld gevuld
leeg
leeg
etc
etc
etc


Dus na een cel met een bepaalde waarde wil ik een ALT-ENTER en anders niet
 
Of met een lange formule:
Code:
=A1&(ALS(B1<>"";TEKEN(10)&B1;""))&(ALS(C1<>"";TEKEN(10)&C1;""))&(ALS(D1<>"";TEKEN(10)&D1;""))&(ALS(E1<>"";TEKEN(10)&E1;""))&(ALS(F1<>"";TEKEN(10)&F1;""))&(ALS(G1<>"";TEKEN(10)&G1;""))&(ALS(H1<>"";TEKEN(10)&H1;""))&(ALS(I1<>"";TEKEN(10)&I1;""))
 
@Piet,

Daar had ik geen zin in. :p

Niels
 
@niels,
Als je dan toch met VBA werk, dan kun nog een lege regel uitsparen als de linkse of de rechtse cel leeg is :D
Code:
Private Function TEK(r As Range)
    For Each cl In r
        If cl.Value <> "" Then
          If Len(c01) > 0 Then c01 = c01 & Chr(10)
          c01 = c01 & cl.Value
        End If
    Next
    TEK = c01
End Function
 
had ik later:eek: ook gezien, zou het dan zelf zo doen:

Code:
Private Function TEK(r As Range)

    For Each cl In r
        If cl.Value <> "" Then c01 = c01 & cl.Value & Chr(10)
    Next
    TEK = Left(c01, Len(c01) - 1)
    
End Function

Niels
 
Of:
Code:
Function Tek(Rng As Range)
  Tek = Join(Filter(Evaluate("if(" & Rng.Address & "<>""""," & Rng.Address & ", ""~"")"), "~", False), vbLf)
End Function
 
Gelukt.

Er is nog 1 dingetje. Hoe kan ik ervoor zorgen dat elke ALT ENTER een getalnotatie is? Ik denk dat het tekst wordt en dat is niet juist.

Is er nog een toevoeging aan de formule die ervoor zorgt dat het een "getal" blijft?

Alvast bedankt.

Groet, Rick
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan