Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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)
Antworten 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)
Antworten 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)
Antworten 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
Antworten 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)
Antworten Top
#7
Hallo  Ralf,

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

Gruß Michael
Antworten 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)
Antworten Top


Gehe zu:


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