Herbers Excel-Forum - das Archiv

Spielbericht drucken

Bild

Betrifft: Spielbericht drucken
von: Andy Yomi

Geschrieben am: 01.01.2007 10:22:48
Guten Tag,
ich habe ein Problem und hoffe hier eine Lösung zu finden.
Ich habe in einer Tabelle 1 mehrere Sportbegegnungen. z.B. in der Zeile 1
(U13 Peter Meier gegen Max Mustermann) oder in der Zeile 2 (U21 Daniel Müller gegen Jan Freiberg)
und in weiteren Zeilen noch viele andere.
Nun weise ich den Begegungen Spielfelder zu. z.B. in der Zeile 1 in der Zelle H1 das Feld1 (durch ein Pulldownmenü - in der Feld1, Feld2 etc. steht.
Nun das Problem:
Wenn ich das tue, möchte ich, dass diese Begegnung in einen Spielbericht im Tabellenblatt 2 kopiert wird (die einzelnen Parameter aus den Zellen wie Alterklasse, Vorname, Nachname etc.) und der Spielbericht aus dem Drucker kommt. Natürlich muss das in den Spielbericht kopierte aus Zeile 1 bei einer späteren Zuweisung von Zeile 2 (oder anderen) überschrieben werden und ebenfalls gedruckt erscheinen.
Kann mir da jemand helfen??
vielen Dank im Vorfeld
Andy Yomi aus Hamburg
Bild

Betrifft: AW: Spielbericht drucken
von: fcs

Geschrieben am: 02.01.2007 12:49:57
Hallo Andy,
mit folgendem Makro kannst du automatisch die Daten aus der Liste (Tabelle1) in den Spielbericht (Tabelle2) übertragen, wenn das Feld in Spalte H eingetragen wird und den Spielbericht drucken.
Den Code muss du im VBA-Editor unter der Tabelle1 einfügen und den Code bezüglich der Zelladdressen anpassen/ergänzem.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
'Prüfung der Wertänderung in Spalte H ab Zeile 1
If Target.Column = 8 And Target.Row >= 1 Then
Call Spielbericht(Target.Row, Me, ActiveWorkbook.Worksheets("Tabelle2"))
End If
End Sub
Sub Spielbericht(Zeile As Long, BlattListe As Worksheet, BlattBericht As Worksheet)
If MsgBox("Spielbericht drucken?", vbYesNo, "Spielbericht") = vbNo Then Exit Sub
With BlattBericht
'Alt-Daten im Spielbericht löschen
.Range("B2").ClearContents 'Klasse
.Range("E2").ClearContents 'Feld
.Range("A5:C5").ClearContents 'Daten Spieler 1
.Range("E5:G5").ClearContents 'Daten Spieler 2
'Daten aus Liste in Spielbericht übertragen
.Range("B2").Value = BlattListe.Cells(Zeile, "A") 'Klasse
.Range("E2").Value = BlattListe.Cells(Zeile, "H")  'Feld
.Range("A5").Value = BlattListe.Cells(Zeile, "B") 'Name Spieler 1
.Range("B5").Value = BlattListe.Cells(Zeile, "C") 'Vorname Spieler 1
.Range("C5").Value = BlattListe.Cells(Zeile, "D") 'Verein Spieler 1
.Range("E5").Value = BlattListe.Cells(Zeile, "E") 'Name Spieler 2
.Range("F5").Value = BlattListe.Cells(Zeile, "F") 'Vorname Spieler 2
.Range("G5").Value = BlattListe.Cells(Zeile, "G") 'Verein Spieler 2
'      .PrintPreview 'Druck-Vorschau
.PrintOut 'Ausgabe auf Drucker
End With
End Sub

Bild

Betrifft: AW: Spielbericht drucken
von: Andy Yomi

Geschrieben am: 02.01.2007 14:23:10
Hallo Franz,
das klingt sehr gut. Jedoch bin ich nicht sehr gut in VBA. Ich hänge mal die Datei an. Vielleicht kannst Du mir nochmal helfen? Wäre sehr nett.
https://www.herber.de/bbs/user/39318.xls
Die roten Felder der Spielbegegnung 1 in den Zeilen 2 und 3 im Tabellenblatt "Spielnummern" sollen bei einem Auruf des Pulldownmenüs in der Zelle O2 in die entsprechenden roten Felder im Tabellenblatt "Spielbericht" übertragen werden und der dann ausgefüllte Spielbericht gedruckt erscheinen.
Mache ich anschließend die gleiche Aktion für die Spielbegegung 2 in den Zeilen 4 und 5 sollen die entsprechenden Felder wieder in den Spielbericht übertragen und gedruckt werden und damit die vorherigen Zelleneinträge der Spielbegegnung 1 im Tabellenblatt "Spielbericht" überschreiben.
Kannst Du mir dabei helfen?
vielen Dank bis hier hin.
Gruss Andy
Bild

Betrifft: AW: Spielbericht drucken
von: fcs

Geschrieben am: 02.01.2007 15:47:38
Hallo Andy,
hier das entsprechend angepasste Makro, das du im VBA-Editor nach Doppelklick auf "Tabelle5(Spielnummern)" im rechten Fenster einfügen muss.
Falls das Makro auch in der Spalte "Zeit" die Uhrzeit der Eingabe des Feldes eintragen soll (statt der Formel), dann muss du in der entsprechenden Zeile das Kochkomma am Zeilenanfang löschen.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
'Prüfung der Wertänderung in Spalte O ab Zeile 2
If Target.Column = 15 And Target.Row > 1 Then
Call Spielbericht(Target.Row, Me, ActiveWorkbook.Worksheets("Spielbericht"))
End If
End Sub
Sub Spielbericht(Zeile As Long, BlattListe As Worksheet, BlattBericht As Worksheet)
If MsgBox("Spielbericht drucken?", vbYesNo, "Spielbericht") = vbNo Then Exit Sub
With BlattBericht
'Alt-Daten im Spielbericht löschen
.Range("B3:B4").ClearContents 'Klasse, Runde
.Range("D3:D4").ClearContents 'Disziplin,Gruppe
.Range("G2:G4").ClearContents 'Spielnummer, Leistungsklasse, Spiel
.Range("A7:C8").ClearContents 'Daten Team 1
.Range("E7:G8").ClearContents 'Daten Team 2
'Daten aus Liste in Spielbericht übertragen
.Range("G2").Value = BlattListe.Cells(Zeile, "A") 'Spielnummer
.Range("B3").Value = BlattListe.Cells(Zeile, "B") 'Altersklasse
.Range("B4").Value = BlattListe.Cells(Zeile, "E") 'Runde
.Range("D3").Value = BlattListe.Cells(Zeile, "C") 'Disziplin
.Range("D4").Value = BlattListe.Cells(Zeile, "F") 'Gruppe
.Range("G3").Value = BlattListe.Cells(Zeile, "D") 'Leistungsklasse
.Range("G4").Value = BlattListe.Cells(Zeile, "G") 'Spiel
.Range("A7:C7").Value = BlattListe.Cells(Zeile, "H").Range("A1:C1").Value 'Team 1, Spieler 1
.Range("A8:C8").Value = BlattListe.Cells(Zeile + 1, "H").Range("A1:C1").Value 'Team 1, Spieler 2
.Range("E7:G7").Value = BlattListe.Cells(Zeile, "L").Range("A1:C1").Value 'Team 2, Spieler 1
.Range("E8:G8").Value = BlattListe.Cells(Zeile + 1, "L").Range("A1:C1").Value 'Team 2, Spieler 2
'    .PrintPreview 'Druck-Vorschau
.PrintOut 'Ausgabe auf Drucker
End With
'Eingabe-Zeit in Spalte P der Liste eintragen
'  BlattListe.Cells(Zeile, "P").Value = Now - Date
End Sub

Bild

Betrifft: AW: Spielbericht drucken
von: Andy Yomi

Geschrieben am: 02.01.2007 16:40:14
Hallo Franz,
das ist ja der Hammer!! Es funktioniert super gut. Vielen Dank für Deine Hilfe und die gespendete Zeit. Als Excel-Leihe bin ich ganz fasziniert! Nur leider habe ich nicht verstanden, wie Du das mit der Zeit meintest. Ich würde gerne die Zeit der Feldzuweisung in der Zeile P haben. Meine Formel hat den Fehler, dass sich die Zeit ständig aktualisiert.
Ich hatte Dich so verstanden, dass ich das Hochkomma im Feld des Editors entfernen muss.
Hier nochmal das Ende deines VBA Textes:
' .PrintPreview 'Druck-Vorschau
.PrintOut 'Ausgabe auf Drucker
End With
'((((((Dieses dachte ich)))))))Eingabe-Zeit in Spalte P der Liste eintragen
' BlattListe.Cells(Zeile, "P").Value = Now - Date
End Sub
wenn ich das entferne, bekomme ich eine Fehlermeldung.
Was mache ich falsch? und muss ich dann die Zeitformel in den Zellen löschen?
Danke nochmal
Gruss Andy
Bild

Betrifft: AW: Spielbericht drucken
von: fcs
Geschrieben am: 03.01.2007 08:04:51
Hallo Andy,
so
'Eingabe-Zeit in Spalte P der Liste eintragen
BlattListe.Cells(Zeile, "P").Value = Now - Date
End Sub

Gruss
Franz
Bild

Betrifft: AW: Spielbericht drucken
von: Andy Yomi
Geschrieben am: 03.01.2007 13:13:08
Hallo Franz,
jetzt geht es. Dank nochmal.
Gruss aus Hamburg
Andy
 Bild
Excel-Beispiele zum Thema "Spielbericht drucken"
Mehrbereichsauswahl auf eine Seite drucken. Sichtbare Blätter drucken
Automatische Datumformatierung unterdrücken Bestätigung beim Speichern unterdrücken.
Kopfzeile in Buchform drucken In einem Dialog ausgewählte Spalten drucken
Codeblatt mit Rändern drucken Mehrfachauswahl im Hoch- und Querformat drucken
Tabellenblätter in umgekehrter Reihenfolge drucken Alle Dateien eines Verzeichnisses drucken