Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ListBox- Diagramm

ListBox- Diagramm
02.02.2007 02:29:35
Eugen_I
Hallo zusammen,
ich habe eine ListBox in der verschiedene Namen stehen. Ich kann mehrere von dennen gleichzeitig markieren. Mit den markierten Namen soll folgendes passieren: Diese sollen nacheinander in einer Tabelle gefunden werden und die dazu gehörige Werte in ein gemeinsames Diagramm reingehen.
Teil-Probleme:
Wie lese ich die merkierten Name aus dem ListBox aus? Muss man es nacheinander machen oder werden diese alle aufeinmal ausgelesen? (Ich habe in foren Befehl ItemsSelected gefunden, der funktioniert bei mir jedoch nicht.)
Wie kann man den nachfolgenden Code umbauen für mehrere Kurven in einem Diagramm(falls mehr als nur ein Name ausgewählt wird)? Es muss dynamisch sein, da es ja nicht unbedingt immer drei Markierungen in der ListBox vorkommen.
Sub Diagramm_erstellen()
Dim rowMax, colMax, z, zR, i, j As Integer
Dim bezAdd As Range
Dim textInhVal, textInhXval As String
Dim NameS, NameCh As String
ActiveCell.Select
With Worksheets(1).Cells
Set bezAdd = .Find("Bezeichnung", LookIn:=xlValues)
End With
colMax = Range(bezAdd.Address).CurrentRegion.Columns.Count
z = bezAdd.Column + 1
textInhVal = "=("
For i = z To colMax Step 3
textInhVal = textInhVal & "Export!R1" & "C" & i
If i &lt colMax Then
textInhVal = textInhVal & ","
End If
Next i
textInhVal = textInhVal & ")"
textInhXval = "=("
zR = ActiveCell.Row HIER WIRD EIN NAME AUSGESUCHT. HIER MÜSSTE DYNAMISCHE KOMPONENTE REIN.
For i = z To colMax Step 3
textInhXval = textInhXval & "Export!R" & zR & "C" & i
If i &lt colMax Then
textInhXval = textInhXval & ","
End If
Next i
textInhXval = textInhXval & ")"
NameS = ActiveCell.Value
NameCh = ActiveCell.Offset(0, 1).Value
With Charts.Add
.ChartType = xlLineMarkers
.SeriesCollection(1).XValues = textInhVal
.SeriesCollection(1).Values = textInhXval
.SeriesCollection(1).Name = NameS
.HasTitle = True
.ChartTitle.Characters.Text = NameCh
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Läufe"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Stückzahlen"
.HasDataTable = True
.DataTable.ShowLegendKey = True
.Location Where:=xlLocationAsNewSheet
End With
Sheets("Export").Select
Application.ScreenUpdating = True
Danke für die Antwort.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox- Diagramm
02.02.2007 07:10:27
Erich
Hallo Eugen,
dazu kannst du die Selected-Eigenschaft der Listbox in einer Schleife verwenden, etwa so:
    For i = 0 To ListBox1.Count - 1
If ListBox1.Selected(i) Then
' was du tun willst mit ListBox1.List(i)
End If
Next i
Da habe ich eine Zusatzfrage an alle:
In der VBA-Hilfe steht hier (und analog an etlichen anderen Stellen auch)
If ListBox1.Selected(i) = True Then
statt
If ListBox1.Selected(i) Then
Gibt es einen vernünftigen Grund dafür, da "= True" hinzuschreiben?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: ListBox- Diagramm
02.02.2007 11:38:37
Eugen_I
Danke Erich, werde ich gleich ausprobieren.
AW: ListBox- Diagramm
02.02.2007 12:33:57
Eugen_I
Hi Erich,
ich habe dein Vorschlag ausprobiert und es läuft soweit. Ich kann mir anzeigen lassen welche ListBox-Reihe markeirt ist. Ich kriege jedoch nicht raus, was in der markierten LisrBox-Zeile steht.

Sub diagramm_erstellen()
Dim i As Long
For i = 0 To 40 'Grafik.ListBox1.Count - 1
If Grafik.ListBox1.Selected(i) = True Then
MsgBox Grafik.ListBox1.Value(i)
' was du tun willst mit ListBox1.List(i)
End If
Next i
End Sub

AW: ListBox- Diagramm
03.02.2007 08:40:38
Erich
Hallo Eugen,
probiers mal damit:
   With Sheets("Grafik").ListBox1
For ii = 0 To .ListCount - 1
If .Selected(ii) = True Then
'       MsgBox .ListBox1.Value(ii)   ' geht mei multiselect nicht
'           MsgBox .List(ii, 0) & " / " & .List(ii, 2) ' wenn mehrer Spalten: 1. und 3. Sp.
'           MsgBox .List(ii)                           ' wenn einspaltig
MsgBox Cells(ii + Range(.ListFillRange).Row, 1) ' Wert in Sp. A der Tab.
MsgBox Cells(ii + Range(.ListFillRange).Row, 3) ' Wert in Sp. C der Tab.
End If
Next ii
End With
Was ist "Grafik"? Steht das für das Blatt "Export"? Oder eine UF?
Wenn du mehrere Datenreihen in dein Chart bringen willst, schau dir mal SeriesCollection an.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: ListBox- Diagramm
03.02.2007 13:53:13
Eugen_I
Hi Erich,
"ListBox.List" hat mir gefällt.
Grafik steht für eine UserForm.
Danke für den Tipp mit der SeriesCollection.
Danke für Rückmeldung - Schönes WE! (oT)
03.02.2007 14:58:08
Erich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige