Collapse column

Autor Thema: Office 2007: Makro will Formatierung nicht mitnehmen  (Gelesen 1880 mal)

Offline Fosekosz

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2007
Office 2007: Makro will Formatierung nicht mitnehmen
« am: März 18, 2015, 14:28:11 Nachmittag »
Hallo liebes Forum,

sitze schon seit längerem am Thema Makro und habe mir getreu nach dem Motto "Probieren geht über studieren" ein paar Fähigkeiten angeeignet. Mit diesen bin ich auch schon zu einem ganz vernünftigen Makro gekommen, das mir eine tägliche Bestandsliste als neues Tabellenblat in eine Übersichtsliste kopieren soll. Alles funktioniert auch soweit, nur die Formatierung 'kommt nicht mit'.

Habe es mit allen möglichen PasteSpecial Varianten probiert und Google/Foren abgegrast, keine Besserung, höchstens neue Fehlermeldungen. Habe es hoffentlich gut genug auskommentiert. Nochmal soll erwähnt sein, alles klappt wunderbar, nur Farben und Rahmen etc. erscheinen am Ende nicht, nur die reinen Inhalte.

Ich hoffe es findet jemand einen groben Schnitzer, ich bedanke mich schonmal im Voraus!

Sub Bestand_Übertragen()

Dim Datum As Date
Dim i As Integer

Datum = Date                                                        'Zum Benennen eines neuen Tabellenblatts mit aktuellem Datum
Datum = Format(Datum, "dd.mm.yyyy")

    For i = 1 To Sheets.Count                                   'Überprüft, ob Bestandsführung schon eingetragen
        If Sheets(i).Name = Datum Then
            MsgBox "Bestand vom " & Datum & " bereits eingetragen!"
            Sheets(i).Select
            Exit Sub
        End If
    Next i

 ChDir ("Pfad\Bestandsführung")
 Workbooks.Open Filename:="Pfad\Bestandsführung.xlsx"
   
 Application.DisplayAlerts = False                  'schaltet Systemmeldungen aus
 Sheets(1).Select                                        'wählt Tabellenblatt 1 aus
 Range("A1:P48").Select                              'markiert Bestand
 Selection.Copy                                          'kopiert Bestand
 ActiveWorkbook.Close (False)                     'schließt Bestandsführung ohne Speichern
 Application.DisplayAlerts = True                  'schaltet Systemmeldungen ein
 
 Sheets.Add After:=Worksheets(Worksheets.Count)     'erstellt neues Tabellenblatt am Ende
 ActiveSheet.Name = Datum                                        'benennt neues Tabellenblatt nach aktuellem Datum
 
 Range("A1:P48").Select                               'markiert Zielbereich des neuen Tabellenblatts in Übersichtsliste
 Selection.PasteSpecial (xlPasteAll)                'fügt Bestandsführung [color=red](theorethisch)[/color] mit Format ein

End Sub

Vielen Dank,
Fosekosz

PS.: Die Bestandsliste, aus der ich kopieren will, ist schreibgeschützt, allerdings will ich ja nur lesen. Vielleicht da ein Problem? Per Hand kann ich die Formatierung mit kopieren. Makroaufzeichnung dieses Versuchs liefert allerdings keinen anderen Code.

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw: Office 2007: Makro will Formatierung nicht mitnehmen
« Antwort #1 am: März 18, 2015, 19:44:09 Nachmittag »
Moin,

ohne Muster-Mappe(n) macht das Helfen keinen Spaß.
Warum kopierst du anschließend nicht einfach die Formatierung noch einmal? Einfach aufzeichnen ...
Warum du aber PasteSpecial statt Paste verwendest, erschließt sich mir nicht.
Gruß
Günther

Offline Fosekosz

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2007
Antw: Office 2007: Makro will Formatierung nicht mitnehmen
« Antwort #2 am: März 18, 2015, 21:04:32 Nachmittag »
Hallo,

vielen Dank für die Antwort. Mustermappe darf und will ich hier nicht Posten. Die ist sehr umfangreich und es würde lang dauern sie zu anonymisieren. Außerdem ist der Gedanke dahinter sehr einfach, es existieren zwei Dateien, eine schreibgeschützte, die täglich aktualisiert wird und eine, in die die Daten der ersteren als neues Tabellenblatt eingefügt werden sollen.

Es würde mir schon reichen, wenn ich das gesamte Tabellenblatt rüberkopieren würde, da ich sowieso alle Daten davon brauche und nicht zwingend mit Range arbeiten muss, aber inzwischen reizt es mich schon allein des Verständnisses halber, den Fehler zu finden.

PasteSpecial habe ich verwendet, da Paste allein scheinbar nicht ausreichte. Ob das am Ende nun dasselbe/mehr/weniger macht, kann ich nicht beurteilen, da ich wie erwähnt gerade noch lerne, hatte gehofft mit ebendieser Erwähnung mehr Verständnis und weniger zartes Herabblicken zu erzeugen.

Ich werde morgen mal noch ein zusätzliches Makro zum kopieren des Formats aufzeichnen, vielleicht klappts. Aber selbst wenn muss ich sagen, würde mich immernoch interessieren warum er das Format partout nicht haben möchte, zumal eine solche zusätzliche Zeile ja auch eigentlich nicht Sinn verschiedenster Paste Optionen ist.

Vielen Dank für die Hilfe,
Fosekosz

Offline Fosekosz

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Mittelmäßig
  • Version [Office] : Office 2007
Antw: Office 2007: Makro will Formatierung nicht mitnehmen
« Antwort #3 am: März 19, 2015, 13:33:54 Nachmittag »
Hallo,

habe jetzt mal das Kopieren des Formats als Makro aufgezeichnet, mehr als PasteSpecial macht er auch hier nicht:

Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Weiterhin spuckt er Laufzeitfehler '1004': Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden. (den vermutlich allgemeinsten Fehler..) aus, selbst wenn ich es bis zu xlPasteFormats reduziere (Operation, SkipBlanks, Transponse lösche). Irgendwo ist hier der Wurm drin. Irgendjemand noch eine Idee?

Vielen Dank,
Fosekosz

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.