603 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Zusammen,

ich möchte ein Datenblatt erstellen in der nach Eintrag auf Tabelle1 (Formular) diverser Werte, ein Button gedrückt wird und im Hintergrund mehrere Zellen aus Tabelle 1 in Tabelle 2 (Historie) übertragen werden soll. Ziel ist ein Verlauf auf Tabelle2 zu erhalten, Wann, welcher Artikel, welche Menge mit welchem Gewicht ausgestellt wurde.

Der Wunsch ist aus Tabelle 1 (Formular) die Zellen G15, B20, A20, D20 zu kopieren und in einer neu-eingefügten Zeile in der Tabelle 2 (Historie) einzufügen.

Ich hoffe ich habe mich verständlich ausdrücken können und ihr habt eine simple Hilfe für mich. Mein Wissen mit VBA ist wie bei den meisten Fragestellern sehr gering.

Vielen Dank im voraus!

Gruß Dominik

8 Antworten

0 Punkte
Beantwortet von
Hallo Dominik,

Dafür bietet Excel ein automatisch im Hintergrund geführtes
%C3%84nderungen-in-einer-freigegebenen-Arbeitsmappe-
22aea671-cac7-4fa3-845d-eeb23725bd15">Änderungsprotokoll

an, welches üblicherweise für diese Zwecke verwendet wird. Dazu
muss die Arbeitsmappe freigegeben sein.

Probier es mal aus. Sollte dir das automatische Format nicht
gefallen, kannst du auch folgendes Makro verwenden.

Sub Historie()

Set Kopierbereich = Range("G15,B20,A20,D20")

r = Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each c In Kopierbereich.Cells
i = i + 1
c.Copy
Sheets("Tabelle2").Cells(r, i) = c
Next c
Application.CutCopyMode = False

End Sub
Gruß Mr. K.
0 Punkte
Beantwortet von
Ich seh' grad erst, dass 2 Zeilen überflüssig sind. Copy und Paste
macht ja nur Sinn, wenn man auch die Zellformate übertragen will. Für
den reinen Inhalt reicht der Code auch so aus.

Sub Historie()

Set Kopierbereich = Range("G15,B20,A20,D20")

r = Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each c In Kopierbereich.Cells
i = i + 1
Sheets("Tabelle2").Cells(r, i) = c
Next c

End Sub
0 Punkte
Beantwortet von
ich war mal so frei deinen Link von den <br> zu befreien :)
Änderungsprotokoll
0 Punkte
Beantwortet von
Dieser blöde Browser. Ich danke dir!
0 Punkte
Beantwortet von
Hi xlKing,

danke für die schnelle Antwort und entschuldige bitte, dass ich erst so spat darauf reagiere. Unglückliche Ereignisse haben mich daran gehindert.

So, nun habe ich deinen VBA-Code ausprobiert und versucht mir auch zu erklären. Aber ich versteh ihn nicht so ganz. Wann erfolgt die Aktion, in der die Makro ausgeführt wird? Der CommandButton ist hier ja nicht berücksichtigt, richtig?

Gruß
Dominik
0 Punkte
Beantwortet von
Sorry, ich seh gerade, dass ich keinen CommandButton erwähnt habe. Meine Versuche waren es die Aktion per Buttonbetätigung auszuführen.
0 Punkte
Beantwortet von
[u][b]So nochmals eine andere Frage.

Die Datei steht soweit ich mir das Vorgestellt habe. Nun habe ich eine neue Frage.

Wie kann ich den Inhalt einer ComboBox kopieren lassen?

Mein Code sieht derzeit so aus:

Sub Test1()
Worksheets("Historie").Rows("3:3").Insert Shift:=xlDown
Range("A24,C24,[u]ComboBox1
,F24").Copy
Worksheets("Historie").Range("A3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End Sub

Bei der Range wo "ComboBox1" steht müsste der richtige Befehl stehen um diesen Inhalt aus der ComboBox zu kopieren.

Vielen Dank im Voraus

Gruß
Dominik
0 Punkte
Beantwortet von
Hallo domdom.

Wenn du einen MS-Forms-Button verwendest, kannst du diesem per Rechtsklick das Makro zuweisen. Bei einem Commandbutton musst du halt die Sub-Zeile in Private Sub CommandButton1_Click() ändern, natürlich mit dem Namen deines Buttons.

Wie viele Spalten hat denn die Combobox und wo holst du darin enthaltenen Daten her? Hast du alternativ schon mal versucht die Datenüberprüfung zu verwenden? dann könntest du die entsprechende Zelle direkt einbinden.

Natürlich kannst du den Inhalt der Combobox auch mit der .Value Eigenschaft auslesen. Aber dafür müsstest du jede Combobox mit Namen ansprechen. Wie viele Comboboxen hast du denn?

Mr. K.
...