Anzeige
Archiv - Navigation
1188to1192
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

Case-Abfrage erweitern

Case-Abfrage erweitern
Enno
Hi Leute,
ich habe in meinem Workbook ein Sheet mit "von-bis"-Zeitendefinitionen und jeweils ein Tastaturkürzel dazu.
Sheet Zeitendef:
A---06:00---16:00
B---08:00---18:00
Der Anwender gibt in den anderen Sheets immer nur den jew. Buchstaben in die Zelle ein und der VB-Code trägt autom. die jew. "von-bis"-Zeit ein.
Coding:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wksDZ As Worksheet
Select Case Left(Sh.Name, 4)
Case "Plan"
If Sh.Cells(7, Target.Column) = "von" Then
Set wksDZ = Sheets("Zeitdefinitionen")
On Error GoTo errHDL
Application.EnableEvents = False
Select Case UCase(Target)
Case "A"
Target = wksDZ.Cells(1, 2)
Target.Offset(0, 1) = wksDZ.Cells(1, 3)
Case "B"
Target = wksDZ.Cells(2, 2)
Target.Offset(0, 1) = wksDZ.Cells(2, 3)
Case "C"
Target = wksDZ.Cells(3, 2)
Target.Offset(0, 1) = wksDZ.Cells(3, 3)
Case "D"
Target = wksDZ.Cells(4, 2)
Target.Offset(0, 1) = wksDZ.Cells(4, 3)
End Select
End If
End Select
errHDL:
Application.EnableEvents = True
End Sub

Soweit so gut. Das Problem:
In Zeile 6 habe ich Personennamen stehen. Beginnen diese zufällig mit dem Buchstaben A oder B, schreibt mir Excel deren Namen in die "von-bis"-Zeiten, nicht jedoch die tatsächliche Zeitdefinition.
Da das gesamte Workbook von der Formatierung her statisch ist, würde es genügen bei der If-Abfrage Zeile 6 zu ignorieren.
Also vor: If Sh.Cells(7, Target.Column) = "von" Then
Zeile 6 (=Personennamen) ausgrenzen.
Wäre ganz toll wenn ihr mir kurz auf die Sprünge helfen könnt, bin leider in VBA nicht so eingearbeitet und verstehe das Script nur bedingt. ;(
Thanxs, Enno
If target.Row = 6 Then Exit Sub (owT)
30.11.2010 15:11:40
Renee

AW: If target.Row = 6 Then Exit Sub (owT)
30.11.2010 15:29:03
Enno
Hallo Renee,
wenn ich es so mache, springt er aus dem ganzen Coding hinaus.
VBA soll ja per Eingabe von A autom. "von-bis" eintragen, nur eben Zeile 6 (=Personennamen in den jew. Dienstzeiten-Sheets) ignorieren. Damit ich ihn zwinge, die Zeitdefinitionen des "Zeitdef-Sheets" zu nehmen.
Sorry, ich seh dein Blatt nicht! (owT)
30.11.2010 15:31:48
Renee

AW: Sorry, ich seh dein Blatt nicht! (owT)
01.12.2010 09:27:31
Enno
Hallo Renee,
zum leichteren Verständnis hier die Datei:
https://www.herber.de/bbs/user/72541.xlsm
Wie gesagt: Beginnt der Name in den Stammdaten mit einem A, B, C, od. D (=also genauso wie die Kürzel im Sheet Dienstzeitendefinitionen), trägt Excel bei "von-bis" leider den Namen von Zeile 6 ein, anstatt der Dienstzeiten.
Gruß, Erich
Anzeige
AW: Sorry, ich seh dein Blatt nicht! (owT)
01.12.2010 09:29:23
Enno
Hallo Renee,
zum leichteren Verständnis hier die Datei:
https://www.herber.de/bbs/user/72541.xlsm
Wie gesagt: Beginnt der Name in den Stammdaten mit einem A, B, C, od. D (=also genauso wie die Kürzel im Sheet Dienstzeitendefinitionen), trägt Excel bei "von-bis" leider den Namen von Zeile 6 ein, anstatt der Dienstzeiten.
Gruß, Erich
AW: Sorry, ich seh dein Blatt nicht! (owT)
01.12.2010 09:35:44
Enno
Renee, zum besseren Verständnis habe ich dir in dieser Version genau das Problem (siehe Sheet: Plan1) markiert:
https://www.herber.de/bbs/user/72542.xlsm
Gr, Enno
Anzeige
AW: Sorry, ich seh dein Blatt nicht! (owT)
01.12.2010 11:07:31
Enno
Renee? ;)
frühstens Abend. Firewall # Makros ;-) (owT)
01.12.2010 12:35:57
Renee

AW: frühstens Abend. Firewall # Makros ;-) (owT)
01.12.2010 12:41:39
Enno
DANKE Renee. Kannst mich auch unter Mail ep78@gmx.at erreichen.
lg, enno
simple Lösung so:
01.12.2010 17:57:36
Renee
Hi Enno,
Da spielt dir ?Intelli?sense einen Streich.
Baue die 2te Zeile, nach der ersten ein:

Application.EnableEvents = False
Target = Left(UCase(Target), 1)

GreetZ Renée
AW: simple Lösung so:
02.12.2010 09:30:50
Enno
WOW!!!!
DANKEEEEE Renée!
Es funkt.
Kannst du mir die Zeile bitte kurz erklären damit ich mir 'nen Kommentar setzen kann.
lg, Enno
Erklärung?
02.12.2010 09:39:25
Renee
Hi Enno,
Die Zeile macht nichts anderes, als das Eingabezelle auf den ersten (Gross)Buchstaben runterzuschnipseln.
D.h. der ganze Rest, der durch die 'automatische' Ergänzung vorgegeben wird, löst sich im Nirwana auf.
GreetZ Renée
Anzeige
AW: Erklärung?
02.12.2010 11:11:40
Enno
Achsooo. Jetzt hat's geblitzt!
String kürzen und gut ist. Arghhh, warum bin ich da nicht selbst draufgekommen. *rmpf
Naja, mangelnde Zeit und damit verbundene Programmierpraxis eben. ;((
Ich danke dir trotzdem sehr, dass du dich unseres Problems über zwei Tage hinweg angenommen hast. Du hast unserer Diensstelle (und auch der Allgemeinheit) mit "deiner Zeile" das Leben wesentlich erleichtert.
GreetZ, E.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige