online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Ulle-gt5 vom 22.03.2021, 20:52 Options

Lösung

Formatierung geht beim kopieren und wandeln verloren

Hallo,
wer kann mir helfen?
Ich habe ein Kalkulationsformular(Tabelle1) aus dem bestimmte Daten kopiert und auf diesen Blatt gesammelt werden. (Formatierung??)Diese Daten werden im Block in eine ander Mappe(Datensammlung) kopiert.(Formatierung??)
Bei den Formaten handelt es sich um Text,Zahl ohne Komma, Zahl mit Komma und Benutzerdefiniert "t="0,00"mm"
Die Formatierung ist wichtg da die Datensammlung in eine Text-Datei gewandelt wird, um die Daten in ein anders Programm zu importieren.
Ich glaube Value ist der springente Punkt.
schon mal Danke
Gruß
Ulle

Sub TESTGIVspeichern()


Dim verz, dname As String
verz = Cells(5, 7)
dname = Cells(6, 3) & ".xls"
'Achtung richtiges Laufwerk eintragen!!
'ActiveWorkbook.SaveAs Filename:=("G:\" & verz & "\" & dname) ', FileFormat:=xlNormal
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveWorkbook.SaveAs Filename:=("C:\" & verz & "\" & dname) ', FileFormat:=xlNormal

Application.ScreenUpdating = False

Range("B200").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C6").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("C5").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("G5").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 1) = ActiveSheet.Range("C10").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 2) = ActiveSheet.Range("E10").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 3) = ActiveSheet.Range("C42").Value

ActiveSheet.Range("B30:B40").Copy
Range("b200").End(xlUp).Select
Cells(ActiveCell.Row + 0, ActiveCell.Column + 4).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("b200").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("E60").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("B58").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = "."
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q128").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q129").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q130").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q131").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q132").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q133").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q134").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q135").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q136").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q137").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q138").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q139").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q140").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q141").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q142").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q143").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q144").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q145").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q146").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q147").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q148").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q149").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q150").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q151").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q152").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q153").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q154").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q155").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q156").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q157").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q158").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q159").Value
Range("B65536").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("Q160").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("Q161").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("Q162").Value
Cells(ActiveCell.Row + 4, ActiveCell.Column + 0) = ActiveSheet.Range("Q163").Value

ActiveSheet.Range("B128:P169").Copy
Windows("Datensammlung.xls").Activate
Range("A65536").End(xlUp).Select
Cells(ActiveCell.Row + 0, ActiveCell.Column + 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A65536").End(xlUp).Select

Application.CutCopyMode = False
Range("a65536").End(xlUp).Select

Windows(dname).Activate

ActiveSheet.Range("B128:P169").Select
Selection.ClearContents
Application.CutCopyMode = False

Range("C5").Select



End Sub


Antwort schreiben

Antwort 1 von coros vom 23.03.2021, 06:50 Options

Hallo Ulle,

ich glaube nicht, dass es an .Value liegt, sondern eher daran, wie Du Deine kopierten Daten einfügst. Du fügst die Daten mit

Paste:=xlValues

ein. Das bedeutet, Du fügst nur die Werte ohne Formatierungen ein. Wenn Du auch die Formate mitnehmen möchstest, dann musst Du z.B.

Paste:=xlPasteAll

nehmen. Das fügt alles, auch die Formate mit ein. Probiers einfach mal aus.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Ulle-gt5 vom 23.03.2021, 12:51 Options

Hallo Oliver,
es funktioniert nicht.
Ich möchte nur den formatierten Zelleninhalt kopieren,
nicht Rahmen und Farbe.

Paste:=xlPasteAll
ist der Befehl für verbundene Zellen und wie heißt er bei einzelnen Zellen?

Gruß
Ulle

Antwort 3 von coros vom 24.03.2021, 05:34 OptionsLösung

Lösung
Hallo Ulle,

Du solltest Dich mal mit grundlegenden Eigenschaften des Befehls ".copy" bekannt machen. Eine Hilfe dazu wäre den Cursor in das Wort "copy" zu stellen und dann die F1-Taste zu betätigen. Die Eigenschaft "xlPasteAll" hat nichts mit verbundenen Zellen zu tun, sondern gibt an, dass alles, also auch Formate der Zellen mit einfügt werden sollen. Wenn Du Rahmen und Hintergrundfarbe nicht haben möchtest, dann musst Du diese per VBA-Befehl wieder löschen. Das geht z.B. so:

    With Range("B30:B40")
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
        .Borders(xlEdgeLeft).LineStyle = xlNone
        .Borders(xlEdgeTop).LineStyle = xlNone
        .Borders(xlEdgeBottom).LineStyle = xlNone
        .Borders(xlEdgeRight).LineStyle = xlNone
        .Borders(xlInsideVertical).LineStyle = xlNone
        .Borders(xlInsideHorizontal).LineStyle = xlNone
        .Interior.Pattern = xlNone
    End With

Andere Alternative wäre, Du beläst Deinen VBA-Code wie er ist und setzt dann abschließend die Formate für die Zellen. Um die VBA-Befehle zu erhalten nutze den VBA-Makrorekorder. Der zeichnet Dir alle Befehle auf, die Du dann nur am Ende in Deinen VBA-Code einpflegen musst.

Solltest Du nicht wissen, wie Du den Makrorekorder benutzt, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 7 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Ulle-gt5 vom 25.03.2021, 20:21 Options

Hallo Oliver,
Ich habe noch nicht alles durchprobiert.
nur noch mal zur Erklärung.
Ich bin absoluter Leihe auf dem Gebiet, daß ist eigentlich mein erstes Makro.
So, die Daten auf dem Tabellenblatt zu sammeln erschien mir als die einfachere Variante, da ich da die Zielzellen noch Formatieren kann. (Die Zielzellen sind immer die gleichen und werden immer wieder geleert.)

Range("B200").End(xlUp).Select
Cells(ActiveCell.Row + 1, ActiveCell.Column + 0) = ActiveSheet.Range("C6").Value
Cells(ActiveCell.Row + 2, ActiveCell.Column + 0) = ActiveSheet.Range("C5").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 0) = ActiveSheet.Range("G5").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 1) = ActiveSheet.Range("C10").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 2) = ActiveSheet.Range("E10").Value
Cells(ActiveCell.Row + 3, ActiveCell.Column + 3) = ActiveSheet.Range("C42").Value

ActiveSheet.Range("B30:B40").Copy
Range("b200").End(xlUp).Select
Cells(ActiveCell.Row + 0, ActiveCell.Column + 4).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
U.S.W.

Jetzt wird der Datenblock geschlossen in eine andere Mappe kopiert und an den letzten Datenblock angehängt.
Eine Formatierung der Zellen ist nicht möglich, belegte Zellen sind nicht eindeutig.

ActiveSheet.Range("B128:P169").Copy
Windows("Datensammlung.xls").Activate
Range("A65536").End(xlUp).Select
Cells(ActiveCell.Row + 0, ActiveCell.Column + 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A65536").End(xlUp).Select

Application.CutCopyMode = False

Bei erste Schritt ist die Formatierung O.K.
beim zweiten Schritt geht sie verloren!!
Hier wäre der Hintergrund (Farbe und Rahmen) kein Problem mehr, ist nicht mehr vorhanden!
Vieleicht macht die Erklärung mein Problem begreiflicher
Gruß
Ulle

Ähnliche Themen

AMappe hat VBA, Active X etc. verloren
Bastll  01.02.2008 - 21 Hits - 2 Antworten

Wandeln von Real in Hex Werte in Excel
Thunder_at_seven  16.03.2008 - 12 Hits - 10 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026