Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro- Daten per Button in anderes Tab-Blatt übertragen





Frage

Hallo! In meiner Rechnungsdatei soll ich einen Button erstellen, der per Knopfdruck Daten aus der Tabelle Rechnung in die Tabelle Rechnungspositionen einfügt. Mit einfachem Copy-Paste hab ich es nicht hingekriegt, weil ich auch mehrere Artikelnummern in der Rechnung in extra Zeilen übertragen muss. Außerdem gibt es in der Rechnungsposition Tabelle die Spalte Monat und Quartal und ich weiss nicht wie ich die aus dem Datum herausziehe (habe Formel:Heute() benutzt) Ich hab hier ma einen Screenshot von der Tabelle gemacht: http://kerstin.swgbr.com/ebay/EXCELhilfe.doc Ich will aus der 1. die Daten in die 2. und auch die Monat und Quartal Zellen ausfüllen lassen! (!?!?) Hilfe! Hoffe ihr habt Rat :-/ Viele Grüße, Kerstin und Marta

Antwort 1 von coros

Hi Kerstin und Marta,

nachfolgender VBA Code kopiert das von Euch geforderte von einem Blatt in das andere. Außerdem wird aus dem Datum der Monat und das Quartal ermittelt. Kopiert den nachfolgenden Code in ein StandardModul.

Sub Daten_kopieren()
Dim ZeileTab1 As Long, ZeileTab2 As Long, Wiederholungen As Long

'Letzte beschriebene Zeile in Tabellenblatt
'"Rechnung" in Spalte A ermitteln
ZeileTab1 = Worksheets("Rechnung"). _
Range("A65536").End(xlUp).Row

'For/Next-Schleife zum kopieren
For Wiederholungen = 18 To ZeileTab1

'1. leere Zeile im Blatt "Rechn.-Position" ermitteln
ZeileTab2 = Worksheets("Rechn.-Position"). _
Range("A65536").End(xlUp).Offset(1, 0).Row

'Rechnungsnummer kopieren
Worksheets("Rechnung").Cells(10, 6).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 1)

'Kundennummer kopieren
Worksheets("Rechnung").Cells(11, 6).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 2)

'Datum kopieren
Worksheets("Rechnung").Cells(12, 6).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 3)

'Artikelnummer kopieren
Worksheets("Rechnung").Cells(Wiederholungen, 1).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 6)

'Artikelbezeichnung kopieren
Worksheets("Rechnung").Cells(Wiederholungen, 2).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 7)

'Einzelpreis kopieren
Worksheets("Rechnung").Cells(Wiederholungen, 3).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 8)

'Stückzahl kopieren
Worksheets("Rechnung").Cells(Wiederholungen, 4).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 9)

'Rabattsatz kopieren
Worksheets("Rechnung").Cells(Wiederholungen, 5).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 10)

'Endpreis kopieren
Worksheets("Rechnung").Cells(Wiederholungen, 6).Copy _
Worksheets("Rechn.-Position").Cells(ZeileTab2, 11)

'Aus dem Datum den Monat herausfiltern
Worksheets("Rechn.-Position").Cells(ZeileTab2, 4) = _
Format(Worksheets("Rechn.-Position").Cells(ZeileTab2, 3), "mmmm")

'Aus dem Datum das Quartal herausfiltern
Worksheets("Rechn.-Position").Cells(ZeileTab2, 5) = _
Format(Worksheets("Rechn.-Position").Cells(ZeileTab2, 3), "q")

Next Wiederholungen
End Sub


Da ich nicht weiß, ob Du Dich mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.

1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diesen.

2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11

3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle) und klicke doppelt auf diesen Eintrag

4. Klicke danach nacheinander in der Menüleiste auf Einfügen => Modul.

5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.

Starten kann man solch ein Makro z.B. über eine Schaltfläche. Da ich nicht weiß, ob Du weißt, wie man eine Befehlsschaltfläche in ein Tabellenblatt einfügst, kommt hier eine kurze Anweisung.

1. Gehe in der Menüleiste auf Ansicht => Symbolleiste => Steuerelement-Toolbox

2. Klicke auf die 6.Schaltfläche von links (Schaltflächenkommentar: Befehlsschaltfläche)

3. Positioniere die Schaltfläche in Deinem Tabellenblatt und passe gegebenenfalls die Größe an.

4. Klicke in der Symbolleiste auf die 3.Schaltfläche von links (Schaltflächenkommentar: Code anzeigen).

5. In das geöffnete Fenster schreibst Du zwischen die Texte “Private Sub CommandButton1_Click()“ und “End Sub“ in die Leerzeile Call Makroname oder nur der Makroname.

6. Klicke in der Symbolleiste auf die erste Schaltfläche von links um den Entwurfmodus zu beenden (Schaltflächenkommentar: Entwurfmodus beenden).

Wenn Du alles richtig gemacht hast, sollte das Makro, nachdem Du die Schaltfläche betätigt hast, abgearbeitet werden.

Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.

So, ich hoffe, Ihr kommt klar. Wenn nicht, meldet Euch.

MfG,
coros
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 marta

Hallo Coros!
Ich bin begeistert! Vielen herzlichen Dank für die ausführliche und [ZENS] Beschreibung, ich bin total begeistert!!! Da hätte ich lange probieren können! Super!
Schön dass es so hilfsbereite menschen wie dich gibt!

Marta