Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

VBA Makro speichert falsche Datei ab.

VBA Makro speichert falsche Datei ab.
16.04.2023 09:27:45
Bernd_

Hallo Zusammen,

das unten stehende Makro legt aus einer xlsm Datei alle 30 Minuten das Blatt "tabelle1" und "tabelle2" als xlsx Datei in einem Ordner ab. Aus den abgelegten Dateien werden Daten gezogen. Daher dieser Vorgang.

Nun habe ich das Problem, wenn zwei Excel Dateien geöffnet sind, aber die xlsm Datei nicht im Vordergrund zu sehen ist wird zwar das Makro abgearbeitet, aber es wird dann die Excel Datei im Vordergrund abgelegt. Und das ist nicht gut.

Ist es möglich das Makro so zu ändern das nur die Datei benutzt wird in der sich auch das Makro befindet ?

Gruß Bernd_

Sub copyData()
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Worksheets(Array("tabelle1", "tabelle2")).Copy
Rows("1:3").Select
    With Selection.Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
Range("C25:AB1079").Value = Range("C25:AB1089").Value
Range("C25").Select
ActiveWorkbook.SaveAs Filename:="\\XXXXXXX\XXXXX\XXXXXXX\XXXXXXXXXXXXXXXXXXXX.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close 0
Application.OnTime Now() + TimeValue("00:30:00"), "copyData"
Application.CalculateFull
Application.EnableEvents = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro speichert falsche Datei ab.
16.04.2023 09:38:38
Matthias
Hallo,

benutze ThisWorkbook anstatt ActiveWorkbook

MfG Matthias


AW: VBA Makro speichert falsche Datei ab.
16.04.2023 09:40:05
Kulo
Hallo Bernd,

in deinem Code verwendest Du "ActiveWorkbook".
Das ist immer die Datei, die im Vordergrund zu sehen ist.
Um die Datei anzusprechen, in welcher sich das Makro befindet, solltest du "ThisWorkbook" verwenden.
ThisWorkbook = Speicherort des derzeit laufenden Codes

Schau mal, ob es so funktioniert.

Viele Grüße
Kulo


AW: VBA Makro speichert falsche Datei ab.
16.04.2023 09:51:04
Oberschlumpf
hi Bernd,

hier, versuch mal:

Sub copyData()
 With Application 'du musst nur 1x Application schreiben
    .EnableEvents = False
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Workbooks.Add 'HIER wird eine ganz neue Excel-Datei erstellt und somit auch zum ActiveWorkbook, wenn ich keinen Denkfehler habe
 End With
 
 ThisWorkbook.Worksheets(Array("tabelle1", "tabelle2")).Copy 'hier wird immer wegen This... die Tabellen 1+2 aus DER Datei kopiert, in der dieser Code läuft und in die zuvor neue Datei eingefügt
 
 Rows("1:3").Select 'ab hier dann der Rest deines Codes
     With Selection.Interior
         .PatternColorIndex = xlAutomatic
         .Color = 255
         .TintAndShade = 0
         .PatternTintAndShade = 0
     End With
 Range("C25:AB1079").Value = Range("C25:AB1089").Value
 Range("C25").Select
 ActiveWorkbook.SaveAs Filename:="\\XXXXXXX\XXXXX\XXXXXXX\XXXXXXXXXXXXXXXXXXXX.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
 ActiveWorkbook.Close 0

 With Application
    .EnableEvents = False
    .DisplayAlerts = False
    .ScreenUpdating = False
    .OnTime Now() + TimeValue("00:30:00"), "copyData"
    .CalculateFull
 End With

 End Sub
Hilfts?

Ciao
Thorsten


Anzeige
AW: VBA Makro speichert falsche Datei ab.
16.04.2023 11:26:50
Bernd_
Hallo Thorsten,
danke für die schnelle Hilfe.

es funktioniert soweit . Leider bleibt immer eine leere Mappe offen , Mappe1 usw.

Und kann man das "ActiveWorkbook.SaveAs Filename:="\\XXXXXXX\XXXXX\XXXXXXX\XXXXXXXXXXXXXXXXXXXX.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False" so ändern das die abzulegende Datei so benannt wird wie der Name der Hauptdatei ?

Sub copyData()
  UserForm.Show (0)
  DoEvents
  Eingaben.Unprotect Password:="1234"
 With Application
    .EnableEvents = False
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Workbooks.Add
 End With

 ThisWorkbook.Worksheets(Array("tabelle1", "tabelle1")).Copy

 Rows("1:3").Select
     With Selection.Interior
         .PatternColorIndex = xlAutomatic
         .Color = 255
         .TintAndShade = 0
         .PatternTintAndShade = 0
     End With
 Range("C25:AB1079").Value = Range("C25:AB1089").Value
 Range("C25").Select
 ActiveWorkbook.SaveAs ActiveWorkbook.SaveAs Filename:="\\XXXXXXX\XXXXX\XXXXXXX\XXXXXXXXXXXXXXXXXXXX.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
 ActiveWorkbook.Close 0

 With Application
    .EnableEvents = False
    .DisplayAlerts = False
    .ScreenUpdating = False
    .OnTime Now() + TimeValue("00:30:00"), "copyData"
    .CalculateFull
 End With
 Unload UserForm
 Eingaben.Protect Password:="1234"
 End Sub
Danke Bernd_


Anzeige
AW: VBA Makro speichert falsche Datei ab.
16.04.2023 14:10:36
ralf_b
1. Workbooks.add erzeugt eine neue Datei und
2. Thisworkboo.....copy erzeugt eine weitere neue Datei mit den zu kopierenden Blättern.

das 1. kannst du weglassen

Und diese Doppelung ist Unsinn.
ActiveWorkbook.SaveAs ActiveWorkbook.SaveAs Filename:=

Das kann auch weg. wird nirgendwo gebraucht.
Range("C25").Select

Was soll das werden? Ich meine die beiden gleichlautenden Blattnamen.
Array("tabelle1", "tabelle1")


AW: VBA Makro speichert falsche Datei ab.
16.04.2023 15:01:49
Bernd_
Hallo Zusammen,

hier mein funktionierender Code.

Danke für die Unterstützung.

Gruß Bernd_

Sub copyData()
UserForm.Show (0)
DoEvents
Eingaben.Unprotect Password:="1234"
With Application
    .EnableEvents = False
    .DisplayAlerts = False
    .ScreenUpdating = False
 End With

ThisWorkbook.Worksheets(Array("Tabelle1", "Tabelle2")).Copy
Rows("1:3").Select
    With Selection.Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
Range("C25:AB1079").Value = Range("C25:AB1089").Value
ActiveWorkbook.SaveAs Filename:="\\xxxxxxxx\xxxxxx\xxxxxxxx\" _
& Application.Substitute(ThisWorkbook.name, ".xlsm", "") _
& "_Kopie.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close 0
With Application
    .EnableEvents = False
    .DisplayAlerts = False
    .ScreenUpdating = False
    .OnTime Now() + TimeValue("00:05:00"), "copyData"
    .CalculateFull
 End With
Unload UserForm
Eingaben.Protect Password:="1234"

End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige