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

Problem mit Case

Forumthread: 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

Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige