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

Lege cellen overslaan in Function formule (vba)

Status
Niet open voor verdere reacties.

Tweety1

Gebruiker
Lid geworden
6 mrt 2013
Berichten
637
Ik heb functie formule die een range bevat en tussen de cellen een "/" plaats.
Nu wil dat de lege regels aan het eind worden overgeslagen. Ik weet alleen niet hoe ik dat moet?
Ik heb het al met SUBSTITUEREN (//) geprobeerd alleen blijft er achteraan nog 1 staan.

De formule staat in B4.

mvg
Kasper
 

Bijlagen

zo?

Code:
Function KLASSEN(RNG As Range, Delimiter As String, Optional horizontal As Boolean) As String
    Tekst = Join(IIf(horizontal, Application.Index(RNG.Value, 1, 0), Application.Transpose(RNG)), Delimiter)
    KLASSEN = Left(Tekst, InStr(Tekst, "//") - 1)
End Function
 
in de veronderstelling dat er in ieder niet lege cel minstens een "-" staat
Code:
Function KLASSEN(RNG As Range, Delimiter As String, Optional horizontal As Boolean) As String
   Application.Volatile
   KLASSEN = Replace(Join(Filter(IIf(horizontal, Application.Index(RNG.Value, 1, 0), Application.Transpose(RNG)), "-", 1), Delimiter), Delimiter & Delimiter, Delimiter)
End Function
 
Alle twee de oplossingen werken goed.
Wat ik allen ben vergeten te melden is dat er eventueel een filter aangezet kan worden alleen verandert de uitkomst niet.
In de cel zou dan alleen de gefilterde waardes getoond moeten worden.
 
Waar wil je op filteren dan? Mij lijken alle uitkomsten hetzelfde.

Code:
Function VenA(r As Range, s As String)
  For Each cl In r
    If cl.RowHeight > 0 And cl.Value <> "" Then c00 = c00 & s & cl.Value
  Next cl
  VenA = Mid(c00, 2)
End Function
 
Thanks VenA het werkt.

Filter wat gebruikt kan worden is het filter van regel 6.
 
Volgens mij kan je alleen filteren op kolommen en de inhoud per kolom lijkt mij identiek. Maar mooi dat het werkt.
 
mits het er wat meer zijn dan 200 (liever 10.000) kan het ook zonder zo'n loopje en eveneens horizontaal.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan