MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 11.08.2007, 19:36   #1
Franky_der_Terraner
Neuer Benutzer
Neuer Benutzer
Standard VBA - Datum hochzählen und ausdrucken

Hallo zusammen,
ich bin seit einiger Zeit auf der Suche nach einer geeigneten Makro-Lösung für folgende Aufgabe:

Ich habe ein Tabellenblatt in Excel, welches ich jeden Monat neu ausdrucken muss. In der Zelle A1 steht das Datum. Also z.B. der 01.09.2007. Mein Arbeitsablauf sieht folgendermaßen aus:

Datum in Zelle A1 schreiben (01.09.2007), Blatt ausdrucken.
A1 anklicken 02.09.2007 reinschreiben, Blatt ausdrucken.
A1 anklicken 03.09.2007 reinschreiben, Blatt ausdrucken usw...

Das ganze Spiel einmal durch für den ganzen Monat außer die Wochenenden. Das währe doch was für ein schönes Makro, oder? Dummerweise bin ich nicht fit genug in dieser Materie, um mir selbst ein Makro zu bauen. Ich hoffe aber hier auf Hilfe.

By the way... Ich möchte VBA nach und nach lernen und suche ein geeignetes Lehrbuch. Die meisten Bücher die ich mir ansehe, beschreiben sehr schön irgendwelche Aufgaben und Lösungen die man abtippen kann, aber praktisch keines erklärt mir welche Befehle ich für welche Aufgabe verwenden muss und in welcher Reihenfolge ich diese schreiben muss. Wann kommt ein Punkt, wann eine Klammer usw... Erwarte ich zuviel, oder habe ich nur schlechten Zugang zu Programmiersprachen? Für den einen oder anderen Buchtip währe ich echt dankbar.

Vielen Dank
Frank
Franky_der_Terraner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.08.2007, 20:32   #2
R J
MOF Meister
MOF Meister
Standard

Hi Frank,

hier das Makro:

Code:

Option Explicit

Sub Druck()
Dim x As Byte

For x = 1 To 31
    Range("A1") = Format(x & "." & Month(Date) & "." & Year(Date), "dd.mm.yyyy")
    If Weekday(Range("A1"), vbSaturday) > 2 And Month(Range("A1")) = Month(Date) Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next x
    
End Sub

__________________

Ciao, Ralf

Auf, zum Markplatz der Ideen!
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.


R J ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.08.2007, 22:09   #3
Franky_der_Terraner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo RJ,
cool, vielen Dank. Nur noch eine Kleinigkeit. Was müsste ich am Makro ändern, damit im Feld A1 nicht nur 01.08.2007 steht, sondern auch der Wochentag, also Mittwoch, 01.08.2007?

LG Frank
Franky_der_Terraner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.08.2007, 22:13   #4
jinx
MS-Office-Forum Team MS-Office-Forum Team
Standard

Moin, Frank,

die Formatanweisung entsprechend ergänzen - statt

Code:

Format(x & "." & Month(Date) & "." & Year(Date), "dd.mm.yyyy")
Code:

Format(x & "." & Month(Date) & "." & Year(Date), "DDDD DD.MM.YYYY")

__________________

cu
jinx


per 31.12.2010 ausgeschiedener User und ehemaliger Excel-

Folgende Tools werden zur optischen Aufbereitung eingesetzt: Code Converter; Excel Jeanie Html
Für die allgemeinen Hinweise: Netiquette; Fragen und Antworten in Foren

eingesetzte Betriebssysteme: XP Home, XP Media Center Edition, XP Professional, Vista Ultimate, 7/Seven
verwendete Programme: Excel97 SR-2, Office 2000 SP-3, Office2002/XP SP-3, Office 2003 Professional SP-3, Office 2007 Home & Student SP-3, Office 2007 Professional SP-3
jinx ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.08.2007, 22:24   #5
Franky_der_Terraner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Super Forum.

Danke
Frank
Franky_der_Terraner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2007, 10:00   #6
Franky_der_Terraner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Moin nochmal,
ich habe jetzt den Korrekturvorschlag von jinx durchgeführt. Wenn ich das Makro ablaufen lasse, bekomme ich folgende Fehlermeldung: Laufzeitfehler 13. Typen unverträglich. Außerdem ist die Zeile If Weekday(Range("A1")... im Debugmodus Gelb unterlegt.

Gruß Frank
Franky_der_Terraner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2007, 11:18   #7
ergo1
MOF User
MOF User
Standard

Hi

Ändere den Code wie folgt, dann klappt's

Code:

Code:
Sub Druck()
Dim x As Byte
Dim datDatum As Date
 
For x = 1 To 31
    datDatum = Format(x & "." & Month(Date) & "." & Year(Date), "dd.mm.yyyy")
    Range("A1") = Format(datDatum, "dddd dd.mm.yyyy")
    If Weekday(datDatum, vbSaturday) > 2 And Month(datDatum) = Month(Date) Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next x
 
End Sub
Code eingefügt mit dem MOF Code Converter

__________________

Gruss Edi (ergo1)



Probleme kann man niemals mit derselben Denkweise lösen,
durch die sie entstanden sind. (Albert Einstein 1879-1955)

____________________________________________________________________
Wenn das Thema abgeschlossen ist, bitte den Thread als erledigt kennzeichnen!
ergo1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2007, 11:32   #8
jinx
MS-Office-Forum Team MS-Office-Forum Team
Standard

Moin, Frank,

kannst Du bitte einmal die geänderte Version ausptobieren:

Code:

Option Explicit

Sub Druck()
Dim bytTag As Byte

For bytTag = 1 To 31
  Range("A1") = Format(DateSerial(Year(Date), Month(Date), bytTag), "DD.MM.YYYY")
  If Weekday(Range("A1"), vbSaturday) > 2 And Month(Range("A1")) = Month(Date) Then
    Range("A1").Value = Format(Range("A1").Value, "DDDD DD.MM.YYYY")
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
  End If
Next bytTag
    
End Sub
Sollte das auch zu einer Fehlermeldung führen (bei mir unter Excel97 und Excel2000 kommt keine), bitte Angabe der verwendeten Version und die Mappe als Anhang, wenn möglich.

Ergebnis unter Excel97/2000 des anderen Codes:

Tabelle1
 A
1Samstag 25.04.2398
212.08.2007
Formeln der Tabelle
A2 : =HEUTE()
 

__________________

cu
jinx


per 31.12.2010 ausgeschiedener User und ehemaliger Excel-

Folgende Tools werden zur optischen Aufbereitung eingesetzt: Code Converter; Excel Jeanie Html
Für die allgemeinen Hinweise: Netiquette; Fragen und Antworten in Foren

eingesetzte Betriebssysteme: XP Home, XP Media Center Edition, XP Professional, Vista Ultimate, 7/Seven
verwendete Programme: Excel97 SR-2, Office 2000 SP-3, Office2002/XP SP-3, Office 2003 Professional SP-3, Office 2007 Home & Student SP-3, Office 2007 Professional SP-3

Geändert von jinx (12.08.2007 um 11:34 Uhr).
jinx ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2007, 12:42   #9
Franky_der_Terraner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo jinx, hallo ergo1,
das isses. Beide Möglichkeiten funktioniert perfekt. Vielen Dank.

Gruß Frank

Geändert von Franky_der_Terraner (12.08.2007 um 12:49 Uhr).
Franky_der_Terraner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.08.2007, 13:31   #10
jinx
MS-Office-Forum Team MS-Office-Forum Team
Standard

Moin, Frank,

mit dieser Variante sollte es auch gehen - weil hier ein für Excel erkennbares Datum in die Zelle eingeben und nur die Darstellung verändert wird (beim Format-Befehl kommt Text in die Zelle):

Code:

Option Explicit

Sub Druck()
Dim bytTag As Byte

For bytTag = 1 To 31
  With Range("A1")
    .Value = DateSerial(Year(Date), Month(Date), bytTag)
    .NumberFormat = "DDDD DD.MM.YYY"
    If WeekDay(.Value, vbSaturday) > 2 And Month(.Value) = Month(Date) Then _
      ActiveWindow.SelectedSheets.PrintOut Copies:=1
  End With
Next bytTag
    
End Sub

__________________

cu
jinx


per 31.12.2010 ausgeschiedener User und ehemaliger Excel-

Folgende Tools werden zur optischen Aufbereitung eingesetzt: Code Converter; Excel Jeanie Html
Für die allgemeinen Hinweise: Netiquette; Fragen und Antworten in Foren

eingesetzte Betriebssysteme: XP Home, XP Media Center Edition, XP Professional, Vista Ultimate, 7/Seven
verwendete Programme: Excel97 SR-2, Office 2000 SP-3, Office2002/XP SP-3, Office 2003 Professional SP-3, Office 2007 Home & Student SP-3, Office 2007 Professional SP-3

Geändert von jinx (12.08.2007 um 13:36 Uhr).
jinx ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2017, 17:51   #11
charlie48
MOF User
MOF User
Standard

Hallo Ecxel zusammen
funktioniert dies auch für alle Tage des Monat bzw. kann man das auch aufs ganze Jahr anwenden?
Danke schon mal für die Antworten.

__________________

Gruß Charlie48
charlie48 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.07.2017, 19:46   #12
charlie48
MOF User
MOF User
Standard

Hallo zusammen
funktioniert dies auch für alle Tage des Monat bzw. kann man das auch aufs ganze Jahr anwenden?
Danke schon mal für die Antworten.

__________________

Gruß Charlie48
charlie48 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.07.2017, 19:27   #13
charlie48
MOF User
MOF User
Standard

Hallo Ralf
funktioniert dies auch für alle Tage des Monat bzw. kann man das auch aufs ganze Jahr anwenden?
Danke schon mal für die Antwort.

__________________

Gruß Charlie48
charlie48 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.09.2017, 09:42   #14
charlie48
MOF User
MOF User
Standard Datum hochzählen und ausdrucken

Hallo Excelgemeinde
bräuchte für dieses Makro eure Hilfe
wenn ich dieses Makro nehme und als Startdatum den 01.10.2017 in E1 eingebe und dann das Makro laufen lasse ändert das Makro erst das Datum zu 01.09.2017 warum? und läuft dann bis zum Ende problemlos durch.
Mache ich etwas falsch?

__________________

Gruß Charlie48
charlie48 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.