1.5k Aufrufe
Gefragt in Tabellenkalkulation von astronaut Einsteiger_in (31 Punkte)
Hallo allerseits!

Wieder einmal brauche ich die Hilfe von euch Spezialisten.
Ich muss in unserer Firma die Artikeltexte (Beschreibung der Artikel, die wir verkaufen) überarbeiten. Nun habe ich in einem ersten Arbeitsblatt Textfragmente, welche ich per Formel zu vielen kompletten Artikeltext zusammengefügt habe.
Nun will ich, dass, wenn ich den "Befehl" dazu gebe (ich denke an ein Steuerelement-->Schaltfläche mit der Aufschrift "Daten übertragen", welches man anklicken kann), diese Artikeltexte kopiert und in einem zweiten Arbeitsblatt als Wert einfügt.
Beispiel: Ich habe im Arbeitsblatt "Formeln" in der Zelle A1 das Textfragment "Test-Text 1", in A2 das Fragment "Text-Text 2" und in A3 das Fragment "Text-Text 3".
In Zelle B1 habe ich per Formel =A1&A2 den Text "Test-Text 1Test-Test2" gemacht; in Zelle B2 mit =A1&A3 den Text "Test-Text1Test-Text3".
Wenn ich nun auf die Schaltfläche "Daten übertragen" drücke, werden die Zellen B1 und B2 kopiert und im Arbeitsblatt "fertige Texte" als Werte eingeführt; 1. Zelle soll dabei C5 sein (der 1. Text steht also in C5, der zweite Text in C6).

Das klingt ja wieder einmal hochkompliziert, aber vielleicht gibt's da ein einfaches Makro, welches dies ermöglicht.
Das Excelfile soll letzten Endes dann eine Vorlage (.xlt) werden, weil die Texte in mehrere Sprachen übersetzt werden; wird das Makro in den aus der Volage enstehenden "Folge-Files" automatisch übernommen?

Vielen Dank im Voraus für eure Hilfe!

Grüsse
Matthias

3 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Matthias,

nachfolgendes Makro sollte das machen, was Du Dir vorgestellt hast.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Kopieren()
Sheets("Tabelle1").Range("B1:B2").Copy
Sheets("Tabelle2").Range("C5").PasteSpecial Paste:=xlPasteValues
End Sub
Blattnamen musst Du natürlich noch anpassen, wenn die bei Dir nicht "Tabelle1" und "Tabelle2" heißen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von astronaut Einsteiger_in (31 Punkte)
Es hat genau so funktioniert wie ich es mir vorgestellt habe, vielen Dank!
Kleine Anmerkung an mögliche "Nachfolger" mit dem gleichen Problem:

Wenn mehrere Bereiche kopiert werden müssen, einfach entsprechend die Zeilen

Sheets("Tabelle1").Range("B1:B2").Copy
Sheets("Tabelle2").Range("C5").PasteSpecial Paste:=xlPasteValues


beliebig oft wiederholen.

Um das Marko über die Schaltfläche laufen zu lassen, die Schaltfläche mit dem Befehl

Private Sub CommandButton1_Click()
Application.Run "Name des Makros"
End Sub


versehen.

Grüsse
Matthias
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Matthias,

gerne geschehen. Danke auch für die Rückmelung.

Mal zu Deinem Tipp: Das ist leider nicht immer so, wie Du es schreibst, bzw. zum Teil zu umständlich. Das was Du geschrieben hast, also das mit so oft kopieren, bzw wiederholen wie benötigt, wird für Dein Projekt so passen, allerdings ist dass immer abhängig von dem was der Benutzer möchte.

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