Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Variablen Wert trennen | Herbers Excel-Forum


Betrifft: Variablen Wert trennen von: Timothy
Geschrieben am: 27.01.2010 09:14:34

Hallo miteinander,

habe folgendes Problem:
Ich möchte gerne einen variablen Wert in verschiedenen Zellen trennen.

In einer Zelle steht z.B. xxxe#B, dann muß ich e#B von xxx trennen und e von B trennen (für xxx und # will ich später eine andere Variable einsetzen).
In der nächsten steht z.B. nur xxx, dann muß ich gar nur xxx ausgeben.
In der nächsten steht z.B. xxxB, dann muß ich wieder B von xxx trennen.
In der nächsten steht z.B. xxx#G, dann muß ich G von xxx trennen.
-> Diese 4 Möglichkeiten gibt es, das xxx ist immer gleich und 3 Zeichen lang!

Ich würde es gerne so machen, dass ich schaue ob nach xxx etwas angehängt ist, wenn ja dann:
1. xxx mit Buchstaben ohne das Zeichen "#" (z.B. xxxB) dann ist Suffix(1) = der Buchstabe und  _
Suffix(2)=""
2. xxx alleine ohne Zusatz (z.B. xxx) dann ist Suffix(1) = "" und Suffix(2) = ""
3. xxx mit Buchstabe und nach "#" ein Buchstabe (z.B. xxxe#B) dann ist Suffix(1)=e und Suffix(2) _
=B
4. xxx mit einem Buchstabe nach "#" (z.B. xxx#G) dann ist Suffix(1)="" und Suffix(2)=G

Die Variable setzt sich im Prinzip so zusammen (nur xxx ist immer vorhanden):
xxx Suffix(1) # Suffix(2)

Ich versuche es die ganze Zeit mit Split(), komme aber auf keinen grünen Zweig!

Könnte mir bitte jemand helfen? Wöre echt klasse....!!

Danke!!!

  

Betrifft: AW: Variablen Wert trennen von: Rudi Maintaire
Geschrieben am: 27.01.2010 09:56:07

Hallo,
sowas?

Function Trennen(sText As String)
  Select Case Len(sText)
    Case 3: Trennen = Array(sText, "", "")
    Case 4: Trennen = Array(Left(sText, 3), Right(sText, 1), "")
    Case 5: Trennen = Array(Left(sText, 3), "", Right(sText, 1))
    Case 6: Trennen = Array(Left(sText, 3), Mid(sText, 4, 1), Right(sText, 1))
  End Select
End Function

Sub tt()
  Const sText As String = "xxxB#E"
  MsgBox Trennen(sText)(0) & vbLf & Trennen(sText)(1) & vbLf & Trennen(sText)(2)
End Sub

Gruß
Rudi


  

Betrifft: AW: Variablen Wert trennen von: Timothy
Geschrieben am: 27.01.2010 10:11:54

Hallo Rudi,

ah, also nicht mit Split() arbeiten.......!! Danke!!

Passt soweit, nur kann es jetzt natürlich sein, dass ich einen Wert "xxxabc#cba" habe, also Trennen(swert) (1) und Trennen(swert) (2) können mehrere Zeichen haben. Dann funktioniert dein Code leider nicht....


  

Betrifft: AW: Variablen Wert trennen von: Rudi Maintaire
Geschrieben am: 27.01.2010 10:32:23

Hallo,
dann splitten wir doch.

Function Trennen(sText As String)
  Dim sTmp
  sTmp = Split(sText, "#")
  
  Select Case UBound(sTmp)
    Case 0
      If Len(sTmp(0)) = 3 Then
        Trennen = Array(sTmp(0), "", "")
      Else
        Trennen = Array(Left(sTmp(0), 3), Mid(sTmp(0), 4), "")
      End If
    Case 1
      If Len(sTmp(0)) = 3 Then
        Trennen = Array(sTmp(0), "", sTmp(1))
      Else
        Trennen = Array(Left(sTmp(0), 3), Mid(sTmp(0), 4), sTmp(1))
      End If
  End Select
  
End Function
Sub tt()
  Const sText As String = "xxxjkl#ght"
  MsgBox Trennen(sText)(0) & vbLf & Trennen(sText)(1) & vbLf & Trennen(sText)(2)
End Sub

Gruß
Rudi


  

Betrifft: AW: Variablen Wert trennen von: Timothy
Geschrieben am: 27.01.2010 10:43:58

Weltklasse Rudi,

jetzt geht auch das!!!! Vielen Dank!!!!

Und ich hab die ganze Zeit hin und her versucht...;);) Super, geile Sache!!

Gruß
Tim


  

Betrifft: AW: Variablen Wert trennen von: Timothy
Geschrieben am: 27.01.2010 11:08:18

Ah, jetzt hab ich doch noch was vergessen....

Ich darf einer Constanten doch keine Variable zuordnen. Mein Wert ändert sich aber von Zelle zu Zelle ;)

Wie kann ich das dann machen???

Sub tt()
   Const sText As String = "xxxjkl#ght"
   MsgBox Trennen(sText)(0) & vbLf & Trennen(sText)(1) & vbLf & Trennen(sText)(2)
 End Sub



  

Betrifft: AW: Variablen Wert trennen von: Timothy
Geschrieben am: 27.01.2010 11:13:00

Stopp,

alles klar, funktioniert.....;);) War ich wieder zu voreilig......!!!

Danke trotzdem!


Beiträge aus den Excel-Beispielen zum Thema "Variablen Wert trennen"