Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Open Workbook with Shell
#1
Hallo Zusammen,

in meiner Arbeitsmappe, habe ich einen Button mit dem ich eine Arbeitsmappe aus einem bestimmten Ordner öffnen kann. Nachdem die Mappe geöffnet worden ist, möchte ich dass die geöffnete Mappe als Set wb = ... deklariert wird.

Leider weiß ich nicht wie ich das machen soll, da mein Makro weiterläuft, während ich die Arbeitsmappe auswähle.

Hier mein Makro:
Code:
Sub Simulation()
    Dim strFolder As Variant
    Dim wb As Workbook

    strFolder = "C:\Users\Simulation"
    Shell "C:\WINDOWS\explorer.exe """ & strFolder & "". vbNormalFocus

    Set wb = 'Hier soll die Arbeitsmappe deklariert werden die mit Shell geöffnet wird.
    
    ' Nun wird das zweite Arbeitsblatt der neu geöffneten Mappe in "Workbooks1" kopiert:
    wb.Cell.Select
    Sheet(2).Copy After:=Workbooks("Workbook1.xlsm").Sheets(1)
    Application.WindowState = xlNormal
    wb.Close
    Windows("Workbooks1.xlsm).Activate
End Sub


Ich hoffe jemand kann mir helfen wie ich das Makro umschreiben muss, damit das Makro solange wartet bis die neue Arbeitsmappe aktiv ist, oder wie ich die Mappe mit
Application.Workbook.Open öffnen kann (Der Name der neuen Mappe wird allerdings alle 2 Wochen geändert).

Vielen Dank und schöne Grüße
Antworten Top
#2
Hallo,

z.B. so:
Sub Simulation()
   Dim strDatei As String
   Dim strFolderOld As String
   Dim strFolder As String
   Dim wb As Workbook
   strFolderOld = Application.DefaultFilePath
   strFolder = "C:\Users\Simulation"
   ChDrive strFolder
   ChDir strFolder
   strDatei = Application.GetOpenFilename("Exceldateien, *.xls*")
   ChDrive strFolderOld
   ChDir strFolderOld
   If Not CVar(strDatei) = False Then
     Set wb = Workbooks(strDatei)
     ' Nun wird das zweite Arbeitsblatt der neu geöffneten Mappe in "Workbooks1" kopiert:
     wb.Sheets(2).Copy After:=Workbooks("Workbook1.xlsm").Sheets(1)
     wb.Close False
   End If
End Sub
Gruß Uwe
Antworten Top
#3
Hallo Uwe,

sollte das eventuell so heißen ...


Code:
Set wb = Workbooks.Open(strDatei)
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Antworten Top
#4
Hallo Sabina,

(17.12.2018, 11:46)Flotter Feger schrieb: Hallo Uwe,

sollte das eventuell so heißen ...

Code:
Set wb = Workbooks.Open(strDatei)

ja natürlich, danke. Blush

Gruß Uwe
Antworten Top
#5
So schaffen wir das:

Code:
Sub M_snb()
  with getobject("C:\Users\Simulation\beispiel.xlsx")
     .sheets(2).copy ,thisworkbook.sheets(1)
     .close 0
  end with
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste