Office: (Office 2016) Excel VBA zwischen geöffneten Dateien wechseln und schließen.

Helfe beim Thema Excel VBA zwischen geöffneten Dateien wechseln und schließen. in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi zusammen, Meine Arbeitsmappe öffnet via VBA die neueste Datei(auch eine Arbeitsmappe) in einem bestimmten Pfad und öffnet diese. Danach werden... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von CharlotteK, 8. September 2021.

  1. CharlotteK hat Ahnung

    Excel VBA zwischen geöffneten Dateien wechseln und schließen.


    Hi zusammen,

    Meine Arbeitsmappe öffnet via VBA die neueste Datei(auch eine Arbeitsmappe) in einem bestimmten Pfad und öffnet diese. Danach werden Daten hieraus kopiert und in die ursprüngliche Arbeitsmappe kopiert.
    Ich habe ein Problem beim schließen der zweiten Datei.
    Schließe ich sie, bevor ich die Daten in die eigentliche Arbeitsmappe einfüge, geht das Zahlenformat verloren.
    Dachte, dann aktiviere ich eben mein eigentliches Arbeitsblatt und kopiere da die Infos rein und schließe dann wieder die andere Datei.
    Grundsätzlich ist der Gedanke, glaube ich, gar nicht soooo verkehrt.... aber wie kann ich denn ein Workbook aufrufen, ohne, dass ich den Namen wirklich kenne?
    ActiveWorkbook geht ja auch nicht, denn das ist die Datei die das Makro enthält.
    Workbooks(Segmentdatei).Close also analog zu dem Workbooks.Open(Segmentdatei) funktioniert irgendwie auch nicht.
    Hilfe, bitte!

    Code:
    Option Explicit
    
    Sub EinlesenSegmentAufteilung()
    Dim sName       As String
    Dim dDatum      As Date
    Dim Pfad        As String
    Dim dDatum_neu  As Date
    Dim sDatei      As String
    Dim lz          As Integer
    Dim Segmentdatei As Variant
    
    'Löschung der Inhalte in Tabelle Rückmeldung Segmente
       Sheets("Rückmeldung Segmente").Select
       Range("D6:D26").Select
       Selection.ClearContents
     
    'Datei mit Segmentaufteilung im Laufwerk finden
    
       sName = Dir(p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & "*.xlsx")
       dDatum_neu = FileDateTime(p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & sName)
       sDatei = sName
     
       Do While sName <> ""                     ' Schleife beginnen.
          sName = Dir
          If sName <> "" Then
             dDatum = FileDateTime(p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & sName)
             If dDatum > dDatum_neu Then
                dDatum_neu = dDatum
                sDatei = sName
             End If
          End If
       Loop
     
       Segmentdatei = (p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & sDatei)
         
       Workbooks.Open (Segmentdatei)
       Range("I42:I62").Copy
       ActiveWindow.Close 'an dieser Stelle Schließen funktioniert, allerdings geht das Zahlenformat dann beim einfügen verloren
       Windows(p_cstrWBName).Activate
       Sheets("Rückmeldung Segmente").Select
       Range("D6").Select
       ActiveSheet.Paste
     End Sub
    
     
    CharlotteK, 8. September 2021
    #1
  2. Exl121150 Erfahrener User
    Hallo Charlotte,

    vielleicht so:
    Code:
    Option Explicit
    
    Dim p_cstrPfadOriginal As String   '<--- Wert ??
    
    Sub EinlesenSegmentAufteilung()
       Dim sName       As String
       Dim dDatum      As Date
       Dim Pfad        As String
       Dim dDatum_neu  As Date
       Dim sDatei      As String
       Dim lz          As Integer
       Dim Segmentdatei As Variant
      
       Dim WbSeg       As Workbook
       Dim WbAct       As Workbook
       Dim WsAct       As Worksheet
    
    'Löschung der Inhalte in Tabelle Rückmeldung Segmente
       Set WbAct = ActiveWorkbook
       Set WsAct = WbAct.Sheets("Rückmeldung Segmente")
       WsAct.Range("D6:D26").ClearContents
    
    'Datei mit Segmentaufteilung im Laufwerk finden
    
       sName = Dir(p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & "*.xlsx")
       dDatum_neu = FileDateTime(p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & sName)
       sDatei = sName
    
       Do While sName <> ""                     ' Schleife beginnen.
          sName = Dir
          If sName <> "" Then
             dDatum = FileDateTime(p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & sName)
             If dDatum > dDatum_neu Then
                dDatum_neu = dDatum
                sDatei = sName
             End If
          End If
       Loop
    
       Segmentdatei = p_cstrPfadOriginal & "\Segmentaufteilung\AA-BA\" & sDatei
       Set WbSeg = Workbooks.Open(Filename:=Segmentdatei)
      
       WbSeg.ActiveSheet.Range("I42:I62").Copy
     ' ActiveWindow.Close 'an dieser Stelle Schließen funktioniert, allerdings geht das Zahlenformat dann beim einfügen verloren
     ' Windows(p_cstrWBName).Activate
       WsAct.Activate
       WsAct.Paste Destination:=Range("D6")
      
       WbSeg.Close SaveChanges:=False
      
     End Sub
    
    Die Variable "p_cstrPfadOriginal" musste ich provisorisch zu Beginn deklarieren - wird wahrscheinlich bei dir irgendwo anders befüllt.
     
    Exl121150, 8. September 2021
    #2
  3. CharlotteK hat Ahnung
    SUPER!!! Vielen lieben Dank, das funktioniert perfekt!
     
    CharlotteK, 9. September 2021
    #3
Thema:

Excel VBA zwischen geöffneten Dateien wechseln und schließen.

Die Seite wird geladen...
  1. Excel VBA zwischen geöffneten Dateien wechseln und schließen. - Similar Threads - Excel VBA geöffneten

  2. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  3. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  4. Array aus Excel Tabelle einlesen Word VBA

    in Microsoft Excel Hilfe
    Array aus Excel Tabelle einlesen Word VBA: Hallo, ich benötige in einer Word Datei die Werte einer Excel Datei. Ich würde gerne eine Spalte als Array einlesen. Wie das Array ein lesen in Excel geht weiß ich, aber wie schaffe ich den...
  5. Dynamische Tabellen mit automatischer Aktualisierung

    in Microsoft Excel Hilfe
    Dynamische Tabellen mit automatischer Aktualisierung: Hallo in die Runde! Vorab schon mal vielen Dank für alle Mühen und die Hilfe! Ich habe folgendes Anliegen: Ich habe eine Geräteliste als Excel Datei mit einigen verschiedenen Tabellenblättern...
  6. (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?

    in Microsoft Excel Hilfe
    (Excel) Dynamische Tabelle, VBA, fehlende Formatierung?: Liebe Experten, Gefilterte Daten sollen in ein Listobject übertragen werden. Für das Listobject habe ich ein Template angelegt, dass alle Formatierungen (u.a. bedingte Formatierung etc.) enthält....
  7. Speichern mit dem Titel der Zelle A2

    in Microsoft Excel Hilfe
    Speichern mit dem Titel der Zelle A2: Moin moin, Ich habe per Makro einen Arbeitsablauf aufgezeichnet der soweit auch funktioniert. Dieser Endet jedoch im "Speichern Unter" Fenster, welches durch das Klicken von "Drucken als PDF"...
  8. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden