Office: (Office 2016) Makro - externe Daten verarbeiten - Datei (csv) öffnen

Helfe beim Thema Makro - externe Daten verarbeiten - Datei (csv) öffnen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich fange gerade an mit Makros zu arbeiten und komme nun leider nicht weiter. Die Suche der bestehenden Threads hat zwar bereits einen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Nooob, 26. Oktober 2017.

  1. Nooob Neuer User

    Makro - externe Daten verarbeiten - Datei (csv) öffnen


    Hallo,

    ich fange gerade an mit Makros zu arbeiten und komme nun leider nicht weiter.
    Die Suche der bestehenden Threads hat zwar bereits einen Lösungsansatz geliefert - ich bekomme es leider nicht umgesetzt...

    Ausgangspunkt:
    Ich möchte die Daten aus zwei Dateien vergleichen, diese Dateien (verschiedene Stichtage) variieren.
    Das habe ich über ein Dropdown zur Auswahl gelöst -> Index wählt den Dateinamen aus der Liste -> einer Verweisformel greift dann auf die externen Daten (.csv) zu.

    Problem 1: Das funktioniert nur wenn die entsprechende Quelle offen ist...
    Meine Lösung für Problem 1: Button welcher die Datei für mich automatisch öffnet
    Komplikation 1: Die csv öffnet sich, allerdings wird die Semikolontrennung ignoriert - was beim manuellen öffnen nicht der Fall ist.
    Lösungsansatz: "Local:=True" einbauen - ich verstehe aber nicht wo:

    Private Sub CommandButton1_Click()

    Dim strPfad1 As String

    strPfad1 = _
    ActiveWorkbook.Path & "\Listen LCR\" & Worksheets("LCR").Range("C71").Text

    Application.Workbooks.Open (strPfad1)

    End Sub


    Problem 2:
    Wie bekomme ich die zweite Vergleichsdatei geöffnet (Name steht nebendran in "D71")

    Abschließende Frage :D :

    gibt es eine elegantere Lösung, welche diese Schritte unnötig macht?
    Dh kann ich die Daten aus der csv auch verarbeiten, während die Datei geschlossen ist?

    =VERWEIS(B70;INDIREKT(C71&"!G1:G100");INDIREKT(C71&"!L1:L100"))

    -> in "C71" steht der Dateinname / mit dem genauen Pfad funktioniert das leider nicht...

    Grüße,
    Manu
     
  2. Exl121150 Erfahrener User
    Hallo Manu,

    Jeder Programmierer wird dir sagen, dass das nicht möglich ist. Excel ermöglicht aber seit einer Reihe von Versionen "quasi" das Gegenteil, aber leider nur für Dateien mit Dateierweiterung *.xls, *.xlsx, *.xlsm, etc., nicht also für *.csv-Dateien.
    Gibt man in einer Zelle eine Formel mit einem externen Bezug zB. wie folgt
    ='C:\Verzeichnis1\Verzeichnis2\[Dateiname.csv]Dateiname'!C2
    ein, erhält man eine Fehlermeldung, gefolgt von einem Hinweis, wie man das Problem beseitigen kann (Menüband > Tabulator "Daten" > Gruppe "Verbindungen" > Button "Verküpfungen bearbeiten" > Button "Quelle öffnen"). Darauf öffnet sich die vorhin ausgewählte Quelldatei. Die Zugriffsformel verkürzt sich auf "=Dateiname!C2" und zeigt den gewünschten Wert im ursprünglichen Blatt an. Sobald man die Quelldatei wieder schließt, erscheint wieder die lange externe Zugriffsformel.

    Code:
    Private Sub CommandButton1_Click()
      Dim strPfad1 As String
      strPfad1 =  ActiveWorkbook.Path & "\Listen LCR\" & Worksheets("LCR").Range("C71").Text
      Application.Workbooks.Open [COLOR="#FF0000"][B]FileName:=[/B][/COLOR]strPfad1[COLOR="#FF0000"][B], Local:=True[/B][/COLOR]
    End Sub
    Besser ist es jedoch, folgenden modifizierten Code zu verwenden:
    Code:
    Private Sub CommandButton1_Click()
      Dim strPfad1 As String
      Dim AktWb As Workbook, CsvWs As Worksheet
    
    ' Momentan aktive Arbeitsmappe im Objektzeiger 'AktWb' zwischenspeichern:
      Set AktWb = ActiveWorkbook
    ' Pfad zur CSV-Datei erzeugen:
      strPfad1 =  AktWb.Path & "\Listen LCR\" & Worksheets("LCR").Range("C71").Text
    ' CSV-Datei als Arbeitsmappe öffnen und das enthaltene Arbeitsblatt im Objektzeiger 'CsvWs' sich merken
    ' - Achtung: zusätzliche Klammern nötig !!
      Set CsvWs = Application.Workbooks.Open[COLOR="#FF0000"][B]( FileName:=[/B][/COLOR]strPfad1[COLOR="#FF0000"][B], Local:=True ).Worksheets(1) [/B][/COLOR]
    ' Wieder ursprüngliche Arbeitsmappe aktivieren, 
    ' sodass man wieder das ursprüngliche aktive Arbeitsblatt mit seiner aktiven Zelle vor sich hat:  
      AktWb.Activate
    ' ....
    ' Hier könnte dann weiterer Code stehen zum Transferieren von Daten aus dem CSV-Arbeitsblatt:
      With CsvWs
         'Übetrage Wert aus Zelle D5 der CSV in die aktive Zelle des aktiven Blattes von AktWb
         '(Beachte dabei den Punkt vor Range!)
    '    ActiveCell.Value = .Range("D5").Value
         'Übertrage Wert aus Zelle A2 der CSV in die Zelle A2 des aktiven Blattes von AktWb
    '    Range("A2").Value = .Range("A2").Value
    '    ....
         'Schließe die CSV-Datei ohne eventuelle Nachfrage, ob die Datei zu speichern sei.
         .Parent.Close SaveChanges:=False
      End With
    End Sub
    Ich hoffe, ich konnte dir damit einige Anregung für deinen VBA-Code geben.
     
    Zuletzt bearbeitet: 26. Oktober 2017
    Exl121150, 26. Oktober 2017
    #2
Thema:

Makro - externe Daten verarbeiten - Datei (csv) öffnen

Die Seite wird geladen...
  1. Makro - externe Daten verarbeiten - Datei (csv) öffnen - Similar Threads - Makro externe Daten

  2. Makro Zip-Datei von Webseite runterladen, auspacken, kopieren

    in Microsoft Excel Hilfe
    Makro Zip-Datei von Webseite runterladen, auspacken, kopieren: Hallo Zusammen, ich habe ein Makro gefunden von dem ich denke, dass es koennen sollte was ich braeuchte, eine Datei herunterladen, auspacken und den Inhalt in die Datei kopieren in der das Makro...
  3. Makro für variable Anzahl von Datensätzen

    in Microsoft Excel Hilfe
    Makro für variable Anzahl von Datensätzen: Hallo zusammen, ich habe wieder einmal ein kleines Excel-Problem, bei dem Ihr mir sicherlich helfen könnt. Ich habe eine Excel-Liste, das ist ein Export aus einem anderen Programm (siehe...
  4. Makro aus personal.xls starten

    in Microsoft Excel Hilfe
    Makro aus personal.xls starten: Auf einem Arbeitsblatt habe ich mehrere Buttons. Die zugehörigen Makros sind in personal.xls gespeichert. Aus dem Code-Editor heraus kann ich die Makros ohne Problem starten. auf dem Arbeitsblatt...
  5. Dokumente und Blatt umbenennen

    in Microsoft Word Hilfe
    Dokumente und Blatt umbenennen: Ich lade mir jeden Tag csv-Dateien von meiner Bank herunter. Diese sind mit Datum versehen, also die Datei selbst und das erste Blatt, z.B. "Konto_13.02.2024". Wenn ich ein Makro erstelle, in dem...
  6. 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"...
  7. Barcode Scanliste Makro anpassen

    in Microsoft Excel Hilfe
    Barcode Scanliste Makro anpassen: Hallo zusammen! Einer der Mitglieder hier hat mir eine Funktionsliste erstellt, mit der man Barcodes scannt und danach einen Wert über die Bildschirmtastatur eingibt. Die Barcodes hatten bisher...
  8. Excel 2010 Externe Daten Quellen über VBA Makro aktualisieren

    in Microsoft Excel Hilfe
    Excel 2010 Externe Daten Quellen über VBA Makro aktualisieren: Hallo zusammen, ich habe ein kleines Problem mit dem importieren von Daten aus einer .csv Datei. Mit dem Marko: Sub Daten_importieren() ' ' Daten_importieren Makro '...
  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