Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

shapes zeilenweise auszählen

shapes zeilenweise auszählen
12.07.2004 16:55:36
joe
hallo,
ich habe in meiner tabelle links eine spalte, in die ich untereinander werte eintragen kann. diese werte lese ich mittels vba aus, und zeichne dann entsprechend viele rechtecke (addShape) in die arbeitsmappe.
d.h. es entstehen z.b. zehn zeilen mit je 20 rechtecken.
nun ist es aber manchmal nötig, dass einzelne rechtecke gelöscht werden müssen, so dass in manchen zeilen nur noch 18 oder 19 rechtecke vorhanden sind.
mein problem ist, dass ich zwar die gesamtanzahl der rechtecke auszählen kann, nicht aber die anzahl der rechtecke der einzelnen zeilen.
mein code zum auszählen der gesamtzahl lautet:

Sub module_zaehlen()
Dim myShape As Shape
Dim anzahl As Integer
anzahl = 0
For Each myShape In Tabelle23.Shapes
If (myShape.Type = msoShapeRectangle) Then
anzahl = anzahl + 1
End If
Next
Tabelle23.Range("S1").Value = anzahl
End Sub

vielleicht, kann mir jemand helfen, und mir sagen, wie ich erkenne, dass eine zeile rechtecke durchgezählt wurde, und ich diesen wert dann ausgeben kann.
danke im voraus
joe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: shapes zeilenweise auszählen
K.Rola
Hallo,
Shapes haben eine TopLeftCell- Eigenschaft. Mit TopLeftCell.Row
erhältst du die Zeile.
Gruß K.Rola
AW: shapes zeilenweise auszählen
13.07.2004 09:43:20
joe
hallo,
erst einmal danke für den tip mit topleftcell.row
ich habe jetzt folgenden code eingebaut, um die anzahl der rechtcke pro zeile auszuzählen:

Sub module_zaehlen()
Dim myShape As Shape
Dim anzahl As Integer
Dim reihen As Integer
Dim y As Integer
Dim s1 As Integer
Dim z As Integer
z = 0
reihen = 0
anzahl = 0
For s = 0 To 100                   'Auszählung der reihenanzahl
z = Tabelle23.Range("B" & s + 3).Value
If z <> 0 Then
reihen = reihen + 1
End If
Next
For s = 4 To reihen + 3
For Each myShape In Tabelle23.Shapes
If (myShape.Type = msoShapeRectangle) Then
If (myShape.TopLeftCell.Row = s) Then
anzahl = anzahl + 1
End If
End If
Tabelle23.Range("T" & s).Value = s
Tabelle23.Range("S" & s).Value = anzahl
Next
anzahl = 0
Next
End Sub

leider dauert die berechnung ewig. vielleicht kann mir jemand einen schnelleren weg aufzeigen, der nicht soviel rechenleistung kostet.
danke im voraus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige