Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verketten von vielen Einzelwerten

Verketten von vielen Einzelwerten
25.01.2008 11:38:00
vielen
Hallo zusammen
Ich habe folgendes Problem:
Ich möchte aus einer Zonen und Ländertabelle einen String für eine Preisermittlung in einem Web-Shop generieren.
Die Tabelle schaut so aus und hat ca. 300 Einträge:
1 BE
1 LU
1 NL
2 AT
2 DK
2 FR
2 IT
2 MC
2 SM
2 GB
Das Ergebnis sollte so ausschauen:
Zone 1+2: BE, LU, NL, AT, etc.
Zone 3:
Zone 4+5:
etc
Wie bekomme ich - ohne dass ich jeden einzelen Wert mit verketten anklicken muss, diesen String mit dem Komma hin?
Danke für die Hilfe!
Schöne Grüsse
beel

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verketten von vielen Einzelwerten
25.01.2008 12:07:28
vielen
Hallo beel
vieleicht so?

Sub Text()
Dim TxtStr
Dim i As Integer, a As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If i = 1 Then
TxtStr = Cells(i, 1) & ": "
Else
If Cells(i, 1)  Cells(i - 1, 1) Then
TxtStr = TxtStr & vbCr & Cells(i, 1) & ": "
End If
End If
TxtStr = TxtStr & Cells(i, 2) & ", "
Next i
MsgBox TxtStr
End Sub


mfg Ulf

AW: Verketten von vielen Einzelwerten
25.01.2008 13:35:00
vielen
Hallo,
ich gehe von folgenden Voraussetzungen aus:
Deine Werte (1 BE, 1 LU etc) stehen in Spalte A.
Das Ergebnis wird durch die beiden u.a. Prozeduren in den Spalten C und D ausgegeben.
Ggf müsstest Du die Select Case - Anweisung erweitern.
Wichtig ist noch, dass die Public-Anweisung oberhalb der Prozeduren geschrieben wird.
Feedback wäre schön.
Gruß,
Ptonka
Public Inhalt1, Inhalt2 As String

Sub test()
Dim Ziffer As Integer
Anzahl = [A65536].End(xlUp).Row
For i = 1 To Anzahl
Inhalt1 = Cells(i, 1).Value
Call zeichenfolge_umdrehen
Ziffer = Mid(Inhalt2, InStr(Inhalt2, " ") + 1)
Select Case Ziffer
Case Is = 1, 2
Text12 = Text12 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
Case Is = 3
Text3 = Text3 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
Case Is = 4, 5
Text45 = Text45 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
End Select
Next i
Range("D1").Value = Mid(Text12, 3)
Range("D2").Value = Mid(Text3, 3)
Range("D3").Value = Mid(Text45, 3)
End Sub



Sub zeichenfolge_umdrehen()
Dim intLetter As Integer
Dim strResult As String
strResult = ""
For intLetter = 1 To Len(Inhalt1)
strResult = Mid(Inhalt1, intLetter, 1) & strResult
Next
Inhalt2 = strResult
End Sub


Anzeige
AW: Verketten von vielen Einzelwerten
28.01.2008 08:33:10
vielen
Hallo zusammen
Erstmal vielen Dank für die schnellen und umfangreichen Antworten. Ich bin kein VBA Spezialist, daher wird das Einbinden von Ptonkas Statement eher schwer für mich. Das von Ulf bringe ich evtl. hin. Lasst mich mal probieren.
Ich habe mal das Excel hochgeladen zum besseren Verständnis. Ich benötige am Ende einfach einen String der Länder (CH, DE, AT, CZ) je Zone. Zwei Zonen zusammenfassen kann ich dann ja mit copy/paste.
Vielen Dank und bis bald!
Gruss
beel

AW: Verketten von vielen Einzelwerten
28.01.2008 10:32:00
vielen
Hallo zusammen
Die Prozedur von Ulf hilft mir leider nicht weiter. Danke aber tortzdem!
Die Prozedur Ptonka läuft nicht. Kann aber auch sein, dass ich das Ganze falsch eingebunden habe. Bekomme einen Fehler bei der Zeile Ziffer = Mid(Inhalt2, InStr(Inhalt2, " ") + 1) nach dem Aufruf von zeichenfolge_umdrehen.
Habe das Ganze nochmals beschrieben und das File angehängt. Hoffe es gibt noch Hilfe!
Bis bald und schöne Grüsse
beel

AW: Verketten von vielen Einzelwerten
28.01.2008 11:13:03
vielen
Hallo beel
was soll den das in Zeile 74
muß das so sein oder geht das auch anders.
mfg ulf

AW: Verketten von vielen Einzelwerten
28.01.2008 11:15:00
vielen
Hi Ulf
kann auch nur 1 sein, kein Problem. Die Zonen 1 + 2 geben danach einen String für die Preisermittlung!
Danke der Nachfrage! Hast Du eine Lösung?
Schöne Grüsse und Dank!
beel

Anzeige
AW: Verketten von vielen Einzelwerten
28.01.2008 11:31:02
vielen
Hallo Beel
Die Ausgabe findet in einer Msgbox statt. Wenn es dir reicht dann so.

Sub Text()
Dim TxtStr(100), Txt
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
TxtStr(Int(Cells(i, 2))) = TxtStr(Int(Cells(i, 2))) & Cells(i, 3) & ", "
Next i
For i = 1 To 100
If TxtStr(i)  "" Then Txt = Txt & i & ": " & TxtStr(i) & vbCr
Next i
MsgBox Txt
End Sub


mfg Ulf

AW: Verketten von vielen Einzelwerten
28.01.2008 11:40:00
vielen
Hi Ulf
bekomme einen Typengleichheitsfehler bei TxtStr(Int(Cells(i, 2))) = TxtStr(Int(Cells(i, 2))) & Cells(i, 3) & ", " - kenne mich zu wenig aus. Schön wäre es, wenn es mir die Strings in ein Feld schreiben würde oder auf ein neues Tabellenblatt. Wenn ich aus der msgbox aber kopieren kann, ist das für mich genügend!
Danke und viele Grüsse
beel

Anzeige
AW: Verketten von vielen Einzelwerten
28.01.2008 11:56:22
vielen
Hallo Beel
Die Ausgabe findet in deiner Mappe statt in Spalte E

Sub Text()
Dim TxtStr(100), Txt
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
TxtStr(CInt(Cells(i, 2))) = TxtStr(CInt(Cells(i, 2))) & Cells(i, 3) & ", "
Next i
Range("E:E") = ""
For i = 1 To 100
If TxtStr(i)  "" Then
Cells(i, 5) = i & ":" & TxtStr(i)
End If
Next i
End Sub


mfg Ulf

AW: Verketten von vielen Einzelwerten
28.01.2008 12:01:00
vielen
Hi Ulf
Danke! Leider bekomme ich immer noch den Fehler in Zeile 13 - Typen unverträgelich. Beim Degugg ist der Pfeil auf TxtStr(Int(Cells(i, 2))) = TxtStr(Int(Cells(i, 2))) & Cells(i, 3) & ", "
Danke für die Hilfe!
Schöne Grüsse
beel

Anzeige
AW: Verketten von vielen Einzelwerten
28.01.2008 12:19:39
vielen
Hallo Beel
bei mir steht doch jetzt
TxtStr(CInt(Cells(i, 2))) = TxtStr(CInt(Cells(i, 2))) & Cells(i, 3) & ", "
und nicht
TxtStr(Int(Cells(i, 2))) = TxtStr(Int(Cells(i, 2))) & Cells(i, 3) & ", "
versuch mal so

AW: Verketten von vielen Einzelwerten
28.01.2008 12:31:25
vielen
Hallo Beel
du kannst es aber auch so schreiben.
es ist nur wichtig das in der Spalte B nur Zahlen stehen.
TxtStr(Cells(i, 2)) = TxtStr(Cells(i, 2)) & Cells(i, 3) & ", "
mfg ulf

AW: Verketten von vielen Einzelwerten
28.01.2008 14:19:59
vielen
Hallo Beel,
mein Makro funktionierte nicht, weil ich davon ausgegangen bin, dass Deine Einträge in einer einzigen Zelle stehen - also 1 BE, 2 AF etc.
Hier das Makro, das auf Deine Tabelle passt. Allerdings ist dort ein Eintrag "1 + 2" in Spalte B bei Germany.
Hier musst Du vorher eine Änderung vornehmen und 2 Zeilen angeben, einmal 1 und Germany und einmal 2 und Germany.
Dann klappt dieses (angepasste) Makro:

Sub test()
Dim Ziffer As Integer
Anzahl = [A65536].End(xlUp).Row
For i = 1 To Anzahl
Inhalt1 = Cells(i, 3).Value
'Call zeichenfolge_umdrehen
Ziffer = Cells(i, 2).Value
Select Case Ziffer
Case Is = 1, 2
Text12 = Text12 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
Case Is = 3
Text3 = Text3 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
Case Is = 4, 5
Text45 = Text45 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
Case Is = 6
Text6 = Text6 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
Case Is = 7
Text7 = Text7 & ", " & Mid(Inhalt1, InStr(Inhalt1, " ") + 1)
End Select
Next i
Range("D1").Value = "Zone 1 + 2"
Range("D2").Value = "Zone 3"
Range("D3").Value = "Zone 4 + 5"
Range("D4").Value = "Zone 6"
Range("D5").Value = "Zone 7"
Range("E1").Value = Mid(Text12, 3)
Range("E2").Value = Mid(Text3, 3)
Range("E3").Value = Mid(Text45, 3)
Range("E4").Value = Mid(Text6, 3)
Range("E5").Value = Mid(Text7, 3)
MsgBox "Bin fertig!"
End Sub


Gruß
Ptonka

Anzeige
AW: Verketten von vielen Einzelwerten
28.01.2008 18:04:15
vielen
Hallo ihr beiden
Die Bemühungen sind echt toll. Danke dafür! Ich bin sicherlich einfach zu doof.
Ich habe beide probiert und beide gehen. Komisch ist, dass bei beiden zwar die Strings mit den Kommas generiert werden, nicht aber die Ländercodes eingefügt sind.
https://www.herber.de/bbs/user/49472.xls
Sorry für die Umstände, evtl. habt ihr ja noch Nerven für mich! Ist das Makro von Ptonka.
Gruss
beel

AW: Verketten von vielen Einzelwerten
28.01.2008 20:35:22
vielen
Hallo
warum stehen deine Ländercods jetz in Spalte A und nicht in Spalte C
darum geht das nicht
mfg Ulf

Anzeige
AW: Verketten von vielen Einzelwerten
29.01.2008 09:04:00
vielen
Hi Ulf
Da hast Du recht. Sorry. Geht aber trotzdem nicht.
Anbei das File mit Deinem Makro. Da ich kein VBA kann, könnte es auch falsch eingebunden sein?!
https://www.herber.de/bbs/user/49484.xls
Danke und Gruss
beel

AW: Verketten von vielen Einzelwerten
29.01.2008 13:33:54
vielen
Hallo beel
Es ist schon alles ok
nur in Zeile 74 steht 1+2.
du sagtest es kann mann auch ändern.
In Spalte 2 dürfen nur Zahlen stehen dann funktioniert auch das Makro.
mfg Ulf

AW: Verketten von vielen Einzelwerten
29.01.2008 13:54:00
vielen
Hi Ulf
Sorry. Doch zu doof. Das hattest Du ja gesagt.
VBA ist aber echt genial. Sollte mir doch mal die Grundlagen aneignen :-) Mach ich nach dem MBA!
Wünsch Dir alles Gute und vielen vielen Dank für die Hilfe!
Gruss
beel

Anzeige
gern geschehen OT
29.01.2008 13:58:54
Ulf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige