Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

Problem mit Case

Problem mit Case
Heinz
Hallo Leute
Habe in B3:B156 Werte A bis I stehen. Nun kommt aber noch A1, B1,C1 usw. dazu
nun stimmt Case nicht mehr.
Könnte mir bitte jemand helfen?
Gruß
Heinz

Public Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Bereich As Range
Dim rng As String
Dim bool As Boolean
Set Bereich = Range("B3:B156")
Application.EnableEvents = False
bool = UCase(Target.Text) Like "[A-I]"
If bool Then
If Not Intersect(Target, Bereich) Is Nothing And Target.Offset(0, -1).Text  "" Then
Select Case Target.Text
Case "a", "A": rng = "C500:AG500"
Case "b", "B": rng = "C501:AG501"
Case "c", "C": rng = "C502:AG502"
Case "d", "D": rng = "C503:AG503"
Case "e", "E": rng = "C504:AG504"
Case "f", "F": rng = "C505:AG505"
Case "g", "G": rng = "C506:AG506"
Case "h", "H": rng = "C507:AG507"
Case "i", "I": rng = "C508:AG508"
Case "a1", "A1": rng = "C509:AG509"
Case "b1", "B1": rng = "C510:AG510"
Case "c1", "C1": rng = "C511:AG511"
Case "d1", "D1": rng = "C512:AG512"
Case "e1", "E1": rng = "C513:AG513"
Case "a2", "A2": rng = "C514:AG514"
Case "b2", "B2": rng = "C515:AG515"
Case "c2", "C2": rng = "C516:AG516"
Case "d2", "D2": rng = "C517:AG517"
Case "e2", "E2": rng = "C518:AG518"
End Select
End If
Application.CutCopyMode = False
End If
Application.EnableEvents = True
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Problem mit Case
07.09.2010 20:43:16
Ramses
Hallo
Lösch doch einfach die zwei Zeilen
bool = UCase(Target.Text) Like "[A-I]"
If bool Then
und das letzte "End If"
Für das bischen Code ist die "bool"-Abfrage eh nicht relevant
Gruss Rainer
AW: Problem mit Case
07.09.2010 20:52:27
Daniel
Hi
naja, dein CASE dürfte wohl nich das Problem sein, wahrscheinlich musst du diese Zeile so abändern:
bool = UCase(left(Target.Text,1)) Like "[A-I]"
und wenn du sowieso die Funktion UCase kennst und verwendest, dann frage ich mich, warum du dir beim Erstellen der CASE-Fälle soviel Mühe machst und das ganze nicht mit:
Select UCase(Target.Text)
Case "A": Range(....
vereinfachst?
du könntest dien String für rng aber auch einfach berechnen:
Dim rng as String
Dim Zeile as Long
Zeile = 500 + Asc(UCase(Left(Target.Text,1))) - Asc("A")
Select Case Right(Target.Text, 1)
Case "1": Zeile = Zeile + 9
Case "2": Zeile = Zeile + 14
End select
rng = "C" & Zeile & ":AG" & Zeile
Gruß Daniel
Anzeige
AW: Problem mit Case
07.09.2010 22:38:43
fcs
Hallo Heinz,
hier noch Daniels Lösung kombiniert mit einer entsprechenden kompletten Anweisung zur Berechnung von bool für Buchstaben A-I und A1-E1, A2-E2.
Gruß
Franz
Public Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Bereich As Range
Dim rng As String, Zeile As Long
Dim bool As Boolean
Set Bereich = Range("B3:B156")
Application.EnableEvents = False
bool = UCase(Target.Text) Like "[A-I]" Or UCase(Target.Text) Like "[A-E][1-2]"
If bool Then
If Not Intersect(Target, Bereich) Is Nothing And Target.Offset(0, -1).Text  "" Then
Zeile = 500 + Asc(UCase(Target.Text)) - Asc("A")
Select Case Right(Target.Text, 1)
Case "1": Zeile = Zeile + 9
Case "2": Zeile = Zeile + 14
End Select
rng = "C" & Zeile & ":AG" & Zeile
End If
Application.CutCopyMode = False
End If
Application.EnableEvents = True
End Sub

Anzeige
AW: Danke an Franz - Daniel & Ramses
08.09.2010 08:14:27
Heinz
Hallo ihr drei
Recht herzlichen Dank,für Eure S U P E R Hilfe.
Funktioniert EINWANDFREI.
Gruß
Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige