Verbrauchsrechner mit VBA
#1
Hallo an alle,

ich habe ein kleines Problem wo ich eure Hilfe brauche. ich erstelle gerade einen Verbrauchsrechner wo ich Kaltwasser, Warmwasser und Strom für jeden tag erfasse, dazu erstelle ich mir einen Monatskalender was ja auch so nicht das Problem ist. Mein Problem ist allerdings das ich zum Beispiel in Zelle K1 das Datum zum Beispiel 03.07.2016 und in Zelle K2 den dazugehörigen Wochentag. Nun möchte ich nachdemder Kallender erstellt worden ist nach der Spalte K drei  weitere spalten eingefügt werden und dann die Zelle K1 und K2 mit den neu erstellten Zellen Verbunden werden: derzeit mache ich das fogendermaßen:

Code:
Public Sub Test()
   Columns("L:N").Insert Shift:=xlToRight
   Range("K1:N1").Select
      With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
   End With
   Selection.Merge
   Range("K2:N2").Select
   With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
   End With
   Selection.Merge
 
End Sub

Das Grundlegende Problem ist nur das ich das für jeden Tag des Monats als eigene Sub anlegen muss und ich hoffe das ihr mir helfen könnt das etwas zu vereinfachen und zu verkürzen.

Besten Dank im voraus

Michael
Top
#2
Hallo Michael!
Lade doch mal die Datei hoch, die Du bisher hast.
Prinzipiell rate ich aber von verbundenen Zellen ab, schließlich willst Du ja etwas auswerten.
Tagesdaten gehören in eine Zeile.
Aber ohne Datei wäre es ein Stochern im Nebel.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
Hallo Ralf,

ich lade die Datei gleich hoch, genau das ist ja Problem es sollen ja nur die Header Zellen verbunden werden darunter sind dann die einzelnen Zellen wo die Werte eingetragen werden.

Gruße Michael


Angehängte Dateien
.xlsm   vorlage.xlsm (Größe: 31,5 KB / Downloads: 14)
Top
#4
Hi!
Wie ich schon schrieb: 
Ein Datensatz pro Zeile, dann ist die Auswertung ein Klacks.
Außerdem gehören die Monate nicht in einzelne Tabellenregister, sondern alle in ein Blatt.
Monatsauswertungen dann mit dem Autofilter iVm TEILERGEBNIS()
(Intelligente Tabelle mit Ergebniszeile)
und/oder mit einer Pivottabelle.

Die Massendatentabelle stelle ich mir so vor:

ABCDEFG
1 Zählerstand Verbrauch
2DatumKWSKWS
3Mi    01.06.20161000500664
4Do    02.06.20161001500,267010,26

ZelleFormatWert
A3TTT * TT.MM.JJJJ01.06.2016
A4TTT * TT.MM.JJJJ02.06.2016

ZelleFormel
E4=B4-B3
F4=C4-C3
G4=D4-D3

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#5
Hallo Ralf,

so habe ich das früher auch gemacht nur wollte ich das mal über diesen Weg probieren, es funktioniert ja auch soweit was mich nur stört ist das der Code

Code:
Public Sub Test()
   Columns("E:G").Insert Shift:=xlToRight
   Range("D1:G1").Select
      With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
   End With
   Selection.Merge
   Range("D2:G2").Select
   With Selection
       .HorizontalAlignment = xlCenter
       .VerticalAlignment = xlBottom
       .WrapText = False
       .Orientation = 0
       .AddIndent = False
       .IndentLevel = 0
       .ShrinkToFit = False
       .ReadingOrder = xlContext
       .MergeCells = False
   End With
   Selection.Merge

End Sub
 

zu lang wird da ich für jeden Tag eine eine Sub anlegen muss ansonsten komme ich zu dem selben Ergebnis. Wenn ich es erweitere kann ich es auch so machen das automatisch am letzten Tag des Monats ain neues Blatt angelegt wird und die Ergebnisse in ein Jahresblatt übertagen werden.

Gruß Michael
Top
#6
Tut mir leid, Michael,
aber ich werde keine Tabelle per überflüssigem Makro verschlimmbessern, die allen mir bekannten Regeln einer sinnvollen Tabellenstruktur widerspricht.
Vielleicht hat ja jemand anderes Zeit dafür.

Gruß und nix für ungut,
Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Hallo  Ralf,

ist absolut kein Problem trotzdem Danke für deine Hilfe.

Gruß Michael
Top
#8
Hallöchen,
Mal neben den Hinweisen von Ralf die Frage, warum Du jeden Tag einzeln einfügen willst. Du weißt doch, wie lang ein Monat ist und kannst das entsprechend vorbereiten. Da brauchst Du dann nichts mehr per Makro einzufügen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste