Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1540to1544
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

Workbook open ohne Makros

Workbook open ohne Makros
09.02.2017 17:56:25
Kian
Hallo zusammen,
kurz zum Problem. Ich habe ein Makro programmiert, dass sich aus einer anderen Datei von zwei Tabellenblättern kopiert, diese in die neue Datei kopiert und anschließend die Datei wieder schließt. Nachfolgend der Code:
Sub Datenimport()
Dim WBZiel As Workbook, ExportDatei As Variant, lDatum As Long
Dim WBQuelle As Workbook, WSZiel As Worksheet, lZeile As Long
lZeile = Sheets("Datenbank").[A65536].End(xlUp).Row
Range(Cells(8, 1), Cells(lZeile, 15)).ClearContents
Set WBZiel = ThisWorkbook
Application.ScreenUpdating = False
Application.EnableEvents = False
'DateiÖffnen Dialog anbieten
ExportDatei = Application.GetOpenFilename("Excel-Dateien, *.xlsm*", , "Bitte    die Datei zum  _
_
Kopieren öffnen ...")
ExportDatei = CStr(ExportDatei)
If ExportDatei = "Falsch" Then Exit Sub
'öffnen der ausgewählten Datei
Set WBQuelle = Workbooks.Open(ExportDatei)
'kopieren des Blattinhaltes und Schließen der Quell-Datei
With WBQuelle
lDatum = .Sheets("Datenbank").[B65536].End(xlUp).Row
.Sheets("Hilfsdaten").Range("D3:J3").Copy WBZiel.Sheets("Hilfsdaten").Range("D3:J3")
.Sheets("Hilfsdaten").Range("W2:W5").Copy WBZiel.Sheets("Hilfsdaten").Range("W2:W5")
.Sheets("Datenbank").Range("A8:O" & .Sheets("Datenbank").[B65536].End(xlUp).Row).Copy  _
Destination:=WBZiel.Sheets("Datenbank").Range("A8")
.Close savechanges:=False
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Das funktioniert auch alles einwandfrei. Problem ist jetzt nur, dass es sich bei den Dateien,  _
aus denen kopiert wird, um 32Bit gecodete handelt. Da steckt in der userform noch der DTPicker drin,
der ja unter 64Bit nicht mehr läuft.
Die Userform startet automatisch beim öffnen der Datei. Jetzt die Preisfrage.
Wie kann ich die Datei öffnen, von den Sheets was kopieren und die Datei wieder
schließen OHNE die Userform zu starten.
Ich habe es (s. Code) schon mit Application.enableEvents probiert,
aber es gibt dann trotzdem den Kompatibilätsfehler wegen des DTPicker.
Habe im Internet mal Ansätze von wegen im safety mode öffnen gefunden,
kann damit aber nichts anfangen. Jemand einen Geistesblitz ?!
Vielen Dank und Beste Grüße!


		

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook open ohne Makros
09.02.2017 18:10:32
lupo1
Bedingte Kompilierung mit Versionsabfrage:
http://www.xlam.de/pos/vbawinmac.htm#Bedingte%20Kompilierung
ungefähr 1-2 Seiten weiter runter, da findest Du
Bedingte Kompilierung durch Einsetzen von Entscheidungsstrukturen
#If...Then...#Else-Anweisung (Beispiel):
In diesem Beispiel wird die Konstanten für die bedingte Kompilierung in einer #If...Then...# _
Else-Konstruktion verwendet, um zu bestimmen, ob bestimmte Programmanweisungen kompiliert werden sollen.
'Wenn Mac als True ausgewertet wird, werden die Anweisungen im
'Anschluss an #If kompiliert:
#If Mac Then
'. Ausschliesslich Anweisungen für Mac hier.
'Wenn es sich um ein 32-Bit-Windows-Programm handelt, folgende
'Anweisungen kompilieren:
#ElseIf Win32 Then
'. Anweisungen, die nur für 32-Bit-Windows kompiliert werden sollen.
'Andernfalls folgende Anweisungen kompilieren:
#Else
'. Anweisungen für andere Plattformen hier.
#End If

Anzeige
AW: Workbook open ohne Makros
09.02.2017 18:25:08
Kian
Hey,
Vielen Dank für die schnelle Antwort. Es trifft aber nicht
Genau was ich wollte. Ich habe bereits eine
Version der zweiten Datei für beide Plattformen programmiert, die auch mit
demnächst als Update für ganze Firma rausgeht. Mit dieser
Neuen Version gibt es beim rauskopieren auch keine Fehler
Aber es benutzen eben erst nach dem update alle die neue
Datei. Daher muss ich jetzt eine Möglichkeit finden, dass
Auch die, die noch 32bit Datei haben, auch diesen
Dateiimport vornehmen können. Das scheitern aber wie gesagt
Am autostart der userform beim öffnen der Datei. Da
Kommt dann eben der Fehler. Sorry für den Aufsatz, aber
Bei sowas lieber so detailliert wie möglich. Ist das jetzt
Klarer ? Sonst gerne Bescheid geben 😎
Anzeige
Es geht in dem Codeschnipsel auch um Win32
09.02.2017 18:32:28
lupo1
... möglicherweise hast Du das übersehen.
Ansonsten verstehe ich Dich nicht.
AW: Es geht in dem Codeschnipsel auch um Win32
09.02.2017 19:00:29
Luschi
Hallo Kian Mohtachem,
ich habe in der zu öffnenden Datei folgende Makros drin:

Sub Auto_Open()
MsgBox 12345
End Sub
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Wenn ich jetzt dieses Makro in der anderen Datei starte:

Sub test1()
Dim wb As Workbook
Application.EnableEvents = False
Set wb = Workbooks.Open("H:\Daten\Excel\E_2010\bedingt_Format\SymbolSaetze\LU_2.xlsm")
Application.EnableEvents = True
Set wb = Nothing
End Sub
Werden beide Makros aus der öffnenden Datei NICHT ausgeführt, deaktiviere ich die beiden Application-Befehlen, werden sie ausgeführt.
Ich verwende MS-Office 32-bit.
Gruß von Luschi
aus Klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige