Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bereich speichern und Formatierungen erhalten?

Bereich speichern und Formatierungen erhalten?
05.10.2007 12:46:00
InaB
Hallo Forum,
ich wünsche euch einen schönen Tag und möchte um eure Hilfe bitten...
Per VBA möchte ich den Tabellenbereich A1 - I72 in einer neuen Excel-Datei speichern.
Speicher-Verzeichnis und Dateiname wird aus der Zelle A4 ausgelesen.
Das klappt auch mit unten gezeigtem Code-Beispiel. Allerdings gehen die Formatierungen der Zeilen und Spalten verloren.
Mein Problem: Die Formatierungen der Zellen sollen erhalten bleiben!
Es wäre sehr schön, wenn ihr mein Code-Beispiel "umbasteln" könntet (noch mangelnde VBA-Kenntnisse - gebe mir aber Mühe).
Danke und liebe Grüsse, InaB

Sub Sichern()
Dim wkbName as String, wkbNeu as String, wksName As String
wkbName = ThisWorkbook.Name
wksName = ActiveSheet.Name
Workbooks.Add
wkbNeu = ActiveWorkbook.Name
Workbooks(wkbName).Sheets(wksName).Range("A1:I72").Copy Workbooks(wkbNeu).Sheets(1).Range("A1" _
)
Dim pfad As String
pfad = Workbooks(wkbName).Sheets(wksName).Range("A4")
Workbooks(wkbNeu).SaveAs Filename:= pfad
ActiveWorkbook.Close
End Sub


22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 12:51:15
Walburga
Hi Ina
Vorschlag:
activesheet.copy
den überschüssigen Teil rausschmeissen
speichern
Gruss Walburga

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:07:41
InaB
Hallo Walburga,
hört sich einfach an, aber kannst Du mir vielleicht ein Codebeispiel geben, oder den geposteten Code umbasteln?
Bin leider noch VBA-Anfänger...
Gruss, Ina

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:15:28
Chaos
Hallo Ina,
sie meinte in der Art:

Sub speicher1()
Dim pfad As String, Dateiname As String
pfad = ThisWorkbook.Sheets(1).Range("A4")
Dateiname = ThisWorkbook.Sheets(1).Range("I23")
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=pfad & "\" & Dateiname & ".xls"
End Sub


Hier wird das ganze Sheet kopiert.
Gruß
Chaos

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:06:26
Chaos
Servus Ina,
oder so:

Sub Sichern()
Dim wkbName as String, wkbNeu as String, wksName As String
wkbName = ThisWorkbook.Name
wksName = ActiveSheet.Name
Workbooks.Add
wkbNeu = ActiveWorkbook.Name
Workbooks(wkbName).Sheets(wksName).Range("A1:I72").Copy
Workbooks(wkbNeu).Sheets(1).Range("A1").PasteSpecial Paste:=xlValues
Workbooks(wkbNeu).Sheets(1).Range("A1").PasteSpecial Paste:=xlFormats
Dim pfad As String
pfad = Workbooks(wkbName).Sheets(wksName).Range("A4")
Workbooks(wkbNeu).SaveAs Filename:= pfad
ActiveWorkbook.Close
End Sub


Gruß
Chaos

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:25:00
InaB
Hallo Chaos,
danke für Deine Beiträge.
Irgendwie klappt das so noch nicht, die Formatierung der Zeilen/Spalten gehen noch immer verloren.
Hast Du noch eine Möglichkeit auf "Lager"?
Gruss, Ina

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:33:17
Chaos
Servus Ina,
meinst du Spaltengröße und Spaltenbreite ? Poste doch mal die Datei, dann kann ich mir das besser vorstellen, was da genau flöten geht.
Gruß
Chaos

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:35:24
InaB
Hallo Chaos,
genau das meine ich, Spaltengröße und Spaltenbreite.
Grüsse, Ina

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:42:00
Chaos
Servus Ina,
hiermit passiert das aber nicht:

Sub speicher1()
Dim pfad As String, Dateiname As String
pfad = ThisWorkbook.Sheets(1).Range("A4")
Dateiname = ThisWorkbook.Sheets(1).Range("I23")
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=pfad & "\" & Dateiname & ".xls"
End Sub


Ist das keine Möglichkeit für dich ? Wie schaut den der Rest von dem Sheet aus, gibt es da noch viele Einträge, die du nicht brauchst?
Gruß
Chaos

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 14:13:00
InaB
Hallo Chaos,
grudsätzlich ist das schon eine Möglichkeit.
Kleiner Wermutstropfen...
CommandButton, Makros etc. werden neben allen nicht benötigten Bereichen ab Spalte J mitkopiert.
Wenn machbar sollte nur der reine Text samt Formatierungen gespeichert werden.
Ich habe die Mappe hochgeladen... Vielleicht hast Du noch eine Idee?
https://www.herber.de/bbs/user/46550.xls
Grüsse, Ina

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 13:59:39
Chaos
Servus Ina,
ich glaube das sollte es sein:

Sub SuperKopieren()
Dim rngSource As Range, rngTarget As Range
Dim iCounter As Integer
Dim pfad As String, Dateiname As String, NameAlt As String
NameAlt = ThisWorkbook.Name
pfad = ThisWorkbook.Sheets(1).Range("A4").Value
Dateiname = ThisWorkbook.Sheets(1).Range("I23").Value
Workbooks.Add
Set rngSource = Workbooks(NameAlt).Sheets(1).Range("A1:I72")
Set rngTarget = ActiveWorkbook.Sheets(1).Range("A1:I72")
rngSource.Copy rngTarget
For iCounter = 1 To rngSource.Rows.Count
rngTarget.Rows(iCounter).RowHeight = _
rngSource.Rows(iCounter).RowHeight
Next iCounter
For iCounter = 1 To rngSource.Columns.Count
rngTarget.Columns(iCounter).ColumnWidth = _
rngSource.Columns(iCounter).ColumnWidth
Next iCounter
ActiveWorkbook.SaveAs Filename:=pfad & "\" & Dateiname & ".xls"
ActiveWorkbook.Close
End Sub


Gruß
Chaos

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 14:20:00
InaB
Hallo Chaos,
danke für Deine Mühe!
"SuperKopieren" kommt der Sache schon sehr, sehr, nahe!
Schön wäre, wenn die Gitterlinien, CommandButton und Makros fehlen würden...
Grüsse, Ina

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 14:45:52
Chaos
Servus Ina,
das mit den Gitternetzlinien ist kein Problem, Makros werden sowieso nicht kopiert (das ist der Bezug auf das Makro in der Ursprungsdatei), die Buttons zu entfernen ist etwas schwieriger.
Dauert eine Weile.
Gruß
Chaos

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 15:01:42
Walburga
Hallo Ina, hallo Chaos
Makro zum Button löschen:

Sub Shapes()
Dim sh As Object, C As Integer
For Each sh In ActiveSheet.Shapes
C = C + 1
'MsgBox sh.Name
sh.Visible = True
sh.Delete
Next
'MsgBox C & " Shapes vorhanden!"
End Sub


Gruss Walburga

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 15:06:53
Chaos
Danke Walburga,
habs über ActiveSheet.Shapes.SelectAll
Selection.Delete
gelöst.
Hier mal die Datei bis Dato Ina,
schau mal, ob's so passt.
https://www.herber.de/bbs/user/46553.xls
Das Makro steht unter Tabelle2.SuperKopieren.
Gruß
Chaos

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 15:12:29
Walburga
Hallo Ina, hallo Chaos
ich darf mich nochmals kurz einmischen und einen Tipp abgeben:
vermeide die select-Anweisungen!
Warum kopierst du nicht nach folgender Anweisung:
ActiveSheet.Copy
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
dann Makro "Shapes" ablaufen lassen
die unnötigen Zeilen löschen
weitere Einstellungen durchführen (Gitterlinien etc.)
Sheet speichern unter
Gruss Walburga

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 15:49:00
Chaos
Servus Walburga,
wäre wohl das einfachste gewesen, aber Ina wollte ja nur den Rechnungsbereich A1:I72 und wenn ich mir die Datei so anschaue, dann sind da noch einige Daten die zu löschen wären, und ich weiß nicht, ob das immer dieselben Zellen sind.
Übrigens habe ich geanu 1 Select-Anweisung, die macht das Ganze nicht wirklich zu einem Problem. man könnte natürlich auch dein Makro an dieser Stelle aufrufen.
Gruß
Chaos

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 16:03:00
InaB
Hallo Chaos,
ich habe gerade Deine Nachricht an Walburga gelesen.
Wenn durch ActiveSheet.Copy die Sicherung vereinfacht wird, wie müsste der Code dann aussehen?
Grüsse, Ina

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 15:52:00
InaB
Hallo Walburga, hallo Chaos,
erst einmal vielen, vielen Dank an euch für eure Bemühungen!
Und.. Die Sache nimmt wirklich tolle Formen an...
Was mir jetzt nur noch fehlt ist das Ausschalten der Gitternetzlinien und, falls möglich, der Zeilen-/Spaltenüberschriften.
Grüsse, Ina

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 16:02:00
Chaos
Servus Ina,
keine Gitternetzlinien im gesamten Sheet?
und keine Zeilen- und Spaltenbezeichnungen ?
Dann so:
https://www.herber.de/bbs/user/46554.xls
Gruß
Chaos

AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 16:46:28
InaB
Hallo Chaos,
das klappt sehr gut, Formatierungen werden erhalten, der Bereich weiß eingefärbt, die Zeilen-/Spaltenüberschriften und Gitternetzlinien werden ausgeblendet.
Welche Daten müssten noch gelöscht werden?
Und...
Wenn durch "ActiveSheet.Copy" die Sicherung vereinfacht wird, wie müsste der Code dann aussehen und würde dann evtl. auch ein Logo mitkopiert?
Grüsse, Ina

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 16:55:36
Chaos
Also Ina,
Bei dieser Lösung muss nichts mehr gelöscht werden.
Du hast ja jetzt einen funktionierenden Code, der das macht, was du willst. Bei ActiveSheet.Copy hast du das Problem, dass Makros, wenn vorhanden (und es sind welche vorhanden) mitkopiert werden. Diese möchtest du dann betimmt nicht haben (meldung beim Öffnen, etc.) und man muss sie löschen. Das geht, ist aber auch nicht ganz so einfach und unbedenklich, kann ja mal was schief gehen.
Deswegen würde ich sagen, dass die gestellte Aufgabe gelöst ist und wir das jetzt beenden oder hast du noch zur bisherigen Lösung einen Wunsch?
Gruß
Chaos

Anzeige
AW: Bereich speichern und Formatierungen erhalten?
05.10.2007 17:14:00
InaB
Hallo Chaos,
die Aufgabe ist von Dir wirklich toll und sehr gut gelöst worden. Vielen Dank für Deine Geduld!
Einen Wunsch zu dem Makro habe ich nicht mehr, denn es macht wirklich genau das, was ich mir vorgestellt habe.
ActiveSheet.Copy ist wohl nicht das Richtige für mich.
Sebstverständlich sollen nur die Daten gesichert werden, nicht die Makros etc. und damit hat sich meine Frage zu der Funktion natürlich erledigt.
Ich werde mir das Makro ausdrucken, in Ruhe anschauen und versuchen, es zu verstehen.
Der Lerneffect sollte schliesslich auch nicht zu kurz kommen ;o)
Vielen Dank noch einmal für Deine Mühe und ganz besonders auch für Deine Geduld!
Liebe Grüsse, Ina

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige