VBA Function verketten auf SpecialCells(Visible) erweitern
24.09.2024 16:14:52
Udo D.
bräuchte auch mal etwas Hilfe eurerseits, habe einen älteren Beitrag von Sepp entdeckt,
indem er via einer Function es ermöglicht bei entspr. Formeleingabe sich ( die in der Formel
verwiesenen Bereiche ) zu verketten - in einer entspr. Zelle dann.
Habe es selbst auch schon so erweitern können das als Trenner einen Absatz gemacht wird.
Mir fehlt jetzt nur noch der entscheidende Index an welcher Stelle ( so dies mgl. wäre ), dass
bei dem in der Formel verwiesenen Bereich nur die sichtbaren Zeilen berücksichtigt werden,
sprich würden sich innerhalb des verwiesenen Bereiches ausgeblendete Zeilen befinden
so sollte das Formelergebnis dies Inhalte ebenfalls ignorieren - sofern dies so möglich wäre !?
An welcher Stelle im Code müsste man hier sowas wie Range(specialcells(xlCellTypeVisible)
einbinden oder ähnliches, ginge das so überhaupt ... ?
An der Stelle hänge ich leider, habt ihr ne Idee, soll ich dazu ne Beispieldatei erstellen
oder reicht euch der von mir leicht modifizierte Code von Sepp ?
' ————————————————————————————————————————————————————
' wird über direkte Formeleingabe in einer Zelle wirksam -- zB. =verkettenm(A1:A16;";")
' ————————————————————————————————————————————————————
' https://www.herber.de/forum/archiv/1160to1164/1160919_Inhalte_mehrere_Zellen_in_eine_Zelle.html [ von SEPP ]
Public Function VerkettenM(Bereich As Range, _
Optional Trenner As String = "", _
Optional Leerzellen As Boolean = False) As String
Dim str As String
Dim rng As Range
For Each rng In Bereich
' Set rng = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If rng > "" Or Leerzellen Then
str = (str & rng & Trenner) & vbLf ' hier noch [ & vbLf ] ergänzt für Absatz als Trenner in der Zelle
End If
Next
VerkettenM = Left(str, Len(str) - Len(Trenner))
End Function
herzlichen Dank schon vorab für eure Tipps
LG udo
Anzeige