Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 45

Thema: Exceltabelle am Monatsende automatisch speichern, schließen und leere Vorlage öffnen

  1. #11
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und - wie sieht das in VBA aus, was du aktuell schon hast ?

  2. #12
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    zum ausführen zu einem bestimmten zeitpunkt kannst du das objekt OnTime benutzen
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #13
    Registriert seit
    17.09.2003
    Beiträge
    31
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Hallo,

    ich würde das z.B. so lösen:

    Code:
    Private Sub Workbook_Open()
        Dim datum As String
        Const pfad As String = "C:\Zielordner\"
        
        datum = Format(Now, "mmmm")
        
        If Dir(pfad & datum & "*") = "" Then
            ThisWorkbook.SaveAs pfad & datum & ".xls"
            Workbooks.Open pfad & "Vorlage.xls"
            ThisWorkbook.Close False
        End If
    
    End Sub
    Falls es nicht beim Öffnen passieren soll, kannst Du auch diese beiden
    Subs nehmen:
    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    End Sub
    oder

    Code:
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    End Sub

  4. Folgender Benutzer sagt Danke zu pm für den nützlichen Beitrag:

    PHW (02.11.2010)

  5. #14
    PHW ist offline Benutzer
    Themenstarter
    Registriert seit
    02.08.2010
    Beiträge
    32
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Dankeschön, das sieht genau nach dem aus was ich brauche!

    Mein Stand ist gerade folgender:

    Code:
    Sub Test()
    
    
        Dim aktDate As Date   'aktuelles Datum
        Dim endDate As Date  'Monatsende
          
        aktDate = Day(Now()) & "." & Month(Now()) & "." & Year(Now())
        
        endDate = DateSerial(Year(aktDate), Month(aktDate) + 1, 1) - 1
         
        If (aktDate = endDate) Then
        ActiveWorkbook.SaveAs Filename:="C:\Users\Administrator\Desktop\Verfügbarkeit_" & endDate & ".xlsm"
        
        End If
        
    End Sub
    Also das speichern funktioniert, allerdings müsste ich so ja dann das Problem haben, dass es eben 24h immer wiederholt wird?
    das aktDate= endDate ist ja 24h "true"...aber vielleicht kann ich das ja mit der Uhrzeit noch erschlagen!

  6. #15
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von PHW Beitrag anzeigen
    Dankeschön, das sieht genau nach dem aus was ich brauche!

    Mein Stand ist gerade folgender:

    Code:
    Sub Test()
    
    
        Dim aktDate As Date   'aktuelles Datum
        Dim endDate As Date  'Monatsende
          
        aktDate = Day(Now()) & "." & Month(Now()) & "." & Year(Now())
        
        endDate = DateSerial(Year(aktDate), Month(aktDate) + 1, 1) - 1
         
        If (aktDate = endDate) Then
        ActiveWorkbook.SaveAs Filename:="C:\Users\Administrator\Desktop\Verfügbarkeit_" & endDate & ".xlsm"
        
        End If
        
    End Sub
    Also das speichern funktioniert, allerdings müsste ich so ja dann das Problem haben, dass es eben 24h immer wiederholt wird?
    das aktDate= endDate ist ja 24h "true"...aber vielleicht kann ich das ja mit der Uhrzeit noch erschlagen!

    Application.OnTime now + timevalue("24:00:00"), "test"
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  7. #16
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Zitat Zitat von PHW Beitrag anzeigen
    Also das speichern funktioniert, allerdings müsste ich so ja dann das Problem haben, dass es eben 24h immer wiederholt wird?
    das aktDate= endDate ist ja 24h "true"...aber vielleicht kann ich das ja mit der Uhrzeit noch erschlagen!
    ... wie ich schon geschrieben habe ... ich würde mir irgendwo an nicht relevanter Stelle im Sheet das ablegen, dass ich schon gearbeitet habe und dies als zusätzliche Bedingung mit einbauen - vielleicht so :
    Code:
    If (aktDate = endDate) and ([A1]=0) Then
        ActiveWorkbook.SaveAs ...
        [A1]=1
    else
       [A1]=0
    End If
    Gruß
    Larry

  8. #17
    Registriert seit
    17.09.2003
    Beiträge
    31
    Danke
    1
    Erhielt 5 Danke für 4 Beiträge

    Standard

    Wie wäre es damit?

    Code:
    Private Sub Workbook_Open()
        Dim aktDate As Date   'aktuelles Datum
        Dim endDate As Date  'Monatsende
        Const pfad As String = "C:\Users\Administrator\Desktop\Verfügbarkeit_"
          
        aktDate = Format(Now(), "dd.mm.yyyy")
        
        endDate = DateSerial(Year(aktDate), Month(aktDate) + 1, 1) - 1
         
        If Dir(pfad & endDate & "*") = "" Then
            If (aktDate = endDate) Then
                ActiveWorkbook.SaveAs Filename:=pfad & endDate & ".xlsm"
            End If
        End If
    End Sub

  9. #18
    PHW ist offline Benutzer
    Themenstarter
    Registriert seit
    02.08.2010
    Beiträge
    32
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Top Sache Vielen Dank für die Hilfe, auch an die natürlich, die sich mit meinem Problem beschäftigen!

    So siehts jetzt aus!

    Code:
        Sub Workbook()
        Dim aktDate As Date   'aktuelles Datum
        Dim endDate As Date   'Monatsende
        Const pfad As String = "C:\Users\Administrator\Desktop\Verfügbarkeit_"
          
        aktDate = Format(Now(), "dd.mm.yyyy")
        
        endDate = DateSerial(Year(aktDate), Month(aktDate) + 1, 1) - 1
         
        If Dir(pfad & endDate & "*") = "" Then
            If (aktDate = endDate) Then
                ActiveWorkbook.SaveAs Filename:=pfad & endDate & ".xlsm"
                Workbooks.Open pfad & "Vorlage.xlsm"
                ThisWorkbook.Close False
            End If
        End If
    End Sub
    Wenn ich diese Zeile richtig verstehe wird die Datei innerhalb der 24h nur einmal abgespeichert. Nähmlich dann, wenn die Datei noch NICHT existiert. Nachdem sie das erste mal abgespeichert wurde springt er aus der if-Anweisung wieder raus. Nur das ich das richtig verstanden habe

  10. #19
    PHW ist offline Benutzer
    Themenstarter
    Registriert seit
    02.08.2010
    Beiträge
    32
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Noch ein Frage:

    Wo genau muss ich das Skript einbinden das es beim öffnen automatisch gestartet wird?

    Habs jetzt mit Private Sub Workbook_Open()
    in Modul 1 eingebunden?

    edit: habs gefunden...diese Arbeitsmappe wars
    Geändert von PHW (02.11.2010 um 17:05 Uhr)

  11. #20
    PHW ist offline Benutzer
    Themenstarter
    Registriert seit
    02.08.2010
    Beiträge
    32
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und das nächste Problem:

    Habs um zu testen mal mit meiner PC Uhr simuliert, dabei ist mir folgendes Problem aufgefallen:

    Beim Start wird die ganze Prozedur gestartet:

    wenn das "aktDate <> endDate" ist, passiert nichts (ist ja auch gut so).

    wenn sich dann das Datum so ändert, dass "aktDate = endDate" ist passiert auch nichts

    Wenn allerdings das "aktDate = endDate" ist und erst dann die Datei geöffnet wird, dann funktioniert es.

    Hab meins zur Vorsicht nochmals angehängt:

    Code:
    Sub Workbook_Open()
        Dim aktDate As Date   'aktuelles Datum
        Dim endDate As Date   'Monatsende
        Const pfad As String = "C:\Users\Administrator\Desktop\Verfügbarkeit_"
          
        aktDate = Format(Now(), "dd.mm.yyyy")
        
        endDate = DateSerial(Year(aktDate), Month(aktDate) + 1, 1) - 1
            
        If Dir(pfad & endDate & "*") = "" Then
            If (aktDate = endDate) Then
                ActiveWorkbook.SaveAs Filename:=pfad & endDate & ".xlsm"
                Workbooks.Open pfad & "Vorlage.xlsm"
                ThisWorkbook.Close False
            End If
        End If
        
    End Sub
    Muss man da mit einer Schleife arbeiten?
    Denn jetzt wird das gestartet beim Öffnen...wenn die Bedingung nicht erfüllt ist, also "endDate <> aktDate" ist, dann ist das ja für das Programm erledigt und es kommt ja gar nicht mehr an den Anfang des if-Blocks?

Ähnliche Themen

  1. Garagentor automatisch schließen
    Von swimma im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.10.2011, 13:42
  2. Seiten nicht automatisch speichern
    Von P_Achtler im Forum E-CAD
    Antworten: 4
    Letzter Beitrag: 14.03.2011, 17:49
  3. wo muss Bedienstelle für Tür öffnen/schließen plaziert sein?
    Von demerzel im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 7
    Letzter Beitrag: 27.03.2009, 11:56
  4. Antworten: 6
    Letzter Beitrag: 03.03.2009, 17:43
  5. Dateien automatisch öffnen, speichern und wieder schließen
    Von CrazyCat im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 20.02.2006, 15:13

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •