WinFuture-Forum.de: Excel automatisch sortieren/Tabellenblätter automatisch anlegen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Office 2013
Seite 1 von 1

Excel automatisch sortieren/Tabellenblätter automatisch anlegen Excel Spesenliste


#1 Mitglied ist offline   ghekko 

  • Gruppe: aktive Mitglieder
  • Beiträge: 203
  • Beigetreten: 14. Februar 09
  • Reputation: 1

geschrieben 10. Februar 2016 - 17:07

Hallo Excel Freunde!

Derzeit arbeite ich an einer eigenen Spesenliste, damit ich meine Ausgaben im Überblick habe. Ich weiss, im Internet gibt es tausende Vorlagen aber ich möchte mir lieber selber eine erarbeiten. Die nachfolgenden Punkte bereiten mir noch Kopfzerbrechen.

1. Für die jeweiligen Monate habe ich ein Tabellenblatt "Vorlagemonat" erstellt. Um die jeweiligen Monate zu erstellen muss ich jeweils diesen Monat kopieren und umbenennen. Gibt es da eine einfachere/schnellere Methode? Ich habe mir da eine Schaltfläche vorgestellt, welche per Mausklick 12 Tabellenblätter anlegt mit den Monatsnamen Jan - Dez.
2. Mit Makros kenne ich mich nicht aus. Kann ich Daten automatisch nach Datum sortieren, ohne Makro? Falls nicht, wie baue ich so ein Makro ein?
3. Dieser Punkt ist der unwichtigste von allen, ich möchte aber wissen ob das machbar ist. Besteht die Möglichkeit auf einem definierten Tabellenblatt Daten (Datum, Kategorie, Betrag, Hinweis) einzugeben, so dass diese automatisch im jeweiligen Tabellenblatt bzw. Monat aufgelistet werden?

Ist das mit Excel machbar oder sollte hier Access eingesetzt werden?

Ich bin für Fragen, Anregungen, Tipps und Tricks offen!

Liebe Grüsse
Ghekko
0

Anzeige



#2 Mitglied ist offline   xploit 

  • Gruppe: aktive Mitglieder
  • Beiträge: 254
  • Beigetreten: 09. Mai 05
  • Reputation: 7

geschrieben 10. Februar 2016 - 17:27

Ich sag jetzt mal ganz salopp: Das ist alles eigentlich gar nicht so schwer.

zu 1: Du erstellst einfach eine Schleife, die durch alle Monate geht und erstellst dann innerhalb der Schleife jeweils einmal ein Worksheet als Kopie deiner Vorlage. Das Makro legst du entweder auf ein Button oder, etwas eleganter, auf ein Button oben im Ribbon.

Das geht in etwa so - optimierungspotential ist vorhanden, ich schreib das nur mal ausm Kopf :)


Dim Monate(1 To 12) As String
Dim i As Integer

Monate(1) = "Januar"
Monate(2) = "Februar"
...

For i = 1 To 12
 Worksheets("Vorlage").Copy after:=Worksheets(i)
 ActiveSheet.Name = Monate(i) 
Next i




zu 2:
Das gute an den Makros ist, man muss sich damit nicht groß auskennen, denn es gibt den "grandiosen" Makrorekorder. Wenn du wissen willst, wie du einfache Excel-Aufgaben in VBA nachbaust, startest du den einfach. Der wandelt dann jeden Klick in echten VBA-Code um.

Der Rekorder befindet sich im Entwickler-Ribbon. Einfach auf "Record" drücken, deine Daten sortieren und die Aufnahme dann (meist unten Links) stoppen. Du hast nun im VBA-Code (ALT + F11) ein neues Modul, in dem sich der VBA-Code für die aufgenommen Aktion befindet. Das gebe ich dir mal als Hausaufgabe mit. Das krieg ich ausm Kopf jetzt nämlich nicht hin. Vielleicht hilft dir aber auch folgende kleine Anleitung weiter: http://www.j-hennekes.de/1073673.htm

zu 3:

Klar, das geht natürlich auch. Also eine Art "Konfig-Tabellenblatt"? Ich nutze für solche Zwecke "benannte Bereiche". Du hast oben links, neben der Formel-Zeile, ein zusätzliches Eingabefeld. Wenn du nun eine Zelle oder einen Bereich markierst, kannst du diesem dort einen Namen geben. Mit diesem Namen kannst du den Inhalt einer Zelle direkt in einer Formel ansprechen. Mit STRG+F3 öffnest du einen Dialog, der alle benannten Bereich anzeigt.


Ansonsten sollte Excel dafür ausreichen.

Dieser Beitrag wurde von xploit bearbeitet: 10. Februar 2016 - 17:28

0

#3 Mitglied ist offline   ghekko 

  • Gruppe: aktive Mitglieder
  • Beiträge: 203
  • Beigetreten: 14. Februar 09
  • Reputation: 1

geschrieben 11. Februar 2016 - 11:47

Danke für die Hilfe!
1. Habe ich hinbekommen, besteht hier die Möglichkeit die Tabellenblätter nach dem Tabellenblatt XY einzufügen?

Sub Vorlagemonat_kopieren()

Sheets("Kategorie").Activate
Dim Monate(1 To 12) As String
Dim i As Integer

Monate(1) = "Jan"
Monate(2) = "Feb"

For i = 1 To 2
 Worksheets("Vorlagemonat").Copy after:=Worksheets(i)
 ActiveSheet.Name = Monate(i)
 
Next i

End Sub



2. Konnte ich auch lösen
Sub Datum_sortieren()
    Range("A8:D1000").Sort Key1:=Range("A8:A1000"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End Sub



3. Schaue ich mir noch genau an

4. Neu habe ich ein Tabellenblatt "Übersicht" ins Leben gerufen. Auf den einzelnen Monatsblätter sind die jeweiligen Kategorien aufgelistet (Miete, Kleider, Versicherung, Steuern, ...). In der Übersicht sind alle Kategorien aller Monate aufgelistet. Die jeweiligen Beträge werden aus den Tabellenblättern ausgelesen. Die Datei dient als Vorlage, damit ich diese für weitere Jahre verwenden kann. Da nun die Tabellenblätter nicht existieren, erscheint in der Übersicht bei allen Kategorien #BEZUG! da er das Tabellenblatt nicht findet. Wenn ich diese mit dem Makro erstelle ändert sich in der Übersicht nichts. Wie kann ich diese Verbindungen "aktualisieren"?

Liebe Grüsse
0

#4 Mitglied ist offline   ghekko 

  • Gruppe: aktive Mitglieder
  • Beiträge: 203
  • Beigetreten: 14. Februar 09
  • Reputation: 1

geschrieben 11. Februar 2016 - 16:05

Punkt 1 konnte ich nun lösen :)

Sub Vorlagemonat_kopieren()

Sheets("Kategorie").Activate
Dim Monate(1 To 12) As String
Dim i As Integer

Monate(1) = "Jan"
Monate(2) = "Feb"
Monate(3) = "Mrz"
Monate(4) = "Apr"
Monate(5) = "Mai"
Monate(6) = "Jun"
Monate(7) = "Jul"
Monate(8) = "Aug"
Monate(9) = "Sep"
Monate(10) = "Okt"
Monate(11) = "Nov"
Monate(12) = "Dez"

For i = 1 To 12
 Worksheets("Vorlagemonat").Copy After:=Worksheets(Worksheets.Count)
 ActiveSheet.Name = Monate(i)
 
Next i

End Sub


0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0