Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1276to1280
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

msgbox ausdrucken?

msgbox ausdrucken?
Hans
Hallo Leute,
hab mir hier aus dem Forum eine Abfrage zusammengebastelt in der ich Geburtstage berechnen und mir eine msgbox anzeigen lase. Meine Frage kann ich die Msgbox irgendwie ausdrucken?
Hier der Code:

Sub Geburtstag()
Dim SPGeb%, SpNam%, SPVornam%, SPSchi%, Wer$, AltTag%, AltWo%, AltMo%, Alter%, RR&, TB4, i&,  _
Geb As Date
On Error GoTo Fehler
'* Start anpassen********
Set TB4 = Sheets("Daten Mitarbeiter") 'aus bestimmtem Blatt
SPTit = 1    'Spalte A mit Titel
SpNam = 2    'Spalte B mit Name
SPVornam = 3 'Spalte C mit Vorname
SPSchi = 4   'Spalte D mit Schicht
SPGeb = 5    'Spalte E mit Geburtstag
'* Ende anpassen **********
RR = TB4.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes
For i = 2 To RR
Geb = TB4.Cells(i, SPGeb)
Tit = TB4.Cells(i, SPTit)
Vorna = TB4.Cells(i, SPVornam)
Nam = TB4.Cells(i, SpNam)
If DateSerial(Year(Date), Month(Geb), Day(Geb)) = Date Then
Wer = Tit & " " & Vorna & " " & Nam
AltTag = DateDiff("d", Geb, Date)
AltWo = DateDiff("w", Geb, Date)
AltMo = DateDiff("m", Geb, Date)
Alter = DateDiff("yyyy", Geb, Date, vbMonday, vbFirstFourDays)
MsgBox "Heute hat " & Wer & " " & " Geburtstag, " & _
"" + vbNewLine & _
"" + vbNewLine & _
"er wird " & DateDiff("s", Geb, Now) & " Sekunden alt, " & "das sind " &  _
DateDiff("n", Geb, Now) & " Minuten," & _
"" + vbNewLine & _
"" + vbNewLine & _
"also " & DateDiff("h", Geb, Now) & " Stunden, " & "das entspricht " &  _
AltTag & " Tage," & _
"" + vbNewLine & _
"" + vbNewLine & _
"ergo " & AltWo & " Wochen, " & "entsprechend " & AltMo & " Monate." & _
"" + vbNewLine & _
"" + vbNewLine & _
"Kurzum er wird heute " & Alter & " Jahre" & _
"" + vbNewLine & _
"" + vbNewLine & _
"Alles Gute, viel Glück, Gesundheit und ein noch langes , sorgenfreies  _
Leben !!!", vbOKOnly + vbInformation, "Herzlichen Glückwunsch zum Geburtstag"
End If
Next
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Kann man das irgendwie erweitern zum Ausdrucken, oder geht das gar net?
Grüße und Danke schon mal fürs lesen.
Hans

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: msgbox ausdrucken?
09.09.2012 11:26:11
Hajo_Zi
Hallo Hans,
benutze das Programm Snipping Tool vom Betriebssytem. Damit kannst Du schnell ein Bild erstellen.

Screenshot von MSGBOX->TemporäresBlatt->drucken
09.09.2012 12:47:34
MSGBOX->TemporäresBlatt->drucken
HAllo HAns
Eine MSGBOX direkt an den Drucker schicken ?
Keine Ahnung ob das geht.
Du kannst aber einen Screenshot der Box machen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Dim hEvent

Private Declare Function SetTimer Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long) As Long

Private Declare Sub keybd_event Lib "user32.dll" ( _
    ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)


Public Sub Aufruf()
    EnableTimer 500
    MsgBox "Test"
End Sub



Public Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, _
        ByVal wParam As Long, ByVal lParam As Long)

    screenshot
    'Jetzt liegt die Msgbox in der Zwischenablage.
    DisableTimer
End Sub


Public Function EnableTimer(ByVal msInterval As Long)
    If hEvent <> 0 Then Exit Function
    hEvent = SetTimer(0&, 0&, msInterval, AddressOf TimerProc)
End Function


Public Function DisableTimer()
    If hEvent = 0 Then Exit Function
    KillTimer 0&, hEvent
    hEvent = 0
End Function


Public Sub screenshot()
    keybd_event &H2C, 1, 0, 0
End Sub


Den könnte man jetzt in ein Temporäres Blatt einfügen und das dann drucken.
ransi

Anzeige
AW: Screenshot von MSGBOX->TemporäresBlatt->drucken
09.09.2012 14:02:34
MSGBOX->TemporäresBlatt->drucken
Hi,
danke für die Antworten, nur hab ich vergessen, das ich die Datei nicht allein nutze und die Kenntnisse im allgemeinen sehr unterschiedlich sind. Ich dachte man könnte das so machen das man gefragt wird Drucken Ja / Nein und je nachdem man Antworte wirds dann gedruckt oder eben nicht.
Sorry für die ungenaue Anfrage. Habt Ihr villeicht ne Ahnung wie man den Vorschlag von ransi da irgendwie mit einbauen kann.
Gruß Hans

AW: Screenshot von MSGBOX->TemporäresBlatt->drucken
09.09.2012 16:34:33
MSGBOX->TemporäresBlatt->drucken
Hallo Hans,
übertrage den Glückwunschtext doch in ein Tabellenblatt.
Mit entsprechenden Formatierungen wird das auch etwas gefälliger als die Msgbox.
Wenn du es sehr hübsch gestalten willst, dann lege in der Datei ein Musterblatt an, in das die Werte eingetragen werden sollen. Dann muss mein Makro etwas angepasst werden (Objekte setzen und Formatierungen weglassen).
Hier in der Textdatei ein Beispielcode. Hier temporär ein Tabelleblatt erstellt und auf Wunsch gedruckt. Im Code wird zum Papiersparen die Druckvorschau angezeigt. Das kannst du aber anpassen, wenn alles funktioniert.
https://www.herber.de/bbs/user/81768.txt
Falls du auch weibliche Geburtstagskinder in deiner Liste hast, dann solltest du den Text ein wenig anpassen (neutralisieren oder 2-sprachig).
Gruß
Franz

Anzeige
Tausend Dank, so mach ichs.
10.09.2012 20:08:26
Hans

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige