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

Aufgaben in Excel mit VBA automatisieren

Aufgaben in Excel mit VBA automatisieren
05.03.2024 14:08:13
Michael Koenemann
Guten Tag zusammen,

ich habe ein Problem und hoffe mir kann jemand helfen bei meinem Problem.

Ich habe mir eine Stunden-Datei erstellt mit Arbeitszeiten, Reisezeiten und so weiter.

Jetzt habe ich nach Möglichkeiten gesucht meine Ausgaben in jedem Monat anzuzeigen.
Bin dabei auf das Konsolidieren gekommen.
Es funktioniert so halbwegs, denn wenn ich Ausgaben nachtragen will muss ich jedesmal eine neue Konsolidierung machen.
Dabei verschieben sich in meiner Monats-Liste in der Formel der Zugriffsbereich.

Jetzt würde ich es gerne per VBA-Code lösen. Nur leider sind meine Kenntnisse nicht ausreichend dafür.

Hoffe mir kann hier jemand einen Ansatz geben, dann kämpfe ich mich weiter durch. Denn man will ja sein Wissen erweitern..

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufgaben in Excel mit VBA automatisieren
05.03.2024 14:09:36
SF
Hola,
das kann man auch mit Formeln abfangen indem man den Bereich/die Bereiche mit Index() definiert.
Gruß,
steve1da
AW: Aufgaben in Excel mit VBA automatisieren
06.03.2024 19:12:50
Piet
Hallo Michael

ich habe einen Code zum Konsolidieren für den Monat Januar entwickelt. Teste ihn bitte mal.
Leider kann ich die Datei nicht hochladen, weil ich mit dem alten Excel 2003 arbeite! (>600kb)

Ein Problem besteht in zwei Sheet! in "Konsolidierte_Ausgaben" gibt es das Datum nur in Spalte A!
Wie bitte soll ich das Datum für die Monate Februar, März angeben, wenn es dafür keine Spalten gibt??
In der Tabelle könnte man neben jeden Monat noch eine Datumspalte einfügen.

In der Tabelle "Ausgaben_eintragen" dasselbe Problem, Datum nur in der Spalte A, Text in Spalte B"
Wie trägst du dort das Datum und den Belegtext für die Folgemonate ein?? Daran scheitere ich zur Zeit.
In dieser Tabelle könntest du die Monate untereinander setzen, in fortlaufenden Zeilen statt Spalten.

Ich warte mal ab welche Lösung dir dazu einfällt, wie man das ändern kann??

mfg Piet

Option Explicit

Dim AC As Range, lz1 As Long
Dim AAdr As String, FAdr As String


'Konsolidierungs Formeln einfügen

Sub Konsolidierung_Januar()
Dim Datum As Date, ze As Long
Dim ASG As Worksheet, j As Long
Set ASG = Worksheets("Ausgaben_eintragen")
lz1 = ASG.Cells(Rows.Count, 1).End(xlUp).Row

With Worksheets("Konsolidierte_Ausgaben")
'Monat Januar Spalte B+C löschen
j = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Range("A2:B" & j).ClearContents

Datum = ASG.Range("A2").Value
AAdr = "B2" 'Anfangsadresse Januar
ze = 2 '1.Zeile in Konsolidierung

'Ausgaben Konsolidieren
For j = 2 To lz1 + 1
If ASG.Cells(j, 1) = Datum Then
FAdr = ASG.Cells(j, 3).Address
.Cells(ze, 2).Formula = "=Ausgaben_eintragen!" & FAdr
Else
.Cells(ze, 2).FormulaLocal = "=SUMME(" & AAdr & ":B" & ze - 1 & ")"
.Cells(ze, 1).Value = Datum: ze = ze + 1
FAdr = ASG.Cells(j, 3).Address
.Cells(ze, 2).Formula = "=Ausgaben_eintragen!" & FAdr
Datum = ASG.Cells(j, 1)
AAdr = .Cells(ze, 2).Address(0, 0)
End If
ze = ze + 1
Next j
'letzem Nullwert löschen
.Cells(ze - 1, 2).Value = Empty
End With
End Sub
Anzeige
AW: Aufgaben in Excel mit VBA automatisieren
06.03.2024 19:16:22
Piet
Nachtrag

den Code zum löschen aller Monatstabellen von den Jahreswerten kann man auch kürzen.
Hier mal als For Next Schleife für 12 Monate.

mfg Piet



Sub Schaltfläche1_Klicken()
Dim Monat As Variant
If MsgBox("Willst du die Jahreswerte zurücksetzen?", vbYesNo + vbExclamation, "Zeiten zurücksetzen?") = vbYes Then
For m = 1 To 12
Monat = Format(DateSerial(2024, m, 1), "mmmm")
With Worksheets(Monat)
.Range("E3:G33").ClearContents
.Range("I3:K33").ClearContents
.Range("O3:S33").ClearContents
.Columns("A").ColumnWidth = 4
.Columns("B").ColumnWidth = 13.5
.Columns("C").ColumnWidth = 13
.Columns("D").ColumnWidth = 16.9
.Columns("E").ColumnWidth = 12.7
.Columns("F:N").ColumnWidth = 8
.Columns("O").ColumnWidth = 15.9
.Columns("P").ColumnWidth = 30
.Columns("Q:R").ColumnWidth = 11.9
.Columns("S").ColumnWidth = 50
.Columns("T:V").ColumnWidth = 12.6
.Columns("W").ColumnWidth = 23.9
.Columns("X").ColumnWidth = 11
.Columns("Y").ColumnWidth = 3
.Columns("Z:AF").ColumnWidth = 20
.Columns("AG:AH").ColumnWidth = 10
.Rows("1:1").RowHeight = 50
.Rows("2:2").RowHeight = 85
.Rows("3:33").RowHeight = 30
.Rows("34:34").RowHeight = 20
.Rows("35:35").RowHeight = 25
.Rows("36:36").RowHeight = 10
.Rows("37:37").RowHeight = 25
End With
Next m
End If
End Sub
Anzeige
AW: Aufgaben in Excel mit VBA automatisieren
09.03.2024 07:57:03
Michael Koenemann
Hallo Piet

danke erstmal für die Hilfe.

Zu deinen Fragen:
  • In dem Sheet "Ausgaben" trage ich Datum und Betrag händisch ein, da nicht jeden Tag eine Ausgabe entsteht

  • Den Übertrag vom Ausgaben Sheet zum Konsolidierten Ausgaben Sheet mach ich mit der Excel Funktion "Konsolidieren". Und hole mir per Formel dann aus dem Konsolidierten Ausgaben Sheet den Gesamtwert in den entsprechenden Monat und Tag


  • Meine Idee wäre den Gesamtwert direkt aus dem Ausgaben Sheet zu holen und das Konsolidierte Ausgaben Sheet wegzulassen.

    Kurze Frage noch zu deinem Code. Der wird in das Sheet von "Konsolidierten Ausgaben" reinkopiert und getestet??
    Sorry falls es eine Blöde Frage ist, aber ich bin Anfänger wenn es um VBA-Code geht...

    Gruß
    Michael
    Anzeige
    AW: Aufgaben in Excel mit VBA automatisieren
    09.03.2024 12:34:03
    Piet
    Hallo Michael

    der Code von mir gehört in ein normales Modul, oder bei ActiveX-Steuerelemente ins Blatt des Steuerelements.
    Ich bneutze lieber die alten CommandButton, denen kann man ein Makro aus dem Modul direkt zuweisen.

    Die Funktion Konsolidieren in Excel habe ich noch nie ausprobiert. Kannst du die bitte mit dem MarkoRecorder aufzeichnen.
    Vielleicht kann man ja den Code nach dem aufzeichnen noch optimieren. Der Code ist mir bisher aber völlig unbekannt.

    Frage: wenn du den Gesamtwert aus dem Ausgasben Sheet holst, wo soll der dann hinkopiert werden??

    mfg Piet
    Anzeige
    AW: Aufgaben in Excel mit VBA automatisieren
    09.03.2024 14:52:42
    Michael Koenemann
    Hallo Piet

    ich habe mir einen Button in das Ausgaben Sheet gemacht und deinen Code eingefügt.
    Der Funktioniert super!! Danke..

    Zum Konsolidieren:

    Ich trage händisch Datum und Beträge in das Ausgaben Sheet ein.

    Dann geht man auf das Konsolidierte Ausgaben Sheet und mit der Funktion "Konsolidieren" sagt man Funktion "Summe", gibt unter Verweis einen Bereich ein ( in meinem Fall:Ausgaben Sheet A1:M3000). Dann trägt Excel alles in das Konsolidierte Ausgaben Sheet ein.

    Von dort hole ich mit der Formel:
    =WENNFEHLER(WENN(ODER(R3="Volle Spesen";R3="Halbe Spesen");SVERWEIS(B3;Konsolidierte_Ausgaben!$A$1:$B$3996;2;);"");0)
    die Werte ab.
    Diese Formel ist in einer Spalte im jeweiligen Monat an jedem Tag hinterlegt.
    Ändern tut sich nur das R und das B -->mit fortlaufender Zahl für jeden einzelnen Tag
    Hinten in der Formel bei dem $ Zeichen ändert sich nur das B mit fortlaufender Buchstaben für den Monat in jeder Spalte in dem Konsolidierten Ausgaben Sheet

    Kann dir leider nur beschreiben wie es aktuell ist.

    Gruß
    Michael
    Anzeige
    AW: Freut mich das mein Code gut funktioniert oWt
    09.03.2024 19:52:10
    Piet
    ...
    AW: Freut mich das mein Code gut funktioniert oWt
    11.03.2024 10:48:38
    Michael Koenemann
    Hallo Piet,
    ich hoffe ich nerve nicht aber ich möchte halt verstehen was du dort an Code geschrieben hast.
    Ich schreibe ein paar Kommentare (hinter die // ) an die jeweiligen Zeilen und hoffe das ich den Code verstanden habe um Ihn für die anderen Monate zu nutzen....

    Private Sub CommandButton1_Click()

    Dim AC As Range, lz1 As Long
    Dim AAdr As String, FAdr As String


    'Konsolidierungs Formeln einfügen

    'Konsolidierung_Januar()
    Dim Datum As Date, ze As Long
    Dim ASG As Worksheet, j As Long
    Set ASG = Worksheets("Ausgaben_eintragen")
    lz1 = ASG.Cells(Rows.Count, 1).End(xlUp).Row

    With Worksheets("Konsolidierte_Ausgaben")
    'Monat Januar Spalte B+C löschen
    j = .Cells(Rows.Count, 2).End(xlUp).Row + 1
    .Range("A2:B" & j).ClearContents // .Range("A2:C"&j)

    Datum = ASG.Range("A2").Value
    AAdr = "B2" 'Anfangsadresse Januar // Für Februar dann "C2"
    ze = 2 '1.Zeile in Konsolidierung

    'Ausgaben Konsolidieren
    For j = 2 To lz1 + 1
    If ASG.Cells(j, 1) = Datum Then
    FAdr = ASG.Cells(j, 3).Address
    .Cells(ze, 2).Formula = "=Ausgaben_eintragen!" & FAdr
    Else
    .Cells(ze, 2).FormulaLocal = "=SUMME(" & AAdr & ":B" & ze - 1 & ")" // statt dem "B" ein "C"
    .Cells(ze, 1).Value = Datum: ze = ze + 1
    FAdr = ASG.Cells(j, 3).Address
    .Cells(ze, 2).Formula = "=Ausgaben_eintragen!" & FAdr
    Datum = ASG.Cells(j, 1)
    AAdr = .Cells(ze, 2).Address(0, 0)
    End If
    ze = ze + 1
    Next j
    'letzem Nullwert löschen
    .Cells(ze - 1, 2).Value = Empty
    End With

    End Sub
    Anzeige
    AW: Aufgaben in Excel mit VBA automatisieren
    05.03.2024 15:35:43
    Michael Koenemann
    Hallo ,

    in meiner Ausgabenliste stehen teilweise mehrere Summen unter einem Datum.

    Funktioniert das auch mit dem Index()?
    Das erst alle Summen zusammen gezählt werden und dann in der Monat-Liste unter dem entsprechenden Tag die Gesamtsumme steht?

    Aktuell habe ich eine Ausgaben-Tabelle, konsolidiere alle Ausgaben in einer Konsolidierten_Ausgaben Tabelle und zeige dann die Gesamtsumme im Monat an.
    Finde ich umständlich.
    Deshalb war meine Idee es mit VBA-Code zu versuchen.
    Eine neue Ausgabe eintragen in die Tabelle und per Button dann automatisieren..

    Falls jemand eine Idee dazu hat oder eine andere Möglichkeit kennt.
    Ich bin für alle Lösungsvorschläge offen, vielleicht bitte nur die Vorschläge kurz beschreiben mit einem Beispiel..

    Dann erarbeite ich mir den Rest selber..


    Anzeige
    AW: Aufgaben in Excel mit VBA automatisieren
    05.03.2024 19:17:06
    Piet
    Hallo

    um etwas mit VBA zu machen müssten wir eine Beispieldatei sehen, am besten mit Lösungsvorgabe von Hand.
    Ohne den Tabellenaufbau zu kennen kann man kein Makro einfach so "ins Blaue" schreiben.

    mfg Piet

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige