Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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

Arbeitsmappe im Hintergrund öffnen

Arbeitsmappe im Hintergrund öffnen
12.12.2020 16:55:45
Ingo
Hallo
Ich möchte gerne nur einen bestimmten Bereich einer bestimmten Tabelle per Makro speichern. Und soweit ich mir das bisher anlesen konnte, soll man das so lösen, indem man per Makro den gewünschten Bereich markiert, dann eine neue leere Arbeitsmappe öffnet, dort hineinkopiert und das dann speichert. Alles mit dem Makro.
Ich habe mir das jetzt so mit dem Makrorekorder zusammengebaut, weil ich selbst nicht genug von VBA verstehe. Dazu habe ich nun 2 Fragen.
1) Ist das Makro soweit OK, oder sollte ich da noch was ändern?
2) Wenn ich das Makro nun auslöse, kann ich jedes Mal kurz sehen, wie die neue Arbeitsmappe geöffnet und dann auch wieder geschlossen wird. Das stört mich etwas. Kann man es irgendwie so machen, dass das alles im Hintergrund und für mich quasi unsichtbar stattfindet?
Sub AAA()
Columns("AC:AN").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
ChDir "C:\Users\[xxx]"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Users\[xxx]\xxx.txt", FileFormat:=xlText, CreateBackup:= _
False
Application.DisplayAlerts = True
ActiveWorkbook.Close
Range("AC1").Select
End Sub
Gruß
Ingo

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen
12.12.2020 17:21:07
Werner
Hallo,
ohne Select.
Und die Bildschirmaktualisierung ausschalten, dann siehst du da nix.
Warum schaltetst du die DisplayAlerts aus? Dir ist klar, dass du dann nicht mehr vor Überschreiben bereits vorhandener Dateien nicht mehr gewarnt wirst?
Sub AAA()
Application.ScreenUpdating = False
Columns("AC:AN").Copy
Workbooks.Add
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues
ChDir "C:\Users\[xxx]"
ActiveWorkbook.SaveAs Filename:="C:\Users\[xxx]\xxx.txt", FileFormat:=xlText, CreateBackup:= _
False
ActiveWorkbook.Close
Range("AC1").Select
End Sub
Gruß Werner
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen
12.12.2020 19:24:07
Ingo
Hallo Werner
Ich danke Dir für Deine Hilfe. Funktioniert super.
Und ja, das mit DisplayAlerts ist richtig so. Die Warnung vor dem Überschreiben soll nicht kommen.
Gruß
Ingo
Gerne u. Danke für die Rückmeldung. o.w.T.
12.12.2020 19:33:14
Werner
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 08:10:19
Ingo
Ich habe nun doch noch ein kleines Problem mit Deiner Methode.
Im besagten Bereich gibt es eine Spalte, die sehr lange Zahlen enthält. Es sind Zahlen mit bis zu 13 Ziffern. Die Zellenformatierung ist "Zahl ohne Dezimalstellen".
In der gespeicherten *.txt-Datei landen dann aber leider die Zahlen in exponentieller Notation, also mit diesem "E+".
Also aus z.B. 4975431957192 wird 4.97543E+12.
Wie gesagt, in meiner Excel-Tabelle werden diese Zahlen richtig dargestellt/angezeigt. Nur eben in der gespeicherten *.txt-Datei nicht.
Wie kann ich das denn verhindern?
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 08:27:51
Werner
Hallo,
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Gruß Werner
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 08:46:20
Ingo
Moin Werner
Du bist mein Held. Ich danke Dir gaaaanz dolle, dass Du mir so früh schon geholfen hast. Funktioniert natürlich wieder super. DANKE!!!
Gruß
Ingo
Gerne u. Danke für die Rückmeldung. o.w.T.
13.12.2020 08:52:21
Werner
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 11:19:04
Ingo
Hallo
Doch noch eine Frage. Falls ich anfange, Dir auf den Wecker zu gehen, sag es ruhig ganz ehrlich und offen, ja?
Das Makro schaut ja jetzt so aus:
Sub AAA()
Application.ScreenUpdating = False
Columns("AC:AN").Copy
Workbooks.Add
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
ChDir "C:\Users\[xxx]"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Users\[xxx]\[xxx].txt", FileFormat:=xlText, CreateBackup:= _
False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
Von meine Ausgangstabelle werden ja die kompletten Spalten AC bis AN verwendet. Diese sind nicht alle komplett mit Werten gefüllt. Es sind zur Zeit ca. 800 Zeilen gefüllt, und der Rest ist leer. Auch gibt es zwischendurch, also in den Zeilen 1-800 auf ein paar "Leerzeilen". Und die Anzahl der mit Werten gefüllten Zellen ändert sich auch immer wieder.
Darum sin dann ja auch in der letztendlich gespeicherten *.txt-Datei zwischendurch und auch am Ende ganz viele Leerzeilen.
Ich möchte es gerne so haben, dass in der letztendlich gespeicherten *.txt-Datei keine Leerzeilen mehr enthalten sind.
Ist das machbar?
Man könnte das ja wahrscheinlich per VBA beim Kopieren aus der ursprünglichen Tabelle oder dann in der Zwischen-Kopier-Tabelle oder sogar zum Schluss in der Textdatei machen lassen, richtig?
Was ist denn da am einfachsten und vor Allem, wie mache ich das?
Ich hoffe, Du hast Lust, mir da nochmal behilflich zu sein. Das würde mich natürlich riesig freuen weiterhin. Ich selbst bekomme das nicht hin.
Gruß
Ingo
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 12:57:39
Werner
Hallo,
lade mal eine Beispielmappe mit Beispieldaten hoch, in der du aufzeigst, was in die Textdatei exportiert werden soll und was nicht.
Gruß Werner
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 16:52:00
Ingo
Hallo Werner
Ah ja alles klar. Mach ich heute Abend später. Bin gerde unterwegs.
Gruß
Ingo
AW: Arbeitsmappe im Hintergrund öffnen
13.12.2020 17:51:07
Ingo
Hallo Werner
Oder könnte man es vielleicht so machen?
Per VBA die Textdatei nochmal öffnen, dort alle Leerzeilen löschen und die Datei wieder abspeichern.
Geht das so per VBA?
Wäre das nicht einfach eine schöne einfache Möglichkeit?
Gruß
Ingo
AW: Arbeitsmappe im Hintergrund öffnen
14.12.2020 11:59:09
Ingo
Ich habe nun mal eine Beispieltabelle erstellt und hochgeladen. In dem Beispiel müsste der Pfad für die zu speichernde Textdatei noch angepasst werden. Die Datei befindet sich hier:
https://www.herber.de/bbs/user/142304.xlsm
In dem Beispiel geht es mir um folgendes:
* Die Spalten P-W sollen in einer Textdatei gespeichert werden.
* Da in den Spalten P-W ja ein paar leere Zeilen (7, 14, 15, 16, 23, 24, 30, 33 und 34) sind, würden in der Textdatei ja jetzt auch Leerzeilen entstehen.
* In der Textdatei sollen sich aber keine Leerzeilen befinden.
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen
14.12.2020 13:12:04
Werner
Hallo,
Sub Makro1()
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.Range("$P$1:$W$" & .Cells(.Rows.Count, "P").End(xlUp).Row).AutoFilter Field:=1, _
Criteria1:=""
.AutoFilter.Range.Copy
Worksheets.Add after:=Worksheets(Sheets.Count)
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
ChDir "C:\Users\[...]"
Application.DisplayAlerts = False
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\[...]\xxx.txt", FileFormat:=xlText, _
CreateBackup:=False
ActiveWorkbook.Close
Worksheets(Sheets.Count).Delete
.Range("P1").AutoFilter
End With
Application.CutCopyMode = False
End Sub
Gruß Werner
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen
14.12.2020 17:02:51
Ingo
Super. Danke. Läuft!
Gerne u. Danke für die Rückmeldung. o.w.T.
14.12.2020 17:53:07
Werner

30 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige