Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SVerweis über mehrere Tabellen(3D)

SVerweis über mehrere Tabellen(3D)
23.07.2004 00:02:17
rame
Hallo allerseits,
ich habe folgendes Problem:
https://www.herber.de/bbs/user/8810.xls
In der Demo-Datei ist eine Art Arbeitsplaner. Bei diesem Planer soll es so sein, das der Mitarbeiter bei einem Kunden für einen festen Termin eingetragen wird. Danach soll automatisch bei dem Mitarbeiter der Kunde für die eingetragene Uhrzeit eingetragen werden. Insgesamt handelt es sich um 8 Mitarbeiter und ca. 25 Kunden. Ich bekomme es also vermutlich nicht über geschachtelte WENN-Funktionen hin.
Falls schon mal jemand mit so einem Problem zu tun hatte, dann wäre ich wirklich froh, wenn ich einen Lösungsansatz bekäme.
Gruß rame

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVerweis über mehrere Tabellen(3D)
Boris
Hi,
sinnvollerweise geht das nur mit VBA. Kommt das in Frage?
Grüße Boris
AW: SVerweis über mehrere Tabellen(3D)
23.07.2004 00:39:27
rame
VBA würde ich gerne vermeiden. Wenn es irgendwie möglich ist, dann würde ich das gerne mit Funktionen lösen. Wenn es aber gar nicht anders geht, dann stehe ich insofern auf dem Schlauch, daß ich zwar früher schon einiges Programmiert habe(Cobol, Pascal etc.), aber von VBA überhaupt keinen plan habe.
Gruß rame
Das hat sich jetzt überschnitten...
Boris
Hi Rame,
...wie gesagt - ohne VBA ist das bei 25 Firmen (nahezu) unmöglich.
Schau dir mal meine Lösung an.
Grüße Boris
AW: Das hat sich jetzt überschnitten...
23.07.2004 00:46:00
rame
Die Lösung funktioniert. Ich werd mir morgen mal in Ruhe anschauen was Du da verbastelt hast.
Guten Schlaf und erstmal vielen Dank für die Lösung.
rame
Anzeige
Ich mach Feierabend...
Boris
Hi Rame,
daher will ich dir eine mögliche VBA-Lösung nicht vorenthalten:
Habe es mit dem Change-Ereignis gelöst - in Kombination mit Selection-Change und ner Public-Variablen.
Die Tabellenblätter der Mitarbetier sollten der Einfachheit halber EXAKT die Namen haben, die auch bei den Firmen eingegeben werden. Ich habe also die Vornamen gelöscht.
Du kannst Termine vergeben und auch wieder löschen. Sollte alles verarbeitet werden. Ob das jetzt aber wasserdicht ist...?
Teste selbst...
https://www.herber.de/bbs/user/8817.xls
Ach so: Der Code müsste dann in jedes Tabellenmodul einer jeden Firma kopiert werden.
Grüße Boris
Anzeige
AW: Ich mach Feierabend...
24.07.2004 16:25:48
rame
Hallo Boris,
nach verschiedenen anderen Lösungsansätzen bleibt Deine Lösung als die praktikabelste Variante übrig. Ich finde es klasse das Du Dir die Mühe gemacht hast das zu erstellen.
Da ich aber von VBA überhaupt keine Ahnung habe, wäre es für mich sehr hilfreich, wenn Du das, was Du da programmiert hast auch kommentieren könntest. Dann habe ich zumindest eine Chance bei VBA ganz langsam einen Durchblick zu bekommen.
Gruß rame
AW: Ich mach Feierabend...
Boris
Hi Rame,
ich hab´s mal etwas auskommentiert. Die in einem allgemeinen Modul als Public deklarierte Variable 'oldSheet' muss natürlich sein!

Private Sub Worksheet_Change(ByVal Target As Range)
'Falls mehr als 1 Zelle ausgewählt
If Target.Count > 1 Then
'dann Hinweis: Geht nicht...
MsgBox "Bitte nur 1 Zelle bearbeiten!", , "Hinweis"
'Ereignisse ausschalten
Application.EnableEvents = False
'Target leeren
Target = ""
'Ereignisse wieder anschalten
Application.EnableEvents = True
'Sub verlassen
Exit Sub
End If
'Fehlerbehanldung - bei Fehler zur Sprungmarke Hoppla
On Error GoTo Hoppla
'Wenn Target leer ist
If Target = "" Then
'...dann Zelle im Mitarbeiterblatt auch leeren
'entspricht: Termin löschen
Worksheets(oldSheet).Range(Target.Address) = ""
'und sub verlassen
Exit Sub
End If
'Falls Target nicht innerhalb B3:K38 liegt  - Sub verlassen
If Intersect(Target, [b3:k38]) Is Nothing Then Exit Sub
'Mitarbeiternamen in Mitarbeiterblatt übertragen
With Target
Worksheets(.Text).Range(.Address) = ActiveSheet.Name
End With
'Sub verlassen, damit man nicht automatisch in die folgende Fehlerbehanldung läuft
Exit Sub
'Fehlerbehandlung
Hoppla:
MsgBox "Diesen Mitarbeiter gibt es nicht", , "Hinweis..."
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Hier immer die Public-Variable entsprechend füllen
oldSheet = ActiveCell.Text
End Sub

Grüße Boris
Anzeige
AW: Ich mach Feierabend...
26.07.2004 18:04:35
rame
Danke!

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige