Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1260to1264
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

Datum Eingabe

Datum Eingabe
Jan
Hallo,
ich versuche schon seid einiger Zeit ein Makro zu erstellen, welches mir aus einer Tabelle ein Balkendiagramm erstellt. Hat soweit auch alles gut geklappt.
Jetzt möchte ich eine Eingabe hinzufügen, welche erscheint, wenn das Diagramm erstellt wird und in der ich das Anfangs- und Enddatum des Diagramms eingeben kann und diese Daten dann in die Formatierung des Diagramms übertragen werden.
Kann mir jemand helfen?
Danke schonmal.
- Jan

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datum Eingabe
03.05.2012 13:54:53
Tino
Hallo,
keine Ahnung ob ich Dich richtig verstanden habe?!
Ich versuche es einfach mal mit einem Beispiel:
Button drücken
von Datum einstellen   --&gt  Übernahme
bis Datum einstellen    --&gt  Übernahme
https://www.herber.de/bbs/user/80021.xls
Gruß Tino
AW: Datum Eingabe
03.05.2012 14:09:53
Jan
Hallo Tino,
erstmal danke für dein Antwort. Das ist auch schon fast perfekt.
Nur eine kleine Änderung vielleicht.
Meine Situation:
Ich habe in Spalte C (Y-Achse) ein Haufen Vorgänge und in Spalte D (X-Achse) ein Haufen Anfangsdaten, woraus mein Diagramm besteht. Nun möchte ich, wenn ich das Makro aktiviere, lediglich mit den eingegebenen Anfangs- und Enddaten das "Minimum" und das "Maximum" der X-Achse festlegen.
Ich hoffe ich konnte mich verständlich ausdrücken.
Danke, Jan
Anzeige
AW: Datum Eingabe
03.05.2012 14:55:16
Tino
Hallo,
ok vielleicht so.
evtl. Tabelle anpassen
evtl. Datum Anfang und Ende anpassen.
Daten müssen nach Datum sortiert sein.
Sub BereichZuweisen()
Dim varAnfang, varEnde
Dim DatumAnfang&, DatumEnde&

DatumAnfang = DateSerial(2011, 5, 3) 'Anfang 
DatumEnde = DateSerial(2012, 5, 8) 'Ende 

With Tabelle1 'Tabelle anpassen 
    With .Range("C2", .Cells(.Rows.Count, 3).End(xlUp)).Resize(, 2)
        varAnfang = Application.Match(DatumAnfang, .Columns(1), 1)
        If Not IsNumeric(varAnfang) Then
            varAnfang = 1
        ElseIf .Cells(varAnfang, 1) < DatumAnfang Then
            varAnfang = varAnfang + 1
        End If

        varEnde = Application.Match(DatumEnde, .Columns(1), 1)
        
        If Not IsNumeric(varEnde) Then
            varEnde = 1
        End If
        
        .Parent.ChartObjects("Diagramm 1").Chart.SetSourceData Source:=Range(.Cells(varAnfang, 1), .Cells(varEnde, 2))
    End With
End With
End Sub
Gruß Tino
Anzeige
AW: Datum Eingabe
03.05.2012 15:25:00
Jan
Hmmm ne irgendwie will er nicht. Er meckert bei der letzten Zeile (.Parent.ChartObjects....), auch wenn ich "Diagramm 1" in "Balkendiagramm" umbenenne (so heisst es bei mir, befindet sich übrigens auf einer extra seite, falls das wichtig ist?). Ach und die Inputbox ist ja futsch!?
Also falls wir aneinander vorbei reden:
Ich hab eine Tabelle "Balkendiagramm Tabelle" und eine Seite "Balkendiagramm" wo sich das Diagramm befindet. Jetzt brauche ich ein Makro, dass mir eine Inputbox zeigt (so wie die von dir eben). In der Inputbox kann ich dann ein beliebiges Anfangs- und Enddatum auswählen, welche er dann als Minimum und Maximun der X-Achse verwendet.
Anzeige
AW: Datum Eingabe
03.05.2012 16:49:59
Tino
Hallo,
ok. hier noch ein Beispiel mit den von Dir angegebenen Tabellen/Diagramm
Also Vorgabe für Auswahl Datum habe ich für min und max Wert aus Spalte C eingebaut.
https://www.herber.de/bbs/user/80023.xls
Gruß Tino
Danke
04.05.2012 08:45:54
Jan
Krasses Teil. Vielen Dank!!!
AW: Datum Eingabe
04.05.2012 08:51:21
Jan
Jetzt hackt es noch an mir.
Habe versucht, es bei mir "einzubauen" aber hier meckert er gleich:
"Property Get ValueDate(strCaption$, Optional VorGabeDate As Date) As Date"
Hast du ne Ahnung?
AW: Datum Eingabe
04.05.2012 09:04:36
Tino
Hallo,
hast Du alles übernommen auch das Klassenmodul?
Userbild
Gruß Tino
Anzeige
AW: Datum Eingabe
04.05.2012 09:39:40
Jan
Hey,
Ok ich habe das UserForm1 vergessen. Habe jetzt keine Fehlermeldung mehr aber es funktioniert trotzdem noch nicht.
Hier ist mal die Tabelle:
Userbild
Spalte C (Y-Achse) sind die Vorgänge und in Spalte D (X-Achse) sind die Anfangsdaten. Außerdem ist im diagramm noch eine dritte Datenreihe: Spalte H (auch X-Achse). Am Ende soll das Diagramm so aussehen:
Userbild
Bis jetzt funktionier es bei meiner Tabelle nicht so gut wie bei deiner. Bei mir sieht es dann so aus:
Userbild
Gruß,
Tobi
Anzeige
AW: Datum Eingabe
04.05.2012 10:26:13
Tino
Hallo,
lade mal ein Beispiel hoch, dann kann ich es anpassen.
Gruß Tino
komme aber erst später dazu oT.
04.05.2012 10:30:34
Tino
AW: Datum Eingabe
04.05.2012 10:34:54
Jan
Hey,
hier ist die Datei. Modul 1 und 2 wurden bereits aktiviert.
1 räumt die Tabelle auf und 2 erstellt das Diagramm.
Modul 11 ist das von dir.
https://www.herber.de/bbs/user/80035.xls
Gruß,
Tobi
AW: Datum Eingabe
07.05.2012 09:59:17
Jan
Hallo Toni.
Danke, funktioniert eigentlich ganz gut, aber was noch fehlt, ist dass auch das Minimum und Maximum der X-Achse der Eingabe entsprechend geändert werden.
Sprich, wenn man also Anfangsdatum "01.12.2011" eingebe, er das Minimum auf "40878" setzt und wenn man das Enddatum auf z.B. "28.02.2013" setzt er als Maximum: "41333" ein.
Hast du dafür vielleicht noch eine idee?
Gruß, Tobi
Anzeige
AW: Datum Eingabe
07.05.2012 11:07:55
Tino
Hallo,
evtl. könnte es so gehen.
With Range(.Cells(varAnfang, 1), .Cells(varEnde, 7))
    objChart.SetSourceData Source:=Union(.Columns(1), .Columns(2), .Columns(7))
    If objChart.SeriesCollection.Count < 1 Then objChart.SeriesCollection.NewSeries
    objChart.SeriesCollection(1).Values = "=" & .Columns(2).Address(External:=True)
    objChart.SeriesCollection(1).XValues = "=" & .Columns(1).Address(External:=True)
    If objChart.SeriesCollection.Count < 2 Then objChart.SeriesCollection.NewSeries
    objChart.SeriesCollection(2).Values = "=" & .Columns(7).Address(External:=True)
    'Min - Max 
    objChart.Axes(xlValue).MinimumScale = Application.WorksheetFunction.Min(.Columns(2))
    objChart.Axes(xlValue).MaximumScale = Application.WorksheetFunction.Max(.Columns(2))
End With
Gruß Tino
Anzeige
AW: Datum Eingabe
07.05.2012 12:52:27
Jan
Ok was nicht funktioniert, ist das Anfangsdatum.
Wenn man als Anfangsdatum ein Datum nach dem 15.09.2011 und vor dem 1.1.2012 auswählt, dann nimmt er stets den 1.1.2012. Ansonsten funktioniert es super.
Was auch noch ganz schön wäre, wenn er die Vorgänge, die zwar vor dem ausgewählten Anfangsdatum liegen aber von der Dauer her in den ausgewählten Datumsbereich hineinreichen, nicht aus dem Diagramm ausschliesst.
Beipsiel: wenn ich als anfangsdatum den 1.2.2012 auswähle, er immernoch Vorgang "Datenbank" und "N Projekt" anzeigt.
Vielen Dank schonmal und SG
AW: Datum Eingabe
07.05.2012 15:40:58
Tino
Hallo,
Du kannst mal so versuchen ob es richtig ist.
    objChart.Axes(xlValue).MinimumScale = DatumAnfang
objChart.Axes(xlValue).MaximumScale = DatumEnde
Für die andere Sache fällt mir jetzt keine Lösung ein.
Gruß Tino
Anzeige
AW: Datum Eingabe
07.05.2012 16:20:13
Jan
Ok das passt.
Vielen Dank Tino!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige