1.2k Aufrufe
Gefragt in Tabellenkalkulation von peters Mitglied (460 Punkte)
Hallo zusammen,

ein eigentlich profanes Problem, aber ich hänge fest.

Ich möchte den Zellinhalt aus Tabelle1.A1 in Tabelle2.B2 kopieren.

Die Problematik, an der ich scheitere ist, dass die Zielzelle eine verbundene Zelle aus Tabelle2.B2:Tabelle2.B3 ist.
Ich bekomme eine Fehlermeldung, weil die beiden Zellen unterschiedliche Größen haben.

Mein Code sieht so aus:

sub kopieren ()

    Sheets("Tabelle1").Select
    Selection.Copy
    Sheets("Tabelle2").Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

end sub

Hat jemand eine Idee?

LG

Peter

7 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi Peter,

löse die verbundenen Zellen auf - sie machen nur Ärger. Es gibt auch andere Möglichkeiten, eine Tabelle "optisch schön" zu gestalten.

Bis später, Karin
0 Punkte
Beantwortet von peters Mitglied (460 Punkte)
Du hast vom Grundsatz her recht, Karin  :-D

Ich verzeichte von mir aus möglichst auf verbundene Zellen, aber hier brauche ich das eben genau so.

Gibt es keine Möglichkeit, den Wert der ausgelesenen Zelle z.B. in eine Variable zu schreiben und mittels dieser dann einzufügen?

LG

Peter
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Peter,

was dedeutet bei dir  Selection.Copy - ist das nur eine einzige Zelle oder mehrere Zellen?

Du könntest übrigens anstelle der verbundenen Zellen ein Textfeld verwenden, wenn du unbedingt an dieser Stelle einen größeren Bereich zur Darstellung benötigst...

Bis später, Karin

0 Punkte
Beantwortet von peters Mitglied (460 Punkte)
Hi Karin,

das ist ein Code-Block aus einem längeren Code. Es werden mehrere Zellen nacheinander durchlaufen und kopiert.

Ein textfeld hilft mir nicht, weil auf die befüllte Zelle sich von zig anderen Zellen bezogen wird.

LG

Peter
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Peter,

na sehr lang sieht der Code aber nicht aus...

Wenn du ein Textfeld aus den AtiveX-Steuerelementen verwendest, dann hat dieses u.a. die Eigenschaft LinkedCell - dort kannst du eine Zelladresse angeben, mit der das Steuerelement verknüpft ist und alles was in der verknüpften Zelle steht wird im Textfeld angezeigt und umgekehrt. Du siehst also, das ist kein Grund nicht doch ein Textfeld anstelle von verbundenen Zellen zu verwenden.wink

Du hast aber nicht auf meine Frage geantwortet ob es sich um eine einzelne Zelle oder mehrere handelt bei  deinem Selection, deshalb kann ich nur den Hinweise geben, dass du - falls es sich um mehrere Zellen handelt - jede Zelle einzeln übertragen musst.

Bis später, Karin

0 Punkte
Beantwortet von peters Mitglied (460 Punkte)
Ja, ich muss eine Reihe von Zellen übertragen.
Und ich möchte das gerne so lösen, wie es derzeit ist - mit verbundenen Zellen als Ziel.

Gibt es da keine Möglichkeit?

Grüße

Peter
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Peter,

wie ich schon geschrieben habe: du musst die Zellen, deren Zielzelle nicht verbunden ist, getrennt davon kopieren. Für die verbundene Zelle musst du es anders lösen (z.B. wenn A4 üvertragen werden soll):

    Worksheets("Tabelle2").Range("B2") = Worksheets("Tabelle1").Range("A4")


Mehr kann ich nicht dazu sagen da ich deine Mappe nicht kenne und auch nicht die Zellen die kopiert werden sollen, da man nicht sehen kann, worauf sich Selection bei dir bezieht.

Übrigens: wie du siehst, kann man auf Select zu 99% aller Fälle verzichten.

Bis später, Karin

...