Makro in Calc mit Buchstaben Schleife
Moderator: Moderatoren
Makro in Calc mit Buchstaben Schleife
Hallo Leute,
leider hab ich von Programmierung absolut keine Ahnung, und es kann sein,
dass sich meine Lösung durch diverse Threads bereits ergibt, verstanden bzw. gefunden habe ich
leider nichts (versuche mich bereits 2 Tage an einer Lösung!)
Ich hab folgendes Problem:
Auf einer Internetseite wollte ich nach verfügbaren Kfz-Kennzeichen suchen.
Man kann einen oder zwei Buchstaben und Zahlen von bis eingeben,
z.B.: A 1- 9999 oder GR 50-100.
Man kann also nicht nach einer Zahl suchen, z.B 100. Da müßte ich sämtliche Zahlenkombinationen eingeben (702 Stück) und das für jede Zahl.
Was ich bereits geschafft habe, ist, dass ich in die URL zwei Variablen eingebaut habe.
Wenn ich diesen Variablen im Makro Werte zuweise, werden die freien Kennzeichen im Calc ausgegeben.
Leider schaffe ich es nicht, eine Schleife einzubauen, die alle Buchstabenkombinationen von A-ZZ abarbeitet und alle Ergebnisse dann auflistet.
Geht es überhaupt mit Buchstaben in der Schleife (For?)? oder muß ich eine Matrix erstellen und mir da die Buchstabenkombination holen?
Die Problematik ist hoffentlich verständlich.
Kann mir jemand weiterhelfen.
Danke
Edbeck
leider hab ich von Programmierung absolut keine Ahnung, und es kann sein,
dass sich meine Lösung durch diverse Threads bereits ergibt, verstanden bzw. gefunden habe ich
leider nichts (versuche mich bereits 2 Tage an einer Lösung!)
Ich hab folgendes Problem:
Auf einer Internetseite wollte ich nach verfügbaren Kfz-Kennzeichen suchen.
Man kann einen oder zwei Buchstaben und Zahlen von bis eingeben,
z.B.: A 1- 9999 oder GR 50-100.
Man kann also nicht nach einer Zahl suchen, z.B 100. Da müßte ich sämtliche Zahlenkombinationen eingeben (702 Stück) und das für jede Zahl.
Was ich bereits geschafft habe, ist, dass ich in die URL zwei Variablen eingebaut habe.
Wenn ich diesen Variablen im Makro Werte zuweise, werden die freien Kennzeichen im Calc ausgegeben.
Leider schaffe ich es nicht, eine Schleife einzubauen, die alle Buchstabenkombinationen von A-ZZ abarbeitet und alle Ergebnisse dann auflistet.
Geht es überhaupt mit Buchstaben in der Schleife (For?)? oder muß ich eine Matrix erstellen und mir da die Buchstabenkombination holen?
Die Problematik ist hoffentlich verständlich.
Kann mir jemand weiterhelfen.
Danke
Edbeck
Re: Makro in Calc mit Buchstaben Schleife
z.B.:
Gruß
Stephan
Code: Alles auswählen
Sub Main
For i = 65 To 90
For j = 64 To 90
If j = 64 Then
'A-Z
tmp = CHR(i)
Else
'AA-ZZ
tmp = CHR(i) & CHR(j)
End If
kontrolle = kontrolle & tmp & ", "
Next j
Next i
kontrolle = Left(kontrolle, Len(kontrolle)-2)
Msgbox kontrolle
End Sub
Stephan
Re: Makro in Calc mit Buchstaben Schleife
Verrate uns doch einmal die Webseite und welchen Code Du bisher benutzt bzw. wo dokumentiert ist wie man die URL parametrieren muss.Was ich bereits geschafft habe, ist, dass ich in die URL zwei Variablen eingebaut habe.
Wenn ich diesen Variablen im Makro Werte zuweise, werden die freien Kennzeichen im Calc ausgegeben.
Gruß
Stephan
Re: Makro in Calc mit Buchstaben Schleife
Nachtrag:
Grundsätzlich scheint es zu funktionieren, zumindest gibt er mir schon verschiedene Buchstabenkombinationen aus.
Allerdings dauerts ewig bzw es geht dann gar nix mehr.
Ich vermute, die 702 nahezu gleichzeitigen Anfragen können nicht verarbeitet werden.
Kann man pro Abruf eine Pause einfügen oder besser die Antwort abwarten, bis die nächste Anfrage startet?
Ferner überschreibt er mir meine Einträge. Wie muß ich goToEndOfUsedArea() einbauen?
Gruß
Edbeck
Grundsätzlich scheint es zu funktionieren, zumindest gibt er mir schon verschiedene Buchstabenkombinationen aus.
Allerdings dauerts ewig bzw es geht dann gar nix mehr.
Ich vermute, die 702 nahezu gleichzeitigen Anfragen können nicht verarbeitet werden.
Kann man pro Abruf eine Pause einfügen oder besser die Antwort abwarten, bis die nächste Anfrage startet?
Ferner überschreibt er mir meine Einträge. Wie muß ich goToEndOfUsedArea() einbauen?
Gruß
Edbeck
Re: Makro in Calc mit Buchstaben Schleife
Hallo
muss ich jetzt nicht kommentieren - oder?
Code: Alles auswählen
from itertools import product
from string import ascii_uppercase as abc
print(', '.join(abc))
print(', '.join(''.join(combi) for combi in product(abc,abc)))
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Makro in Calc mit Buchstaben Schleife
Kann man pro Abruf eine Pause einfügen
ja, mit Wait, das Folgende wartet 1 Sekunde:
Code: Alles auswählen
Wait 1000
im konkreten Falle weiß ich nicht wie (die Prüfung ob schon Inhalt 'erzeut' wurde scheidet m.E. aus da eine 'Anfrage' auch ganz regulär ohne Inhalt sein kann weil alle Kennzeichen bereits vergeben sind)oder besser die Antwort abwarten, bis die nächste Anfrage startet?
ganz normal. Ich habe es gerade überprüft und auch die Links (die ja inhaltlich Felder sind) führen zum richtigen Funktionieren von goToEndOfUsedArea(), ich weiß also nicht worauf Deine Frage zielt.Wie muß ich goToEndOfUsedArea() einbauen?
Gruß
Stephan
Re: Makro in Calc mit Buchstaben Schleife
Viele Mitleser würden sich mutmaßlich freuen zu erfahren wie das Ganze überhaupt zu benutzen ist [1], da es ja über die GUI nicht direkt möglich ist Python-Scripts zu bearbeiten.muss ich jetzt nicht kommentieren - oder?
Ich selbst scheitere auch mal wieder daran, zwar weiß ich wo die Scripts bei OO im Dateisystem stehen und kann dort ein neues Script hinzufügen, aber OO ignoriert das in der GUI beflissentlich (es wird nur ein Ordner mit dem Scriptnamen, aber unterhalb kein Script angezeigt).
[1]
wahrscheinlich ist das schon häufiger erklärt worden, aber nicht alles merkt man sich und immer wieder kommen neue Leute hinzu die bisher garkeine Chance hatten sich das zu merken
Gruß
Stephan
Re: Makro in Calc mit Buchstaben Schleife
Hallo,
auch wenn es nicht zum eigentliche Thread gehört: Mir geht es wie Stephan, ich lese begeistert die Möglichkeiten, die python bietet
, und komme selbst kein Schritt voran ...
Büche rund Quellen zu python gibt es ja genug, aber die Zusammenarbeit Openoffice-Python ist mir immer noch ein Rätsel
.
@Karolus: Deinen Link unter viewtopic.php?f=27&t=64426 habe ich mir mehrfach zu Gemüte geführt und festgestellt: da bin ich blutiger Anfänger und verstehe irgendwie gar nichts. Ich müsste irgendwie ein paar Schritte eher anfangen und weiß nicht wo ...
auch wenn es nicht zum eigentliche Thread gehört: Mir geht es wie Stephan, ich lese begeistert die Möglichkeiten, die python bietet


Büche rund Quellen zu python gibt es ja genug, aber die Zusammenarbeit Openoffice-Python ist mir immer noch ein Rätsel

@Karolus: Deinen Link unter viewtopic.php?f=27&t=64426 habe ich mir mehrfach zu Gemüte geführt und festgestellt: da bin ich blutiger Anfänger und verstehe irgendwie gar nichts. Ich müsste irgendwie ein paar Schritte eher anfangen und weiß nicht wo ...
Gruß,
mikeleb
mikeleb
Re: Makro in Calc mit Buchstaben Schleife
Hab den Python-Vorschlag schon versucht, naja, hatte natürlich dieselben Probleme wie alle anderen.
Bis is mal rausgefunden habe, dass das Python ist...
@Karolus
Dafür, dass ich geschrieben habe, von Programmierung keine Ahnung zu haben, ist deine Antwort respektive deine Frage
@Stephan
dass die Ergebnisse nacheinander geschrieben werden.
oCellAddress = oSheet.getCellRangeByName("B3").CellAddress
ist ja da das Problem. Er schreibt immer in B3.
(("b3:b100") funktioniert auch nicht)
Hab schon alles mögliche versucht, klappt nicht.
kann nicht mal umstellen auf .getcellbyposition(0,0)
Wo scheiterts denn?
Bis is mal rausgefunden habe, dass das Python ist...
@Karolus
Dafür, dass ich geschrieben habe, von Programmierung keine Ahnung zu haben, ist deine Antwort respektive deine Frage
eigentlich ein Witz. Sorry.muss ich jetzt nicht kommentieren - oder?
@Stephan
Naja, ich möchte ja, dass die einzelnen Ergebnisse nicht überschrieben werden, sondernWie muß ich goToEndOfUsedArea() einbauen?
dass die Ergebnisse nacheinander geschrieben werden.
oCellAddress = oSheet.getCellRangeByName("B3").CellAddress
ist ja da das Problem. Er schreibt immer in B3.
(("b3:b100") funktioniert auch nicht)
Hab schon alles mögliche versucht, klappt nicht.
kann nicht mal umstellen auf .getcellbyposition(0,0)
Wo scheiterts denn?
Wait ist gut!im konkreten Falle weiß ich nicht wie (die Prüfung ob schon Inhalt 'erzeut' wurde scheidet m.E. aus da eine 'Anfrage' auch ganz regulär ohne Inhalt sein kann weil alle Kennzeichen bereits vergeben sind)
Re: Makro in Calc mit Buchstaben Schleife
dann nimm statt dieser einen Zeile die folgenden Zeilen:oCellAddress = oSheet.getCellRangeByName("B3").CellAddress
ist ja da das Problem. Er schreibt immer in B3.
Code: Alles auswählen
cur = oSheet.CreateCursor
cur.GotoEndOfUsedArea(True)
tmp_row = cur.RangeAddress.EndRow
oCellAddress = oSheet.getCellByPosition(1, tmp_row + 1).CellAddress
Code: Alles auswählen
cur = oSheet.CreateCursor
cur.GotoEndOfUsedArea(True)
tmp_row = cur.RangeAddress.EndRow
If tmp_row = 0 Then tmp_row = 1
oCellAddress = oSheet.getCellByPosition(1, tmp_row + 1).CellAddress
Gruß
Stephan
Re: Makro in Calc mit Buchstaben Schleife
Hallo,
ich würde es etwas anders machen: Zunächst eine Link herstellen und dann die Daten auf einem 2. Tabellenblatt sammeln.
Dazu habe ich die verschiedenen Codeschnipsel mal zusammengefügt.
Das Makro durchläuft nun alle Buchstabenkombinationen, stellt für jede einzelne einen Link in Tabelle1 her und schreibt die Daten fortlaufend auf Tabelle2.
Mit ein paar Kombinatinen habe ich es getestet, für alle wird dein Rechner 'ne Weile beschäftigt sein - also Geduld
ich würde es etwas anders machen: Zunächst eine Link herstellen und dann die Daten auf einem 2. Tabellenblatt sammeln.
Dazu habe ich die verschiedenen Codeschnipsel mal zusammengefügt.
Das Makro durchläuft nun alle Buchstabenkombinationen, stellt für jede einzelne einen Link in Tabelle1 her und schreibt die Daten fortlaufend auf Tabelle2.
Mit ein paar Kombinatinen habe ich es getestet, für alle wird dein Rechner 'ne Weile beschäftigt sein - also Geduld

- Dateianhänge
-
- makro_html_auslesen2.ods
- (15.92 KiB) 191-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: Makro in Calc mit Buchstaben Schleife
In der Tat, so sehe ich das auch. Gleichzeitig fehlt mir die Zeit Python konzentriert zu lernen, sondern ich würde das lieber Schritt für Schritt tun anhand von Fragen die hier Thema sind und wo es sich entsprechend anbietet.ich lese begeistert die Möglichkeiten, die python bietet
Ich würde mich also sehr freuen, wenn Du, Karolus, hier nicht nur Dein Wissen in Form von Code zur Verfügung stellen, sondern auch immer mal wieder vertiefend notwendige Grundlagen erläutern würdest.
Das Du gerade bei Python ein exzellenter Experte bist steht außer Frage, aber bitte lass uns mehr teilhaben und sein dabei geduldig (ich selbst weiß wie schwer das ist, denn ich bin auch häufig ungeduldig wenn Neulinge bei Basic nerven).
Gerade als Moderator, dem die Weiterentwicklung des Forums am Herzen liegt, würde es mich freuen wenn es hier mehr Python gäbe das so gut erläutert ist das Neulinge davon profitieren können, denn das würde das Ansehen unseres Forums weiter heben.
Gruß
Stephan
Re: Makro in Calc mit Buchstaben Schleife
?ich würde es etwas anders machen: Zunächst eine Link herstellen und dann die Daten auf einem 2. Tabellenblatt sammeln.
Welche Daten willst du sammeln?
Ich weiß nicht ob ich jetzt was falsch verstehe, aber ich denke, dass du nicht verstanden hast, was ich möchte.
Ziel: Suche nach Buchstabenkombinationen, also z.B Eingabe 1-5 im Link (muß ich dann noch ändern, Eingabe soll in Tabelle sein)
Ausgabe in Calc: Alle Zahlenkombinationen von 1 -5.
Mal Danke an Alle für eure Beteiligung.
Re: Makro in Calc mit Buchstaben Schleife
ich schreibe jetzt wirklich 'mein Gott', weil es nervt, denn offensichtlich hast Du nicht einen Blick in die fertige Datei geworfen, denn dort steht ein komplett fertiges Makro drin das alles erledigt wie gewünscht.Welche Daten willst du sammeln?
Unterschied zu Deiner Lösung ist einzig das die Daten in Tabelle1 jeweils überschrieben werden, ABER bevor das geschieht die aktuellen Daten in Tabelle2 ans Ende angehängt werden.
Gruß
Stephan
Re: Makro in Calc mit Buchstaben Schleife
Klar hab ich mir die Datei angeschaut, doch ich seh halt da nicht was es macht...
Nur durch testen und ändern fände ich das raus. Das geht aber grad nicht, aus Sicherheitsgründen, wie
mein PC meint.
Gruß
Edbeck
Nur durch testen und ändern fände ich das raus. Das geht aber grad nicht, aus Sicherheitsgründen, wie
mein PC meint.
Gruß
Edbeck