Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn Datum kleiner nicht hochzählen.

Wenn Datum kleiner nicht hochzählen.
18.11.2007 17:08:00
Heinz
Hallo Leute
Der untere Code besagt wenn das heutige Monat "November" in Zelle F1, und man möchte nun eine neue Liste für "Dezember" erstellen dann Meldung "Sie dürfen erst ab Dezember 2007 ein neues Blatt erstellen"
Es hat den Grund das man nicht schon im voraus für mehrere Monate die Stundenlisten erstellen kann.
Man dürfte erst ab 1.Dezember eine neue Liste erstellen dürfen.
In Zelle A6 stimmt der Code er bleibt stehen,damit man nicht schon im November eine Liste für Dezember erstellen kann.
Aber in Zelle F1 wird trotzdem immer um ein Monat hochgezählt, sobald ich auf "Neues Monat anlegen klicke.
Habe zum besseren Verständniss die Datei mal hochgeladen.
Könnte mir bitte nochmals jemand weiterhelfen ?
Gruß Heinz
https://www.herber.de/bbs/user/47842.xls
Option Explicit

Sub cp_wbk()
Dim MyShape As Shape, strPfaduDatei As String
Application.ScreenUpdating = False
With ThisWorkbook
strPfaduDatei = .Path & "\" & .Sheets(1).Range("B3") & _
" " & Format(.Sheets(1).Range("A6"), "mmmm YYYY")
.Sheets(1).Copy
End With
For Each MyShape In ActiveSheet.Shapes
If MyShape.AlternativeText  "Neues Monat anlegen" Then MyShape.Delete
Next
ActiveWorkbook.SaveAs strPfaduDatei
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub



Sub WochenendeWeg()
If MsgBox("Wollen Sie ein neues Monat erstellen ?", vbQuestion + vbYesNo, _
" Nachfrage Neues Monat erstellen !") = vbNo Then Exit Sub
Call cp_wbk
'-------Monat um 1 Hochzählen----------
'In G1 steht jetzt eine Formel, die nicht mehr geändert werden muss,
'daher wird nur noch F1 geändert.
Range("F1") = DateAdd("m", 1, Range("F1"))
'Blattname neu bestimmen
ActiveSheet.Name = Range("G1")
Dim datStart As Date, datEnd As Date
Dim lDay As Long
Dim iRow As Integer
Dim Text As String ''
Dim a, datum
Dim quellwks As Worksheet
Dim zielwks As Worksheet
datStart = Range("F1").Value ' in der Zelle F1 befindet sich das Anfangsdatum
datEnd = Range("H1").Value   ' in der Zelle H1 befindet sich das Enddatum
iRow = 6 ' Hiermit wird gesagt, dass in Zeile 6 angefangen werden soll
Set quellwks = Sheets(1)
datum = Date
a = quellwks.Cells(1, 6).Value ' + 1
Dim Titel As String ''
Titel = " * - * - * - * - * - * - * - * - * Meldung * - * - * - * - * - * - * - * " ''
If a > datum Then
Text = "Sie dürfen erst ein neues Blatt ab " & a & " einfügen." ''
MsgBox Text, vbCritical, Titel
Exit Sub
End If
'Bevor die Daten des neuen Monats eingetragen werden, alte Daten löschen.
'Anschließend Zahlenformate in den Spalten A und B wiederherstellen
'Range("A" & iRow & ":A100").EntireRow.Delete
Range("A6:A42").EntireRow.ClearContents ' Franz Zeile geändert. Statt löschen der Zeilen  _
werden nur Inhalte gelöscht
Range("A6:A42").EntireRow.Interior.ColorIndex = xlColorIndexNone 'entfernt Farbe aus  _
Zellbereich
Range("A6:A42").NumberFormatLocal = "TT.MM.JJJJ"
Range("B6:B42").NumberFormatLocal = "TTT"
For lDay = datStart To datEnd
Cells(iRow, 1) = lDay
Cells(iRow, 2) = lDay
iRow = iRow + 1
iRow = iRow - (Weekday(lDay, 2) = 7)
Next

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Datum kleiner nicht hochzählen.
18.11.2007 18:45:58
Gerd
Hallo Heinz,
falls das Systemdatum des PC's verstellt wird oder der Wert in F1 manuell geändert wird, geht 's trotzdem :-)

Sub WochenendeWeg()
If MsgBox("Wollen Sie ein neues Monat erstellen ?", vbQuestion + vbYesNo, _
" Nachfrage Neues Monat erstellen !") = vbNo Then Exit Sub
If Month(Date) 


Gruß Gerd

AW: Wenn Datum kleiner nicht hochzählen.
18.11.2007 19:00:00
Heinz
Hallo Gerd
Recht herzlichen Dank,für Deine Großartige Hilfe.
Gruß Heinz

AW: Korrektur
18.11.2007 19:52:10
Gerd
Hallo Heinz,
sorry, damit überhaupt noch etwas läuft, besser so. :-)
If Date < DateSerial(Year(Range("F1")), Month(Range("F1")) + 1, 1) Then
MsgBox "Künftiger Monat geht noch nicht !", vbOKOnly + vbQuestion: Exit Sub
End If
Gruß Gerd

Anzeige
AW: Korrektur
18.11.2007 19:58:00
Heinz
Hallo Gerd
Läuft jetzt SUPER Recht herzlichen DANK .
PS: Bin gerade am testen denn Sheets1 mit Werten und Formaten aber ohne Formel und Makro im Tabellenblatt zu kopieren.
Hättest Du da eventuell auch eine Idee.
Danke & Gruß Heinz

AW: Kopieren, aber wie?
18.11.2007 21:23:15
Gerd
Hallo Heinz,
nachdem ich dein Sheet1 etwas beguckt habe, komme ich zum Schluss, dass
ganz ohne Formeln in eine neue Datei kopieren wohl nicht sehr sinnvoll sein.
Oder ?
Gruß Gerd

AW: Wenn Datum kleiner nicht hochzählen.
19.11.2007 11:26:00
Heinz
Hallo Gerd
Es geht darum das der untere Code nicht mitkopiert wird.
Kann man diesen Code eventuell in ein Modul packen.So ähnlich wie mit Sheets(1)
Danke & Gruß Heinz
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With UserForm3
.TextBox1.ControlSource = Target.Address
.Show
End With
Cancel = True
End Sub


Anzeige
AW: Kopieren ohne ?
19.11.2007 20:22:00
Gerd
Hallo Heinz,
ist dies die einzige Prozedur in dem Tabellenblatt-Modul, das mitkopiert wird ?
Gruß Gerd

AW: Kopieren ohne ?
20.11.2007 09:29:04
Heinz
Hallo Gerd
Bis jetzt habe ich nur den einen Code im Tab.Blatt.
Es kommen schon noch andere Codes in das Tab.Blatt,die sollten aber dann mitkopiert werden.
Gruß Heinz

AW: Kopieren ohne ?
21.11.2007 00:22:00
Gerd
Hallo Heinz,
den Code der Ereignisprozedur musst Du im Tabellenblatt-Modul der Basisdatei belassen.
In einem Standardmodul läuft sie nicht.
Die Prozedur, die in der neuen Datei im Tabellenblatt-Modul nicht drin sein soll, muss per Code
entfernt werden. (Text in weglassen!)
Sub cp_wbk()
Dim MyShape As Shape, strPfaduDatei As String
'-----------------------------------------------------
Dim lngCt As Long, lngErste As Long, lngLetzte As Long
'-----------------------------------------------------
Application.ScreenUpdating = False
With ThisWorkbook
strPfaduDatei = .Path & "\" & .Sheets(1).Range("B3") & _
" " & Format(.Sheets(1).Range("A6"), "mmmm YYYY")
.Sheets(1).Copy
End With
'----------------------------------------------------------------
With ActiveWorkbook.VBProject
With .VBComponents(ActiveWorkbook.Sheets(1).CodeName).Codemodule
For lngCt = 1 To .CountOfLines
If .Lines(lngCt, 1) = _
"</p><pre>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" Then
lngErste = lngCt
End If
If lngErste > 0 Then
If .Lines(lngCt, 1) = "End Sub</pre><p>" Then
lngLetzte = lngCt
Exit For
End If
End If
Next
.DeleteLines lngErste, lngLetzte - lngErste + 1
End With
End With
'-------------------------------------------------------------
For Each MyShape In ActiveSheet.Shapes
If MyShape.AlternativeText <> "Neues Monat anlegen" Then MyShape.Delete
Next
ActiveWorkbook.SaveAs strPfaduDatei
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub</pre><p>
Gruß Gerd

Anzeige
AW: Kopieren ohne ?
21.11.2007 07:08:00
Heinz
Hallo Gerd
Danke erstmals für Deine Ausdauer für mein Problem
Habe Deinen Code eingefügt.
Es wird zwar ein neues Blatt angelegt aber in folge kommt dann in der Zeile
"With ActiveWorkbook.VBProject" Ein Fehler Nr.1004
Könntest Du mir bitte dazu nochmals helfen.
Habe die Datei mit dem neuen Code hochgeladen.
Gruß Heinz

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


AW: Kopieren ohne ?
21.11.2007 23:25:09
Gerd
Hallo Heinz,
wenn ich an den beiden Stellen im Code noch das Forenscript dieser Art '...>...>'
herauslösche, dann laufen bei mir die beiden Prozeduren fehlerfrei durch.
Im VBA-Editor sind bei mir unter Extras-Verweise angehakt:
Visual Basic for Applications
Microsoft Excel 9.0 Object Library
OLE Automation
Microsoft Foms 2.0 Object Library
Schaue ggf. auch mal da bei deinem Rechner nach.
Gruß Gerd

Anzeige
AW: Kopieren ohne ?
21.11.2007 23:50:29
Heinz
Hallo Gerd
Habe Visual Basic for Applications und
OLE Automation
Microsoft Foms 2.0 Object Library
angehackt.
Nur bei "Microsoft Excel 9.0 Object Library" steht bei mir "Microsoft Excel 11.0 Object Library"
Ist aber egal oder ?
Gruß Heinz

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige