Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Berechnung von Veränderungen

Berechnung von Veränderungen
09.12.2012 20:33:33
Veränderungen
Hallo zusammen,
ich habe ein Problem. Ich muss eine Tabelle umbauen und dafür wollte ich mir mit einem Makro helfen. Ich habe eine Tabelle, die bisher Daten zu verschiedenen Personen nicht in einer Zeile stehen hat, sondern immer verteilt auf 5 Zeilen und mehrern Spalten.
Jetzt möchte ich "einfach" eine neue Tabelle haben, wo ich die Angaben in einer Zeile angezeigt bekomme. Hierfür kann ich pro Person immer gut mit
Range("C6").Select
Selection.Copy
Range("W2").Select
ActiveSheet.Paste

arbeiten. Das sind dann pro Person ca. 20 solcher Einträge. Aber dann müsste ich das für eine andere Person machen. Person A beginnt z.B. in Zeile 1, Person B in Zeile 7 und Person C in Zeile 13 usw. - die Spalten mit den Infos sind immer gleich - aber in der neuen Tabelle müsste halt eine Person "ausgelesen" werden und dann in der nächsten Zeile müssten die Infos von 6 Zeilen tiefer ausgelesen werden usw.
Das Verhältnis bleibt immer gleich aber die Zellen wo ausgelesen wird verändern sich und für jede Person soll eine neue Zeile geschrieben werden. Ich hoffe ich habe mich nicht zu verworren ausgedrückt?
Ich wäre sehr dankbar, wenn mir jemand helfen könnte!!!
Zur Veranschaulichung:
https://www.herber.de/bbs/user/82951.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Habe deine leider nicht ...
09.12.2012 22:15:06
Luc:-?
…störungs- und redundanzfreie Aufzeichnung mal auf das Wesentliche gekürzt, Anna-Sophie;
die Abweichungen von der Linearität bzw Redundanzen solltest du aber noch erklären. Ansonsten ist es kein Problem, daraus ein sehr kurzes zyklisches Pgm zu machen. Dabei müsste man auch nicht kopieren, sondern könnte die relevanten Daten (Werte u/o Formeln) und Formate gleich in die neuen Standortzellen schreiben.
Hier mal die Basis für das Pgm. Zeilenvariable muss pro Prs zyklisch um 6 Zeilen erhöht wdn (für Ziel um 1 Zeile). Innerhalb könnte es auch einen Zyklus geben u/o alles wird in ein Datenfeld gelesen und auf 1× geschrieben (ggf dito für Formate).
    Range("C2").Copy
Range("R2").Paste
Range("C3").Copy
Range("S2").Paste
Range("C4").Copy
Range("T2").Paste
Range("B4").Copy
Range("U2").Paste
Range("C5").Copy
Range("V2").Paste
Range("C6").Copy
Range("W2").Paste
Range("G2").Copy
Range("X2").Paste
Range("G3").Copy
Range("Y2").Paste
Range("G4").Copy
Range("Z2").Paste
Range("F4").Copy
Range("AA2").Paste
Range("G5").Copy
Range("AB2").Paste
Range("G6").Copy
Range("AC2").Paste
Range("N2").Copy
Range("AD2").Paste
Range("J3").Copy
Range("AE2").Paste
Range("J6").Copy
Range("AH2").Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("AI2")
Range("N2").Copy
Range("AL2").Paste
Range("N4").Copy
Range("AJ2").Paste
Range("N5").Copy
Range("AK2").Paste
Bitte noch äußern, ob bzw wie Formate übernommen wdn sollen!
Kann das jetzt nicht fortsetzen; muss abschalten.
Gruß Luc :-?

Anzeige
AW: Habe deine leider nicht ...
10.12.2012 05:55:57
Anna-Sophie
Guten Morgen,
die Werte sollen im gleichen Format (Standard) übernommen werden, es geht mir wirklich "nur" drum, das die Tabelle anders aufgebaut wird.
Bei den markierten Zeilen hatte ich einen Fehler begangen... es hätte heißen müssen
Range("J6").Copy
Range("AI2").Paste
und
das die Zelle N2 an zwei Stellen auftaucht hätte seine Richtigkeit - wäre aber notfalls auch nicht schlimm wenn man den zweiten Befehl herausnehmen würde (sollte das zu Problemen führen)
Range("N2").Copy
Range("AL2").Paste
Vielen lieben Dank!

AW: Habe deine leider nicht ...
10.12.2012 10:20:35
Klaus
Hi Anna-Sophie,
ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe. Dein Makro ist für Person 1, für Person zwei ist es das gleiche 6 Zeilen weiter unten, für Person 3 sinds 12 Zeilen weiter unten usw?.
Die "neue" Tabelle soll untereinander ab "R" erstellt werden, die erste Person in Zeile 2, die zweite Person in Zeile 3 usw?
Wenn ichs richtig hab, versuch mal dieses Makro für die ersten vier Personen. Kannst du beliebig erweitern.
(Im Makro "StarteMich" werden die variablen Zeilen für die Person X angegeben. Das Makro "Test" schreibt deren Werte in die nächste freie Zeile ab R. Den Rekordercode habe ich etwas optimiert, dH die .Select und .Selection rausgeworfen. Da Formate nicht übernommen werden müssen, habe ich auf .Copy verzichtet und übernehme nur die Werte in den Formatierungen der Zielzellen ab R2. Eventuelle Formeln werden ignoriert, es werden nur Werte übertragen)
Sub StarteMich()
Call Test(0)
Call Test(6)
Call Test(12)
Call Test(18)
'** und so weiter ....
'** oder per Schleife:
'Dim i As Integer
'For i = 0 To 18 Step 6
'Call Test(i)
'Next i
'** statt "to 18" halt die höchste Zeile setzen die du hast
End Sub
Sub Test(lRowEingabe As Long)
Dim lRowAusgabe As Long
lRowAusgabe = Cells(Rows.Count, 18).End(xlUp).Row + 1       'nächste freie Zeile
Range("R" & lRowAusgabe).Value = Range("C2").Offset(lRowEingabe, 0).Value
Range("S" & lRowAusgabe).Value = Range("C3").Offset(lRowEingabe, 0).Value
Range("T" & lRowAusgabe).Value = Range("C4").Offset(lRowEingabe, 0).Value
Range("U" & lRowAusgabe).Value = Range("B4").Offset(lRowEingabe, 0).Value
Range("V" & lRowAusgabe).Value = Range("C5").Offset(lRowEingabe, 0).Value
Range("W" & lRowAusgabe).Value = Range("C6").Offset(lRowEingabe, 0).Value
Range("X" & lRowAusgabe).Value = Range("G2").Offset(lRowEingabe, 0).Value
Range("Y" & lRowAusgabe).Value = Range("G3").Offset(lRowEingabe, 0).Value
Range("Z" & lRowAusgabe).Value = Range("G4").Offset(lRowEingabe, 0).Value
Range("AA" & lRowAusgabe).Value = Range("F4").Offset(lRowEingabe, 0).Value
Range("AB" & lRowAusgabe).Value = Range("G5").Offset(lRowEingabe, 0).Value
Range("AC" & lRowAusgabe).Value = Range("G6").Offset(lRowEingabe, 0).Value
Range("AD" & lRowAusgabe).Value = Range("N2").Offset(lRowEingabe, 0).Value
Range("AE" & lRowAusgabe).Value = Range("J3").Offset(lRowEingabe, 0).Value
Range("AI" & lRowAusgabe).Value = Range("J6").Offset(lRowEingabe, 0).Value
Range("AL" & lRowAusgabe).Value = Range("N2").Offset(lRowEingabe, 0).Value
Range("AJ" & lRowAusgabe).Value = Range("N4").Offset(lRowEingabe, 0).Value
Range("AK" & lRowAusgabe).Value = Range("N5").Offset(lRowEingabe, 0).Value
End Sub
Grüße,
Klaus M.vdT.

Anzeige
Nachfrage?
10.12.2012 10:26:49
Klaus
Hi,
Shooting3, Missing3 und Range Time3 sollen nicht mitkopiert werden? Oder hab ich die vergessen?
Grüße,
Klaus M.vdT.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige