2.7k Aufrufe
Gefragt in Tabellenkalkulation von herbybeatle Einsteiger_in (77 Punkte)
Hallo,

kann mir vielleicht jemand bei folgendem Problem helfen. Ich möchte aus einem Tabellenblatt Zellen kopieren und in einem anderen einfügen. Dabei soll die Originalformatierung (Schrift, -größe etc.) nicht verändert werden (dürfen), auch nicht, wenn man bei rechtem Mausklick nicht den Befehl "Inhalte auswählen/Werte" benutzt. Wäre für Tipps sehr dankbar, wie ich das per VBA hinkriegen könnte.

lg

Herbert

9 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Herbert,

folgendes Makro kopiert die Zellinhalte A1:A16 aus Tabelle1 in den gleichen Bereich der Tabelle2, ohne die Formate zu verändern.

Option Explicit

Sub kopieren()
Range("A1:A16").Copy
Sheets("Tabelle2").Select
Range("A1:A16").PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
Range("A1").Select
End Sub


Kopiere den Code in ein Allgemeines Modul und starte ihn aus Tabelle1 heraus.

Gruß
Rainer
0 Punkte
Beantwortet von herbybeatle Einsteiger_in (77 Punkte)
Hallo Rainer,

danke für Deine Antwort. Diese löst momentan aber noch nicht mein Problem. Habe ein Turnierprogramm in Excel gemacht. Jetzt möchte ich dem User gestatten, aujs bestimmten Tabellenblättern Zellen zu kopieren, um diese dann in einem anderen Blatt wieder einzufügen. Falls der User dies nicht mit "Werte einfügen" macht, so soll die Formatierung aber auch nicht verändert werden.

Bisher habe ich folgendes geschrieben, komme damit aber nicht weiter:

Private Sub TeilnehmerBlitz_change(ByVal Target As Range)

Range("J26:J33").Select
Selection.Interior.ColorIndex = 15
.Pattern = xlSolid
Target.Font
.Name = "Arial"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.Font.Bold = True
Selection.Font.Bold = False
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Herbert,

da kann ich Dir leider nicht helfen.

Gruß
Rainer
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo Herbert,

sorry.. ich kenne mich mit VBA auch nicht so aus, aber vielleicht gibt es ja einen einfacheren Weg.

Da ich aus Deiner Anfrage nicht erkennen kann, ob Du immer in das gleiche andere Tabellenblatt die Werte überträgst oder nicht, so mal ein Gedanke, wenn es immer das gleiche Tabellenblatt wäre.

Du möchtest die Orgninalformate aus zB.Tabelle1 in Tab2 mit übernehmen.

Kopiere dazu das Tab1 mit Rechtsklick auf Tabelle1 und dort verschieben/kopieren auswählen. Dann unten links das Kästchen Kopie erstellen und ggf. noch vor eine anderes Tabellenblatt Deiner Wahl setzen lassen. Mit OK bestätigen und Du würdest eine 1:1 Kopie mit dem Namen Tabelle1(2) erhalten.

Wenn nun Daten aus Tab1 nach Tab1(2) kopiert werden, dann ist die Formatierung schon vorhanden.

Vielleicht hilft Dir das Dein Vorhaben zu vereinfachen.

In diesem Sinne.. have a nice Day... Gruß Helmut
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Helmut,

ich habe es so verstanden, dass die Formate des Zielarbeitsblattes erhalten bleiben sollen beim Einfügevorgang.

Gruß
Rainer
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
@Rainer,

thanx... hast Recht - Schade aber auch...


Bis dann mal wieder.... Gruß Helmut
0 Punkte
Beantwortet von herbybeatle Einsteiger_in (77 Punkte)
Ja, ihr habt recht. Die Formate des Zielarbeitsblattes sollen erhalten bleiben. Möchte nun das Problem von einer anderen Seite angehen. Mittels Schaltfläche im Tab.blatt "C" eine Zelle kopieren und Werte im Tab.blatt "Teilnehmer-Blitz" einfügen.
Code:
Private Sub CommandButton33_Click()
Sheets("Teilnehmer-Blitz").Unprotect Password:="passwort"
Sheets("C").Unprotect Password:="passwort"
Sheets("C").Range("C6").Copy
Sheets("Teilnehmer-Blitz").Range("J26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("C").Protect Password:="passwort"
Sheets("Teilnehmer-Blitz").Protect Password:="passwort"
End Sub

Bekomme aber immer eine Fehlermeldung: Laufzeitfehler '1004':
Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden!
Wer weiß Rat?
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Herbert,

probier's mal so

Option Explicit

Private Sub CommandButton1_Click()
Sheets("Teilnehmer-Blitz").Unprotect Password:="passwort"
Sheets("C").Unprotect Password:="passwort"
Sheets("C").Range("C6").Copy
Sheets("Teilnehmer-Blitz").Select
ActiveSheet.Range("J26").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("C").Protect Password:="passwort"
Sheets("Teilnehmer-Blitz").Protect Password:="passwort"
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von herbybeatle Einsteiger_in (77 Punkte)
Hallo Rainer,
danke für Deinen Beitrag! Habe inzwischen folgende andere Möglichkeit gefunden, die funktioniert.

Private Sub CommandButton34_Click()
Sheets("Teilnehmer-Blitz").Unprotect Password:="passwort"
Sheets("C10").Unprotect Password:="passwort"
If Sheets("C10").Range("H8").Value = 3 Then Sheets("Teilnehmer-Blitz").Range("J26").Value = Sheets("C10").Range("C10").Value Else Sheets("Teilnehmer-Blitz").Range("J26").Value = Sheets("C10").Range("C6").Value
Range("D10").Select
Sheets("Teilnehmer-Blitz").Protect Password:="passwort"
Sheets("C10").Protect Password:="passwort"
End Sub

Testhalber habe ich jetzt auch Deine Methode probiert. Funktioniert auch tadellos. Wie ich sehe, führen sehr viele Wege nach Rom ;)
Nochmals danke für die Unterstützung,
lg
Herbert
...