Hallo Stefan,
das Suchen in einer Spalte ist einfach. Im ersten Teil habe ich dein Makro modifieziert, dass es in der Spalte C (=3) sucht. Die Zuweisung eines Wertes zu Spalte kann auf viele Arten geschehen, hier habe ich sie einfach in den Code geschrieben.
Die Verarbeitung der erzeugten Daten in Diagramme ist nicht so einfach, da mir nur bei wenigen Arten (z.B. Säulen) Möglichkeiten zur Manipulation der Chart-Daten im Code bekannt sind. Die vorprogrammierten Diagramme nehmen Bereiche des Tabellenblattes als Eingangsdaten. Es geht dabei nicht, diese Daten nur temporär im Tabellenblatt zu speichern, denn würden sie zur Laufzeit überschrieben, ändert sich das Diagramm. Ich habe daher am Ende der Tabelle diese Daten eingefügt. Als Beispiel habe ich ein Kreisdiagramm gewählt. Den Code habe ich im Wesentlichen durch Aufzeichnen des Makros gewonnen.
Sub clos_failures_count()
Spalte = 3
leer = 0
lz = Range(Cells(Rows.Count, Spalte), Cells(Rows.Count, Spalte)).End(xlUp).Row
Set Rg = Range(Cells(1, Spalte), Cells(lz, Spalte))
For Each Zelle In Rg
If Zelle.Value = "closed" Then
leer = leer + 1
End If
Next Zelle
bug = 0
For Each Zelle In Rg
If Zelle.Value = "open" Then
bug = bug + 1
End If
Next Zelle
Aktives_Tabellenblatt = ActiveSheet.Name
Cells(Rows.Count - 2, Columns.Count) = "Anzahl"
Cells(Rows.Count - 1, Columns.Count - 1) = "closed"
Cells(Rows.Count - 1, Columns.Count) = leer
Cells(Rows.Count, Columns.Count - 1) = "open"
Cells(Rows.Count, Columns.Count) = bug
a1 = Cells(Rows.Count, Columns.Count).Address
a2 = Cells(Rows.Count - 2, Columns.Count - 1).Address
Charts.Add
With ActiveChart
.ChartType = xlPie
.SetSourceData Source:=Sheets(Aktives_Tabellenblatt).Range(a1 + ":" + a2), PlotBy:=xlColumns
.HasTitle = False
.HasLegend = False
.ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent, LegendKey _
:=False, HasLeaderLines:=True
.Location Where:=xlLocationAsObject, Name:=Aktives_Tabellenblatt
End With
With ActiveChart.PlotArea
.Width = 180
.Height = 180
.Left = 110
.Top = 21
.Interior.ColorIndex = xlNone
.Border.ColorIndex = xlNone
End With
ActiveWindow.Visible = False
Windows("Kürzen.xls").Activate
End Sub
Viel Erfolg
Holger
Stefan schrieb am 20.02.2008 08:52:04:
Guten Morgen,
ich versuche eine Tabelle nach bestimmten wörtern zu durchsuche und hab bisher das geschrieben:
Sub clos_failures_count()
leer = 0
For Each Zelle In Selection
If Zelle.Value = "closed" Then
leer = leer + 1
End If
Next Zelle
bug = 0
For Each Zelle In Selection
If Zelle.Value = "open" Then
bug = bug + 1
End If
Next Zelle
End Sub
____________________________
Meine Frage lautet, wie kann ich jetzt die Variablen bug und leer verarbeiten, dass ich die Werte zB. in ein Diagramm eintragen lasse und sie miteinander Verglichen werden (bug+leer=100%). Zudem würde ich gerne wissen, wie ich nur eine bestimmte Spalte nach diesen Begriffen durchsuche, zB C oä.
Danke schonmal im vorraus Stefan! |