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

Werte Eventgesteuert setzen

Werte Eventgesteuert setzen
29.11.2005 12:19:35
Alex
Hallo !
Bin dabei eine Turnierverwaltung (Dart) zu bauen und möchte nun das das Programm automatisch die Freien Geräte auf denen gespielt werden kann anzeigt!
Ich habe zwei Excel Dateien:
In der Ablauf Datei sind alle Begegnungen enthalten. Siehe Bild:
Userbild
Die Formel müsste meiner Meinung nach so lauten (Feld G3):
Befinden sich in den Feldern B3 und F3 Werte so schau in die Datei
Automaten siehe Bild:

Die Datei https://www.herber.de/bbs/user/28810.jpg wurde aus Datenschutzgründen gelöscht

welches Gerät frei ist. Also in die Spalte C2 - Wenn da ein Nein drinn steht
schau in die Spalte C3 usw. Ist kein Gerät frei so schreib nichts. Ist eines Frei so schreib z:b.: A2 (Name des Gerätes)
Nun setze den Inhalt von Feld C2 auf "NEIN" (Datei Automaten)
Somit ist das Gerät besetzt !
Wie wird das Gerät wieder frei ?
Das hab ich mir so vorgestellt:
Befinden sich in den Feldern C3 und E3 (Datei Ablauf) Werte wobei einer
größer als der andere sein muss, so setze den Inhalt von Feld C2 (Datei Automaten) auf "JA"
LEIDER HAB ICH KEINE AHNUNG WIE ICH DAS UMSETZEN KÖNNTE !!????
Wäre für Hilfe Dankbar !
Die Spalte aktiv (Datei Automaten) bedeutet das bei diesem Turnier z.B.: 16 Automaten vorhanden sind. Da müsste dann beim suchen der freien Automaten noch ne Bedingung rein das er nur in den Zeilen suchen soll wo der Automat aktiv ist !
Gruß -ALEX-

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

Betreff
Datum
Anwender
Anzeige
AW: Was ist mit meiner Lösung von gestern?
29.11.2005 14:16:13
Alex
Hi !
Da kahm ich ehrlich gesagt nicht richtig klar, darum hab ich das jetzt nochmal mit Bildern und allem nochmal erklärt !
Kann ich mit Deinem Ansatz sowas wie oben beschrieben erreichen ?
Vielleicht könntest Du mir den Code etwas erklären ... ?!
Jedenfalls DANKE für Deine Antwort .. sehr nett wenn Du mir hilfst !!!
Gruß -Alex-
AW: Was ist mit meiner Lösung von gestern?
29.11.2005 15:04:23
Reinhard
Hi Alex,
Du hast folgenden Tabellenaufbau:
ref  name1  punkt1   punkt2   name2   Tisch
1     a       1       2        b       1
2     c                        d       2
3     fg                       uf      3
4     xc                       tt      1
5     fdj                      u
6     hf                       hans
usw.

sobald in eine der beiden Punktspalten eine 2 eingetragen wird (=Spiel beendet) wird die Tischnummer automatisch ermittelt und unten an die Tischnummerliste angehängt, hier mal für 3 Tische durchgespielt nachdem Tisch 1 beendet wurde.
Bei fehleingaben, z.B. die 2 in falsche Zeile eingetragen würde das automatische makro reagieren und den tisch frei geben. Um dies zu ändern dienen die beiden normalen Makros.
Mit dem einen schaltest du dann ds automatische Makro aus, korrigiest die tabelle manuell und schaltest es dann wieder mit dem anderen Makro ein.
Änderungen am Code gehen wie folgt: Alt+F11, Doppelklick auf Tabelle1 bzw auf Modul1.
Im Makro werden Spalten mit ihrer Nummer angesprochen, also C=3, D=4 F=6 usw. und zellen mit cells(Zeile,Spalte), also bedeutet cells(5,3) die Zelle C5.
Hier die fertige abelle: https://www.herber.de/bbs/user/28816.xls
Nachfolgend noch die Codes
Gruß
Reinhard
in einem Modul:
Sub Tischzuweisung_Ein()
'Das automatische Makro Worksheet_Change wird ausgeführt
Application.EnableEvents = True
End Sub
Sub Tischzuweisung_Aus()
'Das automatische Makro Worksheet_Change wird nicht ausgeführt
Application.EnableEvents = False
End Sub
im Codeteil der Tabelle1:
Private Sub Worksheet_Change(ByVal Target As Range)
'Target.Value würde Fehler geben wenn z.B. mehre Zellen gleichzeitig gelöscht werden
'deshalb dann der Sprung zum Programmende
If Target.Cells.Count <> 1 Then GoTo weiter
'Wenn Eingabe nicht in 3ter oder 4ter Spalte Programm verlassen
If Target.Column <> 3 And Target.Column <> 4 Then Exit Sub
'wenn keine 2 eingeben wurde programm verlassen
If Target.Value <> 2 Then Exit Sub
'Erste freie Zelle in Spalte F erhält die Tischnummer daher wo grad die 2 eingeben wurde
Cells(Range("F65536").End(xlUp).Row + 1, 6) = Cells(Target.Row, 6)
weiter:
End Sub
Anzeige
Und mit einer zweiten Datei in ...
29.11.2005 15:14:04
Alex
... der die Werte für die Automaten stehen ?
Danke nochmal für Deine Antwort.
Ich bräuchte das ganze aber für eine externe Datei !
So wie in meinem Thread beschrieben.
Es geht darum das auch mehrere Bewerbe gleichzeitig stattfinden können die sich dann die
freien Automaten alle aus der Datei automaten.xls raussuchen sollen !
Wie kann ich in einem Makro auf eine Celle in einer anderen Datei zugreifen ?
Gruß -Alex-
AW: Und mit einer zweiten Datei in ...
29.11.2005 17:02:44
Reinhard
Hi Alex,
sind noch einige Bugs drinnen und es fehlt noch was.
Aber Eingabe von Namen und Punkten funktionirt eingermaßen. Soll das so ablaufen?
https://www.herber.de/bbs/user/28817.xls
Gruß
Reinhard
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count <> 1 Then GoTo weiter
If Target.Column < 2 Or Target.Column > 5 Then Exit Sub
Set wsA = Worksheets("Automaten")
Set wsL = Worksheets("Liga1")
With wsA
Select Case Target.Column
Case 2, 5 ' Namenseingabe
If wsL.Cells(Target.Row, 2) = "" Or wsL.Cells(Target.Row, 5) = "" Then Exit Sub
'letzte ist die Zeilennummer des letzten Automaten, quasi iws die Automatenanzahl
letzte = .Range("B65536").End(xlUp).Row
'wieviele davon sind gerade frei
freie = Application.WorksheetFunction.CountIf(.Range("B2:B" & letzte), "Ja")
If freie = 0 Then
wsL.Cells(Target.Row, 6) = "keiner frei"
Else
For n = 2 To .Range("B65536").End(xlUp).Row
If .Cells(n, 2) = "Ja" Then
wsL.Cells(Target.Row, 6) = .Cells(n, 1)
.Cells(n, 2) = "Nein"
Exit For
End If
Next n
End If
Case 3, 4 'Punkteeingabe
If Target.Value <> 2 Then Exit Sub
.Cells(wsL.Cells(Target.Row, 6) + 1, 2) = "Ja"
If wsL.Cells(Target.Row, 2) <> "" And wsL.Cells(Target.Row, 5) <> "" Then
wsL.Cells(Target.Row, 6) = "beendet an " & wsL.Cells(Target.Row, 6)
End If
'Hier fehlt noch Automatzuweisung an die partien wo "keiner frei" steht
End Select
End With
weiter:
End Sub

Anzeige
AW: Und mit einer zweiten Datei in ...
29.11.2005 17:18:53
Alex
Ja .. so soll das ablaufen !
Bis auf die Kleinigkeit das (in Deinem Beispiel) die Ligen jeweils in einer eigenen
Excel Datei sind und die Automaten auch in einer eigenen Excel Datei sind !
Wenn wir das hinbekommen würde wär das schon super !
AW: Und mit einer zweiten Datei in ...
29.11.2005 19:00:15
Reinhard
Hi Alex,
neuer Versuch, leider noch nicht Fehlerfrei.
Diese datei in Automaten.xls umbenennen: https://www.herber.de/bbs/user/28823.xls
hier ist der Name egal:

Die Datei https://www.herber.de/bbs/user/28824.xls wurde aus Datenschutzgründen gelöscht

Gruß
Reinhard
Anzeige
AW: Und mit einer zweiten Datei in ...
30.11.2005 13:08:35
Alex
GENAU SO !
Das ist toll ... die Bugs müssen halt noch weg, aber im Prinzip ist das genau das was ich brauche !
DANKE DIR !
Meinst Du Du bringst Die Fehler noch weg ?
Kann ich dann auch mit mehreren Excel Dateien auf die Automaten.xls zugreifen und Geräte reservieren ?
Gruß -Alex-

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige