Seite 1 von 1

[Makro] Vorgänge zählen[erledigt]

Verfasst: Mi, 20.04.2011 09:33
von Sabine
Hallöle Forum

Ich würde gern wissen wie dieses zählen bestimmter vorgänge aufgebaut ist Z.b in einer if schleife werden unter bestimmten bedingungen vorgänge, befehle ausgeführt , und das möchte ich zählen wie oft es gemacht wurde. Ich habe mich da schon bisschen informiert wie sowas geht doch ich bin noch zu schlecht um sowas selber auf die reihe zu bekommen. menem wissensstand nach deklariert man dazu eine exta variable und macht eine extraa funktion dafür und übergibt dann die werte. Ich möchte das für dieses makro anwenden.

Code: Alles auswählen

Sub doppelteDatenInspalte_A_markieren


   mycolor = RGB (233,555,111)
   odoc=thiscomponent
   oSheet = oDoc.CurrentController.getActiveSheet()
   myrows=oSheet.getrows
   oCellCursor = oSheet.createCursor()
   oCellCursor.GotoEndOfUsedArea(True)
   letzte_Zeile = oCellCursor.getRangeAddress.EndRow
   k = 0
   for i = 0 to letzte_Zeile
       text1 = osheet.getcellbyposition(0,i).string
       for j = i + 1  to letzte_Zeile
          text2 = osheet.getcellbyposition(0,j).string
           if text1 = text2 then
           osheet.getcellbyposition(0,i).CellBackColor = RGB(50,105,100) 'hier soll gezählt werden wie oft ein duplikat gefärbt wurde bzw. wie viele duplikate es 
           osheet.getcellbyposition(0,j).CellBackColor = RGB(50,105,100) 'gibt, es wird dabei 2 mal gefärbt 1 mal das duplikat und einmal das original, das makro
           end if                                                                                    ' soll nur eins der beiden zählen zb wenn es 2 duplikate sind ,färbts 4 daten , als ergebnis
       next j                                                                                         'soll 2 rauskommen
   next i
 end sub
das ergebniss soll dann mit "print" oder "msgbox" ausgegeben werden
ziel ist es bei eine riesengroßen tabelle von 5000 zeilen zu prüfen obs noch doppele daten vorhanden sind ohne sich nach den gefärbten zellen tot zu suchen,
damit man erstmal weis ob man diese 5000 zellen noch mal durchgeht und nach farben sucht oder nicht. Erst wenn das "print" anzeigt dass es immer noch fehler gibt , dann begibt man sich auf die suche
währe toll wenn ich extra eine erklärung bekommen würde wie man sowas aufbaut, zb an einem allgemeinbeispiel wie man vorgänge in if schleifen zählt, damit ich das dann selber an anderen makros anwenden kann. Ich will die sachen auch verstehen und nicht nur "copy, paste" in die module machen

Re: [Makro] Vorgänge zählen

Verfasst: Mi, 20.04.2011 09:53
von Stephan
währe toll wenn ich extra eine erklärung bekommen würde wie man sowas aufbaut, zb an einem allgemeinbeispiel wie man vorgänge in if schleifen zählt
Du solltest jeweils eine Zählvariable verwenden:

Code: Alles auswählen

Sub demo()
Dim zaehler1 As Integer 
Dim zaehler2 As Integer
Dim zaehler3 As Integer
Dim bla(100) As Integer

For i = 0 to 100
	If bla(i) = 1 Then
			'tu was
			zaehler1 = zaehler1 + 1
		ElseIf bla(i) = 123 Then
			'tu was
			zaehler2 = zaehler2 + 1
		Else
			'tu was
			zaehler3 = zaehler3 + 1
	End If
Next i

Msgbox "Der Wert 1 kam " & zaehler1 & " Mal vor." & CHR(13) & _
	"Der Wert 123 kam " & zaehler2 & " Mal vor." & CHR(13) & _
	"Sonstige Werte kamen " & zaehler3 & " Mal vor."

End Sub

Gruß
Stephan

Re: [Makro] Vorgänge zählen

Verfasst: Mi, 20.04.2011 10:02
von Sabine
danke
super antwort
simpel, kurz, verständlich und humorvoll ^^