Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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

VBA MACRO

VBA MACRO
04.11.2020 09:40:12
Julia
Liebes Forum,
kann mir jemand mit folgendem Problem Helfen.
Ich habe eine Datei, die so aussieht wie die angehängte, nur länger
https://www.herber.de/bbs/user/141300.xlsx
Jede Spalte entspricht einer Stunde und es gibt 8760 Stunden im Jahr- sprich in meinem Fall 8760 Spalten, wobei nur die spalten zu den Zeiten die Sonne geschienen hat werte haben, daher die Lücken.
Zudem habe ich 20 Werte pro Stunde, sprich 20 Zeilen.
Ich würde gerne zwei Dinge tun.
1. Das Format "umdrehen"
Anstelle von 8760 Spalten hätte ich gerne 8760 Zeilen.
und anstatt meiner 20 Zeilen hätte ich gerne 20 spalten.
Da ich viele solcher Tabellen habe dachte ich an ein VBA Makro? Ist das Mögblich
2. Alle 24 Stunden einen Mittelwert (dann pro Spalte) bilden. Aus dann jeder Spalte hätte ich gerne quasi den Tageswert, sprich 24 Stunden zusammengefasst. Das wären dann 20 mal 365 Tageswerte
Wäre das möglich?
Ich würde mich wahnsinnig freuen, vielen Dank für die Hilfe
Julia

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA MACRO
04.11.2020 09:57:53
Daniel
HI
um solche Tabellen zu kippen, kannst du sie kopieren und an andere Stelle mit Inhalte einfügen - Transponieren (das Symbol mit dem stehenden und liegenden Rechteck) verwenden
einen Mittelwert über 24 Zeilen, der auch beim nach unten ziehen immer um 24 Zeilen weiter springt, bekommst du so:
=Mittelwert(Bereich.Verschieben(A1;1+(Zeile(A1)-1)*24;0;24;1))
oder
=Mittelwert(Index(A:A;1+(Zeile(A1)-1)*24):Index(A:A;1+Zeile(A1)*24-1))
wobei die 1+ die Zeilennummer ist, in der die Daten beginnen und ggf angepasst werden muss.
Gruß Daniel
AW: VBA MACRO
04.11.2020 10:01:52
ralf_b
für den ersten Schritt kannst du das hier versuchen. Es ist nichts Anderes als das was du mittels Tabelle kopieren, neues Blatt erstellen, Tabelle einfügen mittels transponieren, auch von Hand machen könntest. Aufgrund der mageren Beispieldatei, kann ich nicht garantieren das es auch 100%ig funktioniert.
Sub tabelletransponieren()
ActiveSheet.UsedRange.Copy ' kompleter, benutzten bereich des Blattes kopieren
Sheets.Add After:=ActiveSheet 'neues Blattt erzeugen
Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True  'Einfügen
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige