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. Name der Datei durch Excel geändert

    in Microsoft Excel Hilfe
    Name der Datei durch Excel geändert: Hallo und guten Abend, Die Datei wird mittels Button (VBA) zwischen gesichert. Das Makro sichert zuvor die Datei und erstellt zus. eine Sicherungsdatei mit der Erweiterung Beispiel-"Sich"....
  3. Ein Makro für mehrere Register

    in Microsoft Excel Hilfe
    Ein Makro für mehrere Register: Moin, ich habe ein Makro wo Daten aus dem Register Master kopiert werden und Register, das mit einem Datum beschriftet ist. Ich möchte in Jedem Register ein Button haben was Daten aus dem Master...
  4. Makro öffnet unerwartete Datei

    in Microsoft Excel Hilfe
    Makro öffnet unerwartete Datei: Hallo Forum, ich brächte euer Schwarmwissen. Arbeite mit Excel eine Auftragsbearbeitung. Dort habe ich mir einen Button mit Makro erstellt und nutze diesen schon lange. Das Makro generiert ein...
  5. Leerzeilen entfernen

    in Microsoft Word Hilfe
    Leerzeilen entfernen: Hallo in die Runde, ich habe das Problem bzw. den Wunsch in einem DOC die Leerzeilen zu entfernen und das per Makro. Allerdings gelingt es nicht Hintergrund das DOC wird aus einer Dot-Datei...
  6. Makro Schaltflaechen vervielfaeltigen sich....

    in Microsoft Excel Hilfe
    Makro Schaltflaechen vervielfaeltigen sich....: Hallo Zusammen, ich habe eine Exceldatei, die seit ein paar Wochen sehr langsam zu öffnen und zu bearbeiten ist. Zuvor war sie ca. 8MB gross, was sich verdoppelt hat. Ich habe alle Zellen die...
  7. Seit Win 11 Zugriffsprobleme bei Excel über Makros

    in Microsoft Excel Hilfe
    Seit Win 11 Zugriffsprobleme bei Excel über Makros: Guten Tag! Ich habe vor einer Woche mein Windows 10 auf Windows 11 geupgraded, und seitdem habe ich extreme Schwierigkeiten mit meinem Excel. Mit Windows 10 funktionierte alles so, wie es sollte,...
  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