Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA-Kommentare drucken

47 views
Skip to first unread message

pustl...@gmail.com

unread,
Sep 20, 2016, 3:01:20 AM9/20/16
to
Hallo, ich kenne mich leider gar nicht mit VBA aus und brauche da irgendwie einen "codeschnipsel", um folgendes zu erreichen:

Ich nutze Excel, um Noten für Schüler zu dokumentieren (sie bekommen jeden Tag Noten). Oftmals fällt mir zu den Noten etwas auf, was ich neuerdings in einem Kommentar hinterlege (zu der Note). Jeder Schüler hat eine Spalte. in Zeile 1 ist der Name hinterlegt, in Spalte B das Datum.

Für die Verbalbeurteilungen wäre es unendlich praktisch, wenn ich einen (oder auch mehrere) Schülerspalten markieren könnte und dann dazu die Kommentare ausgedruckt bekäme - natürlich schülerweise und idealerweise mit dem in Spalte B hinterlegten Datum zum Kommentar.

Die Druckfunktion von Excel gibt mir zwar die Möglichkeit, die Kommentare nach den Noten am Ende der Seite ausdrucken zu lassen, aber 1. brauche ich keine Notenliste an dieser Stelle, 2. brauche ich keine Zellenangabe, sondern eher das Datum und 3. sollte das eben pro Schüler ausgedruckt werden und nicht zeilenweise (alle Schüler durcheinander).

Also idealerweise so:
Name des Schülers (Zeile 1), dann alle Kommentare dieser Spalte idealerweise mit dem dazugehörigen Datum in Spalte B. Bei mehreren markierten Spalten dann gerne für alle Spalten (Schüler) hintereinander.


Kann mir da irgendjemand helfen?

Danke schonmal im Voraus, Verena

Claus Busch

unread,
Sep 20, 2016, 3:40:36 AM9/20/16
to
Hallo Verena,
dazu musst du dir ein neues Blatt einrichten und die gewünschten Daten
übernehmen. Danach kannst du dann dieses Blatt ausdrucken.

Markiere die Spalte(n) der Schüler mit Klick in den Spaltenkopf und
führe dann mal folgendes Makro aus (wenn die Drucktabelle nicht auf dem
Blatt "Tabelle2" sein kann, dann bitte im Code anpassen):

Sub KomDruck()
Dim ar As Range, rngC As Range, dest As Range

With Sheets("Tabelle2")
For Each ar In Selection.Areas
Set dest = IIf(.Cells(.Rows.Count, 1).End(xlUp) = "", _
.Range("A1"), .Cells(.Rows.Count, 1).End(xlUp)(2))
dest = ar.Cells(1)
For Each rngC In ar.SpecialCells(xlCellTypeComments)
Set dest = .Cells(.Rows.Count, 1).End(xlUp)(2)
dest = rngC.Comment.Text
dest.Offset(, 1) = rngC.Offset(, 1)
Next
Next
.Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp)) _
.NumberFormat = "dd.MM.yyyy"
End With
End Sub


Mit freundlichen Grüßen
Claus
--
Windows10
Office 2016

pustl...@gmail.com

unread,
Sep 20, 2016, 4:09:00 AM9/20/16
to
Hallo Claus, erstmal danke für die schnelle Antwort!
Ich habe das Makro erfolgreich eingerichtet und grundsätzlich läuft es.

Die Ausgabe ist jedoch noch nicht so wie gewünscht:
- Die Datumsanzeigen sind von Januar 1900
- Die Namen und Kommentare sind irgendwie ziemlich durcheinander ausgegeben, Spalte 1 Name und Kommentare, Spalte 2 weitere Namen und die Datumsanzeigen.Man sieht gar nicht mehr, welcher Kommentar zu welchem Schüler gehört.
- Kann man den Autorennamen ausblenden? (ich muss ja nicht bei jedem Kommentar lesen, dass ich ihn geschrieben habe)

Optimal wäre, wenn es für jede gelesene Spalte (also jeden Schüler) eine eigene Spalte ausgeben würde oder den Namen eines Schülers und darunter die zu ihm gehörigen Kommentare.

Viele Grüße, Verena

Claus Busch

unread,
Sep 20, 2016, 4:26:58 AM9/20/16
to
Hallo Verena,

Am Tue, 20 Sep 2016 01:08:59 -0700 (PDT) schrieb pustl...@gmail.com:

> Die Ausgabe ist jedoch noch nicht so wie gewünscht:
> - Die Datumsanzeigen sind von Januar 1900
> - Die Namen und Kommentare sind irgendwie ziemlich durcheinander ausgegeben, Spalte 1 Name und Kommentare, Spalte 2 weitere Namen und die Datumsanzeigen.Man sieht gar nicht mehr, welcher Kommentar zu welchem Schüler gehört.
> - Kann man den Autorennamen ausblenden? (ich muss ja nicht bei jedem Kommentar lesen, dass ich ihn geschrieben habe)

bei mir sind die Datumswerte korrekt und es ist auch kein Durcheinander
bei der Ausgabe. Unter dem Namen kommen die Kommentare mit dem Datum
rechts daneben. Sind alle Kommentare zu diesem Namen aufgelistet, kommt
der nächste Name, falls ausgewählt.
Kontrolliere mal deine Datumswerte, ob sie das korrekte Format haben und
nicht eventuell als Text vorliegen.
Stelle mal eine Mappe zur Verfügung mit vorhandenen Daten und wie du dir
das in der neuen Tabelle vorstellst.

pustl...@gmail.com

unread,
Sep 20, 2016, 5:15:10 AM9/20/16
to
Ich habe nun eines der Blätter mal herausgenommen und anonymisiert (sowie die Unterrichtsinhalte entfernt).
Interessanterweise ist die Ausgabe nun ETWAS anders als im Original (es wird nur 1 Schüler ausgegeben, dafür stehen die anderen Namen nicht in der 2. Spalte, dennoch noch nicht so, wie gedacht

https://www.dropbox.com/s/zigz9sdhc0t1d0w/excel-kommentaretest.xlsx?dl=0

Claus Busch

unread,
Sep 20, 2016, 8:10:20 AM9/20/16
to
Hallo Verena,
lade dir mal hier:
https://onedrive.live.com/redir?resid=9378aab6121822a3!326&authkey=!AApmk7UTBA7IuAM&ithint=folder%2cxlsm
deine Mappe "excel-kommentaretest" herunter.

pustl...@gmail.com

unread,
Sep 20, 2016, 8:53:59 AM9/20/16
to
Das sieht brauchbar aus in der Datei. Beim Übertragen habe ich das Problem, dass es (viele!) verschiedene sheets gibt, für die ich gerne die Auswahl genutzt hätte. Also nicht nur "Englisch", sondern Englisch für verschiedene Klassen und auch andere Fächer.

Wie kann ich das "Verallgemeinern", so dass das sheet angesprochen wird, in dem ich ausgewählt habe?

Danke für all Deine Mühe! Verena

Claus Busch

unread,
Sep 20, 2016, 9:01:25 AM9/20/16
to
Hallo Verena,

Am Tue, 20 Sep 2016 05:53:58 -0700 (PDT) schrieb pustl...@gmail.com:

> Das sieht brauchbar aus in der Datei. Beim Übertragen habe ich das Problem, dass es (viele!) verschiedene sheets gibt, für die ich gerne die Auswahl genutzt hätte. Also nicht nur "Englisch", sondern Englisch für verschiedene Klassen und auch andere Fächer.
>
> Wie kann ich das "Verallgemeinern", so dass das sheet angesprochen wird, in dem ich ausgewählt habe?

lösche aus dem Code
With Sheets("Englisch") und das zugehörige
End With heraus.
Du musst nur das Makro immer von dem Blatt mit der Selektion starten.

pustl...@gmail.com

unread,
Sep 20, 2016, 11:32:20 AM9/20/16
to
okay, dann hat er noch ein Problem mit dieser Zeile
.Cells(i, LCol + 1) = CDate(Sheets("Englisch").Cells(i + 1, "T"))

Claus Busch

unread,
Sep 20, 2016, 12:11:38 PM9/20/16
to
Hallo,

Am Tue, 20 Sep 2016 08:32:08 -0700 (PDT) schrieb pustl...@gmail.com:

> okay, dann hat er noch ein Problem mit dieser Zeile
> .Cells(i, LCol + 1) = CDate(Sheets("Englisch").Cells(i + 1, "T"))

Code ist geändert. Bitte nochmals herunterladen.

pustl...@gmail.com

unread,
Sep 20, 2016, 2:15:40 PM9/20/16
to
okay, Fehlermeldung beseitigt, zu ungunsten der Datumsanzeige, die nunmehr nur noch 12.00 AM anzeigt.

*seufz*, ich hoffe, ich nerve nicht zu sehr, ich wünschte, ich könnte es selbst beheben, aber dem ist leider nicht so...

Claus Busch

unread,
Sep 20, 2016, 2:23:05 PM9/20/16
to
Hallo Verona,

Am Tue, 20 Sep 2016 11:15:39 -0700 (PDT) schrieb pustl...@gmail.com:

> okay, Fehlermeldung beseitigt, zu ungunsten der Datumsanzeige, die nunmehr nur noch 12.00 AM anzeigt.
>
> *seufz*, ich hoffe, ich nerve nicht zu sehr, ich wünschte, ich könnte es selbst beheben, aber dem ist leider nicht so...

wenn du in meiner Mappe das Makro laufen lässt, ist doch alles korrekt.
Also kann es nur an deinem Tabellenlayout liegen.
12:00 AM bedeutet Mitternacht und entspricht dem Wert 0. Sind deine
Datumswerte nicht in Spalte T?
Dann ändere in dieser Zeile den Spaltenbuchstaben:
.Cells(i, LCol + 1) = CDate(Cells(i + 1, "T"))

pustl...@gmail.com

unread,
Sep 26, 2016, 2:45:19 AM9/26/16
to
Hallo Claus, nun war ich 5 Tage auf einem Schulkongress und die Vorbereitungen gestalteten sich ab einem gewissen Punkt sehr gedrängt, so dass ich nicht mehr antworten konnte.
Der Spaltenverweis war tatsächlich das Problem (deshalb habe ich das Datum auch jeweils 2x drin, einmal in B und einmal "hinten", wobei "hinten" natürlich abhängig ist von der Anzahl der Schüler und deshalb variabel ist.

Herzlichen Dank für all Deine Mühe. Das funktioniert jetzt super und ich bin sehr zufrieden. Es ist qualitativ für die Zeugnisse eine tolle Verbesserung.

Liebe Grüße, Verena (nicht Verona ;-) )
0 new messages