CALC: Makro für das Auswerten von Zellen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

alex01100100
Beiträge: 8
Registriert: Di, 24.01.2012 11:37

CALC: Makro für das Auswerten von Zellen

Beitrag von alex01100100 »

Hallo zusammen,
ich kenne mich zwar einigermaßen mit OpenOffice aus, habe allerdings noch nicht viel mit dem Programmieren von Makros am Hut gehabt. Ich habe zwar schon einige per Copy&Paste benutzt und deren Funktion auch halbwegs verstanden, allerdings tue ich mich beim selber programmieren sehr schwer. Daher hoffe ich, dass ihr mir da helfen könnt :)

Es geht darum, dass ich in vier verschiedenen Spalten jeweils einen Bezeichner und einen Wert habe. Beispiel:

Code: Alles auswählen

AA01    WERT     AA01     -
AA02    WERT     AA03     +
AA03    WERT     BA01     -
BA02    WERT     BA02     -
Was ich nun gerne hätte ist folgendes:
Mein Makro soll zwei Schleifen enthalten. Die Äußere soll die erste Spalte durchgehen, bei AA01 anfangen. Die Innere soll dann die Spalte drei durchgehen und gucken, ob es dort auch eine Zelle mit dem Wert AA01 gibt. Falls ja, soll der Wert aus Spalte vier in Spalte zwei kopiert werden.
Da sich die Werte in Spalte eins und vier nicht komplett gleichen, muss halt jede Zeile der Spalte eins mit der kompletten Spalte drei verglichen werden.

Ich würde mich sehr freuen, wenn ihr mir dabei helfen könntet. Ich hänge hier in etwas fest, was dem hier ähnelt:

Code: Alles auswählen

	
For i = 1 To maxZeilenA
For j = 1 To maxZeilenM
	if (ThisSheet.getCellbyPosition(i,12) = ThisSheet.getCellbyPosition(j,15)) Then	
	Sheets("Sheet1").getCellbyPosition(j,21) = Sheets("Sheet1").getCellbyPosition(i,0)
	End if
	Next j
Next i
Dankeschööööön! :)



Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: CALC: Makro für das Auswerten von Zellen

Beitrag von Karolus »

Hallo
Dazu brauchts kein Makrogewurschtel, eine simple SVERWEIS-formel tuts auch:

zB. in B1:

Code: Alles auswählen

=SVERWEIS(A1;$C$1:$D$999;2;0)
und nach unten ausfüllen.
Hilfe zu SVERWEIS findest du in der OOo-hilfe, und hier im Calcforum gibts sicher tausende Anwendungsbeispiele.
Jep..SVERWEIS-suche
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: CALC: Makro für das Auswerten von Zellen

Beitrag von Frieder D. »

Hallo alex
Dazu brauchts kein Makrogewurschtel, eine simple SVERWEIS-formel tuts auch:
Dem stimme ich voll und ganz zu.

Wenn du z.B. eine Tabelle mit 100 Eingräten hast,
und du lässt eine solche Doppel-Schleife darüber laufen, dann sind das 101*100/2=5050 Durchläufe.
Wenn du n Einträge hast, dann sind das (n+1)*n/2 Durchläufe die Zahl wächst also Quadratisch.
Da der Zugriff auf Zellen per makro sehr zeitaufwendig ist, sollte so etwas wenn möglich per Formel gelöst werden.
Wenn es absolut nicht anders geht, kann der Zugriff auch über getdataArray() erfolgen, anschließend macht man eine schleife über das Array ,
und fügt es wieder mit setDataArray ein.

Gruß Frieder
alex01100100
Beiträge: 8
Registriert: Di, 24.01.2012 11:37

Re: CALC: Makro für das Auswerten von Zellen

Beitrag von alex01100100 »

Huiiiiii...tausend Dank! Da hab ich wieder was gelernt :)
Antworten