Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm in Userform darstellen

Diagramm in Userform darstellen
30.06.2017 12:04:19
Max
Guten Tag Liebe Forummitglieder,
ich muss ein Liniendiagramm aus einem Tabellenblatt in ein Userform anzeigen lassen. Kann mir da jemand bitte behilflich sein? Es sind 2 Graphen im Koordiantensystem enthalten. In der Userform sind bereits die Tabellenwerte für die Graphen aufgelistet, ich würde es gerne darunter haben wenn das möglich ist. Ich habe es bereits versucht, leider bekomme ich es nicht hin. Bin für jede Antwort sehr dankbar.
VG, Max
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm in Userform darstellen
30.06.2017 14:20:17
Max
Hallo Nepumuk. Beide Codes funktionieren nicht.. bei deiner 2.Möglichkeit, zeigt es mir die Fehlermedung 'erwartet end sub' an. Es gibt da nicht mal ein Sub, womit man beginnt. wie müsste ich das denn anpassen, wenn mein Code der mir in mein Userform eine Tabelle mit den Daten erstellt, worunter das Diagramm kommen soll, so aussieht:

Option Explicit
Private Sub CommandButton1_Click()
'Aktualisieren
Unload Me
usf_Trendlinie.Show
End Sub
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
End Sub
Private Sub UserForm_Initialize()
With ListView1
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
'Kopfzeilen in der Tabelle
.ColumnHeaders.Add , , Tabelle5.Cells(16, 1), Width:=57
.ColumnHeaders.Add , , Tabelle5.Cells(16, 2), Width:=57
.ColumnHeaders.Add , , Tabelle5.Cells(16, 3), Width:=57
.ColumnHeaders.Add , , Tabelle5.Cells(16, 4), Width:=57
.ColumnHeaders.Add , , Tabelle5.Cells(16, 5), Width:=57
.ColumnHeaders.Add , , Tabelle5.Cells(16, 6), Width:=57
.ColumnHeaders.Add , , Tabelle5.Cells(16, 7), Width:=73
End With
Call Aktualisieren
End Sub
Private Sub Aktualisieren()
'Deklaration
Dim Item As ListItem
Dim LinhaFinal As Integer
Dim i As Integer
'Listview mit Daten füllen
LinhaFinal = Tabelle5.Cells(Rows.Count, 1).End(xlUp).Row 'Gibt die letzte Zeile mit einem  _
Eintrag an
For i = 18 To LinhaFinal
Set Item = ListView1.ListItems.Add(Text:=Tabelle5.Cells(i, 1).Text) 'Text. damit die  _
gerundeten Werte übernommen erden
Item.SubItems(1) = Tabelle5.Cells(i, 2).Text
Item.SubItems(2) = Tabelle5.Cells(i, 3).Text
Item.SubItems(3) = Tabelle5.Cells(i, 4).Text
Item.SubItems(4) = Tabelle5.Cells(i, 5).Text
Item.SubItems(5) = Tabelle5.Cells(i, 6).Text
Item.SubItems(6) = Tabelle5.Cells(i, 7).Text
Next
End Sub
Case, deine Downloads werde ich mir zuahsue anschauen, da ich momentan im Arbeitsrechner bin und nicht downloaden möchte.
Vielen Dank im voraus!
VG, Max
Anzeige
Danke für die Antworten
30.06.2017 14:04:47
Max
ich werde es in den nächsten Tagen ausprobieren und mich wieder melden.
Vielen Dank!
VG, Max
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Diagramm in Userform anzeigen


Schritt-für-Schritt-Anleitung

Um ein Liniendiagramm aus einem Tabellenblatt in einem Userform anzuzeigen, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11 in Excel.

  2. Erstelle ein neues Userform: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > UserForm.

  3. Füge eine ListView hinzu: Ziehe eine ListView-Komponente auf das Userform.

  4. Kopiere den Code: Verwende den folgenden Code, um die ListView mit Daten zu füllen und das Diagramm anzuzeigen:

    Option Explicit
    
    Private Sub CommandButton1_Click()
       'Aktualisieren
       Unload Me
       usf_Trendlinie.Show
    End Sub
    
    Private Sub UserForm_Initialize()
       With ListView1
           .Gridlines = True
           .View = lvwReport
           .FullRowSelect = True
           'Kopfzeilen in der Tabelle
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 1), Width:=57
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 2), Width:=57
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 3), Width:=57
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 4), Width:=57
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 5), Width:=57
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 6), Width:=57
           .ColumnHeaders.Add , , Tabelle5.Cells(16, 7), Width:=73
       End With
       Call Aktualisieren
    End Sub
    
    Private Sub Aktualisieren()
       'Deklaration
       Dim Item As ListItem
       Dim LinhaFinal As Integer
       Dim i As Integer
       'Listview mit Daten füllen
       LinhaFinal = Tabelle5.Cells(Rows.Count, 1).End(xlUp).Row 'Gibt die letzte Zeile mit einem Eintrag an
       For i = 18 To LinhaFinal
           Set Item = ListView1.ListItems.Add(Text:=Tabelle5.Cells(i, 1).Text)
           Item.SubItems(1) = Tabelle5.Cells(i, 2).Text
           Item.SubItems(2) = Tabelle5.Cells(i, 3).Text
           Item.SubItems(3) = Tabelle5.Cells(i, 4).Text
           Item.SubItems(4) = Tabelle5.Cells(i, 5).Text
           Item.SubItems(5) = Tabelle5.Cells(i, 6).Text
           Item.SubItems(6) = Tabelle5.Cells(i, 7).Text
       Next
    End Sub
  5. Füge das Diagramm hinzu: Du kannst ein Diagramm in deinem Userform mit dem Chart-Objekt erstellen. Stelle sicher, dass du die Daten für das Diagramm korrekt verknüpfst.


Häufige Fehler und Lösungen

  • Fehlermeldung 'erwartet end sub': Überprüfe, ob alle Sub-Prozeduren korrekt geöffnet und geschlossen sind. Achte darauf, dass es keine Syntaxfehler gibt.
  • Diagramm wird nicht angezeigt: Stelle sicher, dass du die Diagramm-Daten korrekt an den Chart-Objekt weitergibst. Das Diagramm muss in der Userform sichtbar sein.

Alternative Methoden

Wenn du Schwierigkeiten mit der oben beschriebenen Methode hast, kannst du folgende Alternativen ausprobieren:

  • Verwendung von ActiveX-Steuerelementen: Du kannst ActiveX-Diagrammsteuerelemente verwenden, um Diagramme direkt in dein Userform einzufügen.
  • Diagramm in einem separaten Fenster: Erstelle das Diagramm in einem separaten Arbeitsblatt und zeige es dort an, statt in einem Userform.

Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen können:

  • Beispielcode für ein einfaches Liniendiagramm:
    Dim myChart As Chart
    Set myChart = Charts.Add
    With myChart
       .ChartType = xlLine
       .SetSourceData Source:=Tabelle5.Range("A1:B10")
       .Location Where:=xlLocationAsObject, Name:="UserForm1"
    End With
  • Verwendung von Diagrammdaten aus einer Tabelle: Achte darauf, dass die Quelle für dein Diagramm die richtigen Zellreferenzen verwendet.

Tipps für Profis

  • Fehlerbehandlung einfügen: Verwende On Error Resume Next, um potenzielle Fehler zu handhaben, wenn du mit Userforms und Diagrammen arbeitest.
  • Dynamische Aktualisierung: Implementiere eine Funktion, die das Diagramm automatisch aktualisiert, wenn sich die Daten in der Tabelle ändern.

FAQ: Häufige Fragen

1. Kann ich mehrere Diagramme in einem Userform anzeigen?
Ja, du kannst mehrere Diagrammobjekte in deinem Userform hinzufügen und sie entsprechend anordnen.

2. Welche Excel-Version benötige ich für diese Funktionalität?
Die beschriebenen Methoden funktionieren in Excel 2010 und späteren Versionen. Achte darauf, dass du die richtige VBA-Syntax verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige