VisualBasic Übersichtstabelle und monatliche Berichte erstellen

EvilMoe

Commander
Registriert
Jan. 2005
Beiträge
2.785
Hallo Leute,

vielleicht kann mir ja der ein oder andere bei einer vermeintlich recht einfachen Sache helfen:
Ich möchte eine Excel Datei erstellen, die projektbezogen mehrere monatliche Berichtszeiträume umfasst. Das heißt ich habe im ersten Tabellenblatt eine Übersicht mit allg. Daten. Im Zweiten Tabellenblatt habe ich eine Übersicht in dem die Ergebnisse einzelner Monate dargestellt werden, als Tabelle. Mein drittes Tabellenblatt ist der erste Berichts-Monat.

  • Als erstes muss ich ja für jeden Monat den Monatsbericht kopieren (ob mit den alten oder neuen Daten ist erstmal egal, dafür würde ich ggf. ein "Löschen-Button" auf das Tabellenblatt einfügen). Ich wollte eigentlich eine MsgBox haben, in der ich das Datum und das Jahr auswählen kann. Die habe ich auch hinbekommen. Allerdings weiß ich nicht, wie er aus den beiden Variablen (Monat + Jahr) die Arbeitsmappe bennen soll. Muss ich den neuen Namen der Arbeitsmappe als Variable deklarieren? Ich habe es auch schon hinbekommen, dass ich die Mappe kopieren und selbst benenne. Das möchte ich aber nicht, weil das hinterher nicht einheitlich wirkt, wenn man sich nicht an die Formatierung hält. Q
  • Die Übersicht: In den Monatsblättern sind die Zellen die angezeigt werden immer gleich, d.h. ich möchte z.B. den "Auftragswert" aus Monat 1 in der Übersicht haben, ich habe das mit Range.Value gelöst. Sobald ich den Befehl per Button auslöse, zeigt er mir den Wert an. Jetzt kommt aber der Clou: Wie schaffe ich es, dass in meiner Übersicht der neu erstellte Name der Arbeitsmappe untereinander aufgeführt wird? Wenn ich das Tabellenblatt kopiere würde er ja den neuen Wert überschreiben, dass macht dann ja kein Sinn. Soll ich hier eine IfThen Funktion verwenden, dass er prüft ob die Zeile voll ist, und er das in die nächste Zeile schreibt?

Ich bin für jeden Tipp wirklich dankbar!
 
Könnntest Du ein Beispiel posten? Ein Vorher- Nacherszenario wäre gut, damit man erkannen kann was Du genau meinst.
 
Hallo Gameforce,

ich habe im Anhang mal grob eine kleine Datei erstellt, die jetzt keinen Code enthält sondern mein "Problem" veranschaulicht.
 

Anhänge

  • Arbeitsblatt Beispiel.xlsx
    14,3 KB · Aufrufe: 425
Ich bin gerade über mein Lesezeichen zu diesem Thread gestolpert. (hatte damals keine Zeit)
Wie kommst du voran?

Vielleicht hilft dir das weiter. (sollte mit der Beispieldatei funktionieren)
Code:
Sub monatneu()
Dim blattname As String

blattname = InputBox("neuer Blattname:")

Sheets("Monat_01").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = blattname

Sheets("Übersicht").Select
Range("Tabelle1[[#Headers],[Monat]]").End(xlDown).Offset(1, 0).Value = blattname

End Sub

Punkt 1:
Du kannst die Blätter entweder über ihren Namen ansprechen z.B. Sheets("Monat_01") oder über ihre Nummer z.B. Sheets(3). Mit Sheets(Sheets.Count) wird in jedem Fall das letzte Blatt addressiert.

Punkt 2:
Es gibt da sicher bessere Möglichkeiten; ich bin in meinem Beispiel vom Kopf der Monatsspalte in die nächste freie Zeile runtergesprungen und habe dort den neuen Blattnamen eingetragen.
 
Zurück
Oben