Excel - Formel "Makro" für Zellen in verschiedene Tabellenblätter kopieren/Sortieren

psr_ut

Newbie
Registriert
Nov. 2022
Beiträge
3
Hallo Zusammen,


ich habe eine Excel und brauche dringend ein Makro das mir eine Zeile von Quelldatenblatt z.b (Erfassung) A2-H3 kopiert.
dabei sollen C2 in ein separates Tabellenblatt, D2, E2, F2, G2, H2 in ein separate Tabellenblätter u.s.w
aber hier sollen 2 Zellen vom Quelldatenblatt immer identisch sein
z.b.
A2+B2..... +C2 >in Tabellenblatt 1
A2+B2..... +D2 >in Tabellenblatt 2
A2+B2..... +E2 >in Tabellenblatt 3
A2+B2..... +F2 >in Tabellenblatt 4
A2+B2..... +G2 >in Tabellenblatt 5
A2+B2..... +H2 >in Tabellenblatt 6

A2 ist der Dienstleister und B2 dann das Datum, diese Felder müssen in die Tabelle immer übertragen werden, auch immer danach in die nächste Zeile springen zum einfügen. Also Prüfung ob Zeile leer ist.

In den Zieldatenblättern wird in jedem Datenblatt mit Zelle "A3"

hier mal eine Übersicht wie das gemeint ist!
1668090930101.png


ich habe versucht eines zusammengebastelt aber das funktioniert nicht so wie es soll.
 

Anhänge

  • 1668090589384.png
    1668090589384.png
    29,7 KB · Aufrufe: 140
Lösung
Kurz angerissen: wenn du dieses (schreckliche) .COPY verwendest ist das dasselbe wie manuelles Copy-Paste.

Dreht man prinzipiell um…
Worksheets("Kennzahl 7").Range("A4,??,??") = Worksheets("Erfassung").Range("A4,B4,I4").Value
…würde das nur die Werte übertragen. (Allerdings in die Formatierung am Ziel.)
Ich arbeite so mit COPY praktisch nie; würde da A4,B4,C4 mit A4,B4,G4 befüllt? Vermute ich mal.

Dann zur nächsten Zeile unter A4 - das wäre dann logisch immer dir 5. Zeile. Du müsstest auf verschiedene Weise zählen oder Eckdaten ermitteln - z.B. die letzte belegte Zeile.

Zudem vermeide ich klassische Adressen. Range("A4") wäre für mich Range(Cells(4,1)) [Spalte/Zeile sind da vertauscht!] Und nun kannst du wunderbar...
Hallo,

hier die Datei die ein teil vom ganzen ist. Die Kennzahlen die ich aus der gesamten Tabelle erhalte benötige ich genau so.

Beim Reiter Erfassung soll das als Journal untereinander geschrieben werden. Die Daten die ich benötige sollen jeweils in das dazugehörige Tabellenblatt geschrieben werden. Hier auch jeweils wenn die Zeile voll ist in die nächste Schreiben.

Pivo-bekomm ich nicht hin, da ich im ausgangszustand keine daten sondern nur leere Felder habe.

das einfachste für mich ist es wenn ich ein Steuerelementecode habe der das macht, der Rest der Gesamten Tabelle funktioniert soweit super, mir fehlen hier jetzt nur die Werte die sich dann generieren.
 

Anhänge

  • beispiel.rar
    45,8 KB · Aufrufe: 99
ich habe hier ja jetzt was ich brauche und das was funktioniert.

ich muss hier jetzt aber noch immer in die nächste leere Zeile schreiben.

Private Sub CommandButton1_Click()
Worksheets("Erfassung").Range("A4:C4").Copy Destination:=Worksheets("Kennzahl 1").Range("A4")
Worksheets("Erfassung").Range("A4,B4,D4").Copy Destination:=Worksheets("Kennzahl 2").Range("A4")
Worksheets("Erfassung").Range("A4,B4,E4").Copy Destination:=Worksheets("Kennzahl 3").Range("A4")
Worksheets("Erfassung").Range("A4,B4,F4").Copy Destination:=Worksheets("Kennzahl 4").Range("A4")
Worksheets("Erfassung").Range("A4,B4,G4").Copy Destination:=Worksheets("Kennzahl 5").Range("A4")
Worksheets("Erfassung").Range("A4,B4,H4").Copy Destination:=Worksheets("Kennzahl 6").Range("A4")
Worksheets("Erfassung").Range("A4,B4,I4").Copy Destination:=Worksheets("Kennzahl 7").Range("A4")
End Sub

wie schreibe ich das jetzt das er hier auf jedem Tabellenblatt die nächste freie Zeile unter A4 findet und dort die Daten hin kopiert. außerdem hätte ich gerne nur den Wert und nicht die Formatierung.
 
Kurz angerissen: wenn du dieses (schreckliche) .COPY verwendest ist das dasselbe wie manuelles Copy-Paste.

Dreht man prinzipiell um…
Worksheets("Kennzahl 7").Range("A4,??,??") = Worksheets("Erfassung").Range("A4,B4,I4").Value
…würde das nur die Werte übertragen. (Allerdings in die Formatierung am Ziel.)
Ich arbeite so mit COPY praktisch nie; würde da A4,B4,C4 mit A4,B4,G4 befüllt? Vermute ich mal.

Dann zur nächsten Zeile unter A4 - das wäre dann logisch immer dir 5. Zeile. Du müsstest auf verschiedene Weise zählen oder Eckdaten ermitteln - z.B. die letzte belegte Zeile.

Zudem vermeide ich klassische Adressen. Range("A4") wäre für mich Range(Cells(4,1)) [Spalte/Zeile sind da vertauscht!] Und nun kannst du wunderbar über Schleifenkonstruktionen die Cell-Koordinaten zählen und berechnen.

CN8
 
  • Gefällt mir
Reaktionen: psr_ut
Zurück
Oben