Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei importieren und in andere Blatt übertragen

Datei importieren und in andere Blatt übertragen
09.07.2018 11:00:16
Markus
Hallo Leutchen,
ich habe ein Problem mit dem Übertragen bei einem Datei Import.
Folgenden Code hat ein ehemaliger Kollege erstellt.
Der Code sorgt dafür das eine Datei importiert wird und die Daten ins Aktive Sheet übertragen werden.
  • 
    Private Sub CommandButton1_Click()
    Application.CutCopyMode = False
    Dim Importdatei As String
    Dim Verzeichnis As String
    Verzeichnis = "P:\_eMeldung\Exportierte Dateien"
    On Error Resume Next
    ChDrive "P:\"
    ChDir Verzeichnis
    Importdatei = Application.GetOpenFilename("Monidateien (*.mon), *.mon")
    Application.ScreenUpdating = False
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Importdatei, Destination:=Range( _
    "CS20"))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 850
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierNone
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    End With
    Range("cs20:IV200").Select
    Selection.Copy
    Range("a20:Cr200").Select
    ActiveSheet.Paste
    Range("cs20:IV200") = " "
    Range("A20:F200") = " "
    Range("CN20:CR200") = " "
    Cells.Select
    Selection.Columns.AutoFit
    End Sub
    


  • Jetzt möchte ich genau das gleiche, nur dass die Daten in ein anderes Tabellenblatt übertragen werden.
    Anbei mein Code:
  • 
    Private Sub CommandButton3_Click()
    Application.CutCopyMode = False
    Dim Importdatei As String
    Dim Verzeichnis As String
    Verzeichnis = "P:\_eMeldung\Exportierte Dateien"
    On Error Resume Next
    ChDrive "P:\"
    ChDir Verzeichnis
    Importdatei = Application.GetOpenFilename("Monidateien (*.mon), *.mon")
    Application.ScreenUpdating = False
    With Sheets("eMeldung").QueryTables.Add(Connection:="TEXT;" & Importdatei, Destination: _
    =Sheets("eMeldung").Range("CS20"))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 850
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierNone
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = True
    .TextFileSpaceDelimiter = False
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    End With
    Sheets("eMeldung").Range("CS20:IV200").Select
    Sheets("eMeldung").Selection.Copy
    Sheets("eMeldung").Range("A20:CR200").Select
    Sheets("eMeldung").Paste
    Sheets("eMeldung").Range("CS20:IV200") = " "
    Sheets("eMeldung").Range("A20:F200") = " "
    Sheets("eMeldung").Range("CN20:CR200") = " "
    Sheets("eMeldung").Cells.Select
    Sheets("eMeldung").Selection.Columns.AutoFit
    End Sub
    

  • Könnt Ihr mir sagen, was ich falsch mache?
    Gruß Markus

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Datei importieren und in andere Blatt übertragen
    09.07.2018 12:23:32
    Torsten
    Hallo Markus,
    wo hakts denn genau?
    Problem behoben!
    09.07.2018 12:27:20
    Markus
    Hallo zusammen,
    das Problem ist behoben!
     Range("CS20:IV200").Select
    Selection.Copy
    Range("A20:CR200").Select
    Sheets("eMeldung").Paste
    Range("CS20:IV200") = " "
    Range("A20:F200") = " "
    Range("CM20:CR200") = " "
    Cells.Select
    Selection.Columns.AutoFit
    
    Den unteren Teil wollte er in meiner Form nicht nehmen, so klappt es jetzt.
    Vielen Dank
    Gruß Markus
    AW: Problem behoben!
    09.07.2018 13:26:09
    Markus
    Hallo Thorsten,
    Zu früh gefreut :'-(
    Es soll wie folgt laufen, Ich habe im Tabellenblatt1 einen Button zu einer Userform in dieser Userform ist ebenfalls ein Button um die Datei zu importieren.
    Jetzt soll der die Werte allerdings in das Tabellenblatt2 übertragen.
    Aber wenn ich über die Maske gehe, wird hier die gesamte Formatierung zerstört.
    Wenn ich aus dem Code teste und das Tabellenblatt2 ist geöffnet, dann klappt es.
    Anbei ein Teil von meinem Projekt:
    https://www.herber.de/bbs/user/122565.xlsm
    Gruß Markus
    Anzeige
    AW: Problem behoben!
    09.07.2018 13:34:57
    Torsten
    Hallo Markus. In der With Anweisung muss dann jede Zeile mit einem Punkt beginnen. So:
    
    With Sheets("eMeldung")
    .Range("CS20:IV200").Select
    .Selection.Copy
    .Range("A20:CR200").Select
    .Sheets("eMeldung").Paste
    .Range("CS20:IV200") = " "
    .Range("A20:F200") = " "
    .Range("CM20:CR200") = " "
    .Cells.Select
    .Selection.Columns.AutoFit
    End With
    
    Probier das nochmal. Habs aber nicht getestet.
    Leider nix
    09.07.2018 13:40:07
    Markus
    Hallo Thorsten,
    leider wird nichts übertragen, aber auch die Formatierung bleiben unverändert!
    Gruß Markus
    AW: Leider nix
    09.07.2018 13:57:40
    Torsten
    Komme leider nicht dahinter, da du ja nur den Sheet Namen veraendert hast. Sollte eigentlich funktionieren.
    Was mir jetzt noch einfaellt, dass du den Code von deinem Kollegen unveraendert laesst und nur vor der With Anweisung das andere Sheet aktivierst.
    
    Sheets("eMeldung").Activate
    
    Dann ist das das aktive Sheet und der Code sollte funktionieren, denn du sagtest ja, dass das funktioniert hat, richtig?
    Anzeige
    Super Danke
    09.07.2018 14:15:34
    Markus
    Hallo Torsten,
    als wenn es hätte simpler nicht sein können!
    Jetzt funktioniert es wunderbar und genau so wie es soll.
    Habe an das Ende noch
    Sheets("MASKE").Activate
    

    angehangen, da die eMeldung Invisible gesetzt werden soll.
    Besten Dank Torsten, ich wäre im Leben nicht auf diese Lösung gekommen. :-D
    Gruß Markus
    AW: Super Danke
    09.07.2018 14:22:23
    Torsten
    Freut mich. Wieder einer gluecklich ;-). Danke fuer die Rueckmeldung.
    Viel Spass.

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige