Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UDF zum Verketten von nichtleeren Zellen mit Delim

UDF zum Verketten von nichtleeren Zellen mit Delim
nichtleeren
Hallo an alle,
ich würde gern eine benutzerdefinierte Funktion (UDF) erstellen, die alle Zahlen und Text in einer Zeile mit einander verkettet. Es geht um zwei Blätter: auf dem einen sind die Kommentare mit Zahlen detailliert dargestellt und jede Zahl steht in einer eigenen Zelle. Hier gibt es insgesamt 4 Spalten: 3 Zahlenspalten und 1 Textspalten. Die Spalten heissen:
C - "Variance" (Abweichung)
D - "Actual" (Ist)
E - "Budget" (Budget)
F - "Comment" (Kommentar)
In den Zahlenspalten kommen notwendigerweise verschiedene benutzerdefinierte Zahlenformate vor. E.g. €10k oder €121,2m oder 11m. Diese Formate sollen beim Verketten beibehalten werden.
Die Zahlenspalten sind nicht in jeder Zeile voll ausgefüllt. Oft fehlen Werte. Diese leeren Zellen sollen bei der Verkettung nicht beachtet werden.
Diese Kommentare müssen durch die UDF im zweiten Blatt platzsparend verkettet werden, nach dem Muster:
"Comment" + "(" + "Variance: " + Zahlenwert Variance mit Beibehaltung des Formats + ";" + ('falls nicht leer' " Actual: " + Zahlenwert Actual mit Beibehaltung des Formats + ";") + ('falls nicht leer' " Budget: " + Zahlenwert Budget mit Beibehaltung des Formats + ";")
Ich danke Euch im Voraus!
Liebe Grüsse,
Alexandra

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: UDF zum Verketten von nichtleeren Zellen mit Delim
02.07.2009 15:48:21
nichtleeren
einach als CSV exportieren?
Spaltenumstellungen und Hilfspalten für die Bezeichnungen sind erforderlich.
AW: UDF zum Verketten von nichtleeren Zellen mit Delim
02.07.2009 17:34:03
nichtleeren
Hallo Helmut,
danke für die schnelle Antwort. Aber es sollte wirklich in einem anderen Blatt sein, das man auch schön layouten und drucken kann.
AW: UDF zum Verketten von nichtleeren Zellen mit Delim
02.07.2009 17:48:26
nichtleeren
Hallo,
meinst Du so.
Function VergetteZellen(rBereich, sDelimeter As String) As String Dim A As Long, strText As String With Application For A = 1 To rBereich.Rows.Count strText = strText = strText & Join(.Transpose(.Transpose(rBereich.Rows(A))), sDelimeter) & ";" Next A strText = Left(strText, Len(strText) - 1) Do strText = Replace(strText, String(2, sDelimeter), sDelimeter) Loop Until InStr(strText, String(2, sDelimeter)) = 0 VergetteZellen = strText End With End Function


In der Tabelle kannst Du dies so verwenden.
Tabelle1

 ABCDEFGHIJKL
1Test1;Text5;Test7;Test9;Test11Test1 Text5   Test7 Test9 Test11

Formeln der Tabelle
ZelleFormel
A1=VergetteZellen(B1:L1;";")

Gruß Tino
Anzeige
Korrektur einer Zeile
02.07.2009 18:10:30
Tino
Hallo,
ersetze die Zeile

strText = strText = strText & Join(.Transpose(.Transpose(rBereich.Rows(A))), sDelimeter) & ";"


durch diese


strText = strText = strText & Join(.Transpose(.Transpose(rBereich.Rows(A))), sDelimeter) & sDelimeter


Gruß Tino

AW: UDF zum Verketten spezial
02.07.2009 21:45:13
Erich
Hi Alexandra,
hier noch eine Möglichkeit:
 CDEF
1VarianceActualBudgetComment
2123,45077%-23.000asasd
3    
4Comment: asasd (Variance: 123,450; Actual: 77%; Budget: -23.000;

Formeln der Tabelle
ZelleFormel
C4=Verk_spez("Tabelle1";2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Und hier der Code der UDF, die mit einem Blattnamen und einer Zeilennummer aufgerufen wird:
(in ein allg. Modul):

Option Explicit
Function Verk_spez(strBlatt As String, lngZeile As Long) As String
With Worksheets(strBlatt)
Verk_spez = "Comment: " & .Cells(lngZeile, 6).Text & _
" (Variance: " & .Cells(lngZeile, 3).Text & ";"
If Not IsEmpty(.Cells(lngZeile, 4)) Then _
Verk_spez = Verk_spez & " Actual: " & .Cells(lngZeile, 4).Text & ";"
If Not IsEmpty(.Cells(lngZeile, 5)) Then _
Verk_spez = Verk_spez & " Budget: " & .Cells(lngZeile, 5).Text & ";"
End With
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: UDF zum Verketten von nichtleeren Zellen mit Delim
03.07.2009 09:53:56
nichtleeren
Hallo Tino und Erich,
vielen Dank für den Code. Beides funktioniert super.
Viele Grüsse,
Alexandra

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige