Microsoft Excel

Herbers Excel/VBA-Archiv

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

Case und Right | Herbers Excel-Forum


Betrifft: Case und Right von: FM
Geschrieben am: 14.10.2008 13:41:15

Hallo,

ich baue gerade einen Cross Reference Table. Dabei muss ich eine Zeichenfolge nach bestimmten Kriterien auswählen.

Z.b. 1234567TR ist nicht das gleiche wie 1234567ZB.
Ich wollte nun checken wie die letzten 2 Buchstaben der Zeichenkette sind, mit folgendem Code:

Private Sub modelcode_to_basemodel()

Dim scell As Integer
Dim Modelstr As Variant

For scell = 2 To 4 Step 1    'testweise

    Modelstr = ActiveSheet.Cells(scell, 1).Value
    MsgBox Right(Modelstr, 2)
    
Select Case Modelstr

Case is_ = Right(Modelstr, 2) = "TR"
    ActiveSheet.Cells(scell, 2).Value = "Neues Modell"

Case Else
    ActiveSheet.Cells(scell, 2).Value = "Altes Modell"

End Select

Next scell

End Sub



Was passiert ist, dass in den beiden Zeilen in denen einen Zeichenfolge steht ein "Altes Modell" eingetragen wird und in der einen leeren Zeile die ich mitteste ein "neues Modell".

Weiss evtl. jemand Rat warum es nicht geht ?

Danke und Gruss
Florian

  

Betrifft: AW: Case und Right von: EffHa
Geschrieben am: 14.10.2008 13:50:02

versuche es mal so:

Private Sub modelcode_to_basemodel()
Dim sCell As Integer
For sCell = 2 To 4 Step 1    'testweise
    If Cells(sCell, 1) <> "" Then
        Select Case Right(Cells(sCell, 1), 2)
            Case "TR"
                Cells(sCell, 2) = "Neues Modell"
            Case Else
                Cells(sCell, 2) = "Altes Modell"
        End Select
    End If
Next sCell

End Sub




  

Betrifft: AW: Case und Right von: JogyB
Geschrieben am: 14.10.2008 13:54:07

Wieso macht Du nicht

Select Case Right(Modelstr, 2)

Falls die Basis für den Vergleich recht unterschiedlich ist: Eventuell fährst Du mit If ... ElseIf .... ElseIf usw. besser.

Gruss, Jogy


  

Betrifft: AW: Case und Right von: FM
Geschrieben am: 14.10.2008 14:03:28

Danke an alle.
Hatte befürchtet dass es so wie ich es gemacht habe nicht geht. Die Basis ist nämlich unterschiedlich.
Ein Case wäre z.b. auch gewesen dass an 15ter Stelle ein bestimmtes Zeichen steht.
Sprich If wäre wohl sinnvoller aber komplexer :) Trotzdem danke ich probiere es mal.