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
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
Top
#3
Hallo Uwe,

sollte das eventuell so heißen ...


Code:
Set wb = Workbooks.Open(strDatei)
Top
#4
Hallo Sabina,

(17.12.2018, 12: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
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
Top


Gehe zu:


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