Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verketten von Zellen per VBA aber nicht in Range..

Verketten von Zellen per VBA aber nicht in Range..
Zellen
Also,
ich hab mir gerade im Archiv so allerlei angeschaut, und das ist auch alles ganz toll, aber leider nur bedingt was ich suche.
Ich benötige eine VBA Function die nur verkettet wenn die Zelle gefüllt ist, und dann ein _ Trennzeichen setzt. Soweit so gut da gibts schon ein Dutzend Vorschläge. Aber jetzt kommt's: ich hab keinen Bereich den ich verkettet haben möchten sonder statt dessen 9 einzeln über die Tabelle verteilte Spalten. Keines der Beispiele lässt mich einen unzusammenhängenden Bereich übergeben. Kann mir da vielleicht jemand eines der Vorgänger scripts modifizieren? Dazu fehlt mir definitiv das Fachwissen :(

' Modul: Modul2 Typ: Allgemeines Modul
Option Explicit
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
If rng  "" Or Leerzellen Then
str = str & rng & Trenner
End If
Next
VerkettenM = Left(str, Len(str) - Len(Trenner))
End Function

Danke schon mal im Voraus
Kolja

AW: Verketten von Zellen per VBA aber nicht in Range..
09.09.2012 19:50:54
Zellen
Hab noch was vergessen:
in den Zellen befinden sich kurze Buchstaben Kombinationen OP,ST usw manchmal nur einer, manchmal 4. Nun sind aber auch doppelte in den Spalten möglich, und die hätte ich eigentlich auch gerne herausgefilter bekommen... ich glaub das ist wieder eine ganz andere Aufgabenstellung, aber ich schau einfach mal zu und staune was Menschen mit VBA als Hirn-OS so hinkriegen :D
Kolja

AW: Verketten von Zellen per VBA aber nicht in Range..
09.09.2012 20:02:53
Zellen

Option Explicit
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
If Application.CountIf(Range(Left(Bereich.Address, InStr(Bereich.Address, ":") - 1) _
& ":" & rng.Address), rng) = 1 Then
If rng  "" Or Leerzellen Then
str = str & rng & Trenner
End If
End If
Next
VerkettenM = Left(str, Len(str) - Len(Trenner))
End Function
Gruß Hajo

Anzeige
AW: Verketten von Zellen per VBA aber nicht in Range..
09.09.2012 20:19:01
Zellen
Ok, fehlerhaft formuliert, rächt sich eben schnell.
Ich meinte das es innerhalb der Zellen zB das Kürzel ST mehrfach geben kann, also zb
1 ST,OP
2 BF,AM
3 ST,BF
4
5 AM,OP
und ich eben in
6 ST,OP,AM,BF
stehen haben wollen würde. ist aber nicht zwingend, das hauptproblem, das ich nochmal präzisiert habe, bleibt bei dieser Funktion bestehen. Ich kann keine unzusammenhängende Liste von Zellen angeben die ich verketten haben möchte, also im sinne von Verketten(A;C;F;H;K;"-")
Kolja

AW: Verketten von Zellen per VBA aber nicht in Range..
09.09.2012 19:52:04
Zellen
die Funktion macht doch was Du willst.
Tabelle2
 ABCDEF
22  50.000,00 € 10%    22.306,00 € 0,0550000-0,1-22306-0,05

verwendete Formeln
Zelle Formel Bereich
E22 =SVERWEIS(D22;$A$16:$B$22;2) 
F22 =VerkettenM(A22:E22;"-") 

Tabellendarstellung in Foren Version 5.49



Anzeige
AW: Verketten von Zellen per VBA aber nicht in Range..
09.09.2012 19:57:46
Zellen
Ja, sie verketten die nichtleeren Zellen, aber ich will eben nicht alle Zellen verketten sonder es eben eher so haben
=VerkettenM("A22,D22,E22);"-")
Kolja

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige