Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1472to1476
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

Flexibler Ausgabebereich eines VBA-Moduls

Flexibler Ausgabebereich eines VBA-Moduls
15.02.2016 04:39:33
Ulrich

Hallo zusammen!
Ich möchte mich gerne mit einer Frage zur Definition des Ausgabebereichs einer VBA-Funktion an euch wenden. Mir ergibt sich die folgende Fragestellung:
Mithilfe von VBA möchte ich in einer Zelle die Verkettung des Inhalts einer Spalte wiedergeben. Hierzu verwende ich die folgende Funktion:

Sub Verketten()
Dim c As Range, tmp As String
For Each c In Selection
tmp = tmp & c & "; "
Next
Worksheets(3).Range("D8").Value = tmp
End Sub

In der folgenden VBA-Funktion ist bereits ein Ausgabebereich definiert. Da ich jedoch diese Funktion für mehrere Spalten verwenden möchte und die Ausgabe der Verkettungsfunktion in einer jeweils anderen Zelle erfolgen soll, stellt sich mir die Frage, ob sich der Ausgabebereich flexibel definieren lässt?
Ist es z.B. möglich, dass ich (1) durch Auswahl/Anklicken in einem Worksheet einen Ausgabebereich definiere und (2) durch Auswahl in einem Worksheet eine Spalte definiere und anschließend das Modul laufen lasse?
Gibt es somit eine Möglichkeit, um ein VBA-Modul für verschiedene Ausgabebereiche zu verwenden oder muss ich für jeden gewünschten Ausgabebereich ein neues VBA-Modul erstellen?
Ich würde mich sehr über eine Antwort von euch freuen - vielen Dank bereits!
Ulrich

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Flexibler Ausgabebereich eines VBA-Moduls
15.02.2016 07:15:27
MCO
Moin!
du kannst einfach einen Parameter in die klammern schreiben und den Code mit dem parameter aufrufen.
Sub verketten(spalte as single)
Dim c As Range, tmp As String
For Each c In Selection
tmp = tmp & c & "; "
Next
Worksheets(3).cells(8,spalte).Value = tmp
End Sub
Der Aufruf der Prozedur ist eine eigene Prozedur
Sub aufruf()
verketten 4 'Beispiel für Spalte 4
End Sub
Gruß, MCO

AW: Flexibler Ausgabebereich eines VBA-Moduls
15.02.2016 07:51:30
Ulrich
Vielen Dank für die hilfreiche Antwort!

Oder gleich als UDF
15.02.2016 07:25:56
RPP63
Moin!
Function Verketten2(rng As Range, Optional Separator As String = ";") As String
Dim rZelle As Range
For Each rZelle In rng
Verketten2 = Verketten2 & rZelle & Separator
Next
End Function
Anzeige
AW: Oder gleich als UDF
15.02.2016 07:51:05
Ulrich
Super, vielen Dank für die schnelle und kompetente Hilfe!

Das ist jetzt wohl die xte Variante von ...
15.02.2016 15:27:15
Luc:-?
Verketten2, Ralf… ;-]
Gruß, Luc :-?
Besser informiert mit …

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige