Seite 1 von 1
Makro
Verfasst: Mo, 07.07.2014 10:50
von RealmReborn
Ich brauch ma wieder Hilfe bei Makro erstellen. Es soll an das Makro anknüpfen was für Färben der Zeilen da ist.
Code: Alles auswählen
sub Markieren
raus = 10
Spalte = ThisComponent.Sheets().getByName("Test")
i = 4
Do
tmp = Spalte.getCellByPosition(12,i).FormulaLocal
If tmp = "x" Then
for j = 0 to 11
Spalte.getCellByPosition(j,i).CellBackColor = RGB(220,200,0)REM;Blau,Grün,Rot
Next j
raus = 10
Else
raus = raus - 1
End If
i = i + 1
Loop While raus > 0
end sub
Das Makro soll dann in der Zeile zB das Datum überprüfen ob dieses in Tabelle:Test2 vorhanden sind und falls ja diese löschen.
Ich hab da kein Plan wie ich das bewerkstelligen kann. Ich hab schon gegoogelt aber das meiste is nur Löschen von Zeilen oder suchen nach bestimmten Textabschnitten.
Aber da ja meins immer n anderen Text bzw Zahl/Datum enthält kann ich das nicht nutzen.
Zum Löschen wäre wohl:
nötig.
Ich hab ne Beispieldatei angehängt.
Sry für den Fall das ich zu viel um Hilfe frag -.-"
Ich bedanke mich schon im Vorraus für Hilfe.
Re: Makro
Verfasst: Mo, 07.07.2014 14:37
von balu
Hallo RealmReborn,
erst mal einen Hinweis.
Du hast in der Beispieldatei die Sub
benannt, und das führt zu Problemem. Denn in dem Sub-Namen ist ein Sonderzeichen, nämlich der deutsche Umlaut das kleine ö. Sonderzeichen und Umlaute solltest Du vermeiden, und stattdessen lieber den Umlaut ausschreiben, also so:
Das Makro soll dann in der Zeile zB das Datum überprüfen ob dieses in Tabelle:Test2 vorhanden sind und falls ja diese löschen.
Da hast Du dich etwas ungenau ausgedrückt.
Das Makro soll wo was löschen? Soll es im Blatt *Test* z.B. das Datum einlesen und im Blatt *Test2* suchen, und wenn im Blatt *Test2* gefunden auch dort löschen? Oder wie?
Und was ich auch noch nicht so recht versteh, warum die Zeilen einfärben und dann löschen? Den Sinn musst Du mal genauer erklären, bidda schön.
Gruß
balu
Re: Makro
Verfasst: Di, 08.07.2014 08:25
von RealmReborn
Soll es im Blatt *Test* z.B. das Datum einlesen und im Blatt *Test2* suchen, und wenn im Blatt *Test2* gefunden auch dort löschen? Oder wie?
Sry falls ich mich ungenau ausgedrückt hab und das was du vermutet hast ist Richtig. Das Makro soll im Blatt Test das Datum auslesen und in Blatt Test2 suchen und wenns gefunden wird im Blatt Test2 dort rauslöschen.
Und was ich auch noch nicht so recht versteh, warum die Zeilen einfärben und dann löschen? Den Sinn musst Du mal genauer erklären, bidda schön.
Das erste Blatt ist ne Übersicht von allen Aufträgen und die die erledigt sind sollen gefärbt werden damit mann sieht welche noch Offen sind.
Das 2te Blatt enthält Termine und genauere Angaben zum Auftrag. Deswegen soll das Makro wenn es erledigte Aufträge färbt diese dannach aus dem Terminblatt löschen da diese abgearbeitet sind und so dann ne bessere Übersicht übrig bleibt.
Falls noch was unklar ist fragen :3
Gruß
RealmReborn
Re: Makro
Verfasst: Mo, 14.07.2014 12:53
von RealmReborn
Da sich hier nix tut nehm ich mal an das es keine Lösung für das Problem gibt oder es Probleme dazu ergeben?
Sry falls das jetzt Doppelpost ist. Wenn ja Bitte löschen.
Re: Makro
Verfasst: Mo, 14.07.2014 14:56
von lorbass
RealmReborn hat geschrieben:Da sich hier nix tut nehm ich mal an das es keine Lösung für das Problem gibt oder es Probleme dazu ergeben?
Warum so pessimistisch? Ich glaube nicht, dass es keine Lösung gibt und vermute eher, dass der Thread lediglich irgendwie aus dem Blickfeld geraten ist. Es reicht in solchen Fällen, wenn du ihn mit 'ner kurzen Bemerkung in einem neuen Beitrag „aufweckst“.
RealmReborn hat geschrieben:Sry falls das jetzt Doppelpost ist.
Das „Aufwecken“ eines Threads ist kein „Doppelpost“ oder „Crosspost“.
RealmReborn hat geschrieben:Wenn ja Bitte löschen.
Sofern du an anderer Stelle dieses Forums oder in anderen AOO-/LO-Foren tatsächlich
Crossposts eingestellt hast, empfiehlt es sich, diese entweder zu löschen, sofern das noch möglich ist, oder zumindest in allen Posts mit demselben Thema Links zu den jeweils anderen Duplikaten anzubringen, also auch hier! Lies dazu bitte die
Allgemeinen Hinweise zur Forumsbenutzung, in jedem Bereich dieses Forums ganz oben in den permanenten Bekanntmachungen.
Gruß
lorbass
PS: In der Sache kann ich dir leider nicht weiterhelfen.
Re: Makro
Verfasst: Mo, 14.07.2014 16:21
von clag
Hallo RealmReborn,
habe für dich mal ein Makro erstellt
Code: Alles auswählen
Sub MarkierenUndLoeschen
myDoc = thisComponent
mySheet1 = myDoc.sheets(0)
mySheet2 = myDoc.sheets(1)
nx = mysheet1.Columns(2).queryEmptyCells() '
nMax = nx(nx.Count-1).RangeAddress.StartRow - 1
dx = mysheet2.Columns(0).queryEmptyCells() '
dMax = dx(dx.Count-1).RangeAddress.StartRow - 1
for i=0 to nMax
checkcell = mysheet1.getCellByPosition(2,i)
if checkcell.string = "x" then
deletenumber = mysheet1.getCellByPosition(0,i).string
' print "in Zeile " & i+1 & " steht ein X und diese Auftragsnummer" & deletenumber
for d=0 to dMax
deletecell = mysheet2.getCellByPosition(0,d)
if deletecell.string = deletenumber then
for y=0 to 5
texttodelete = texttodelete & " " & mysheet2.getCellByPosition(y,d).string
next
if MsgBox (texttodelete & "wird gelöscht", 260, " diesen Datensatz löschen?") = 6 then
mysheet2.getrows.removebyindex(d,1)
checkcell.string = "Datails gelöscht ~ " & NOW()
mySheet1.getRows().getByIndex(i).cellbackcolor = RGB(255,127,0)
End IF
texttodelete = ""
end if
next
end if
next
End Sub
guckst und probierst du hier
Datei entfernt war nicht 100% ok in der nächsten Antwort ist die korrigierte Version
und hilft das weiter?
edit: code eingefügt
Re: Makro
Verfasst: Di, 15.07.2014 09:08
von RealmReborn
Für die Testtabelle funktioniert es genau so wie ichs wollte

Nun ein kleines Problem:
Ich hab es jetzt für die Zieltabelle übernommen und getestet.
Hier kommt die Fehlermeldung:
BASIC-Laufzeitfehler.
"1"
type:com.sun.star.langIndexOutOfBoundsException
Message:
für diese Codezeile
Kann es sein das es mit der Zelladresse zusammenhängt die im Makro sind?
Ansonsten
DANKE clag für das Makro ^^ (werd ma versuchen die Fehlerquelle selber zu beheben)
Mfg RealmReborn
PS: Die Zieltabelle ist ein vertrauliches Dokument deswegen kann ich diese nicht anbieten.
Re: Makro
Verfasst: Di, 15.07.2014 13:11
von clag
Hallo RealmReborn,
kann eigentlich nur am Index der Tabellen Blätter liegen
oder an den Spalten in denen X und Nummer gesucht werden
Blatt Index ist 0 und 1 belegt also 1. und 2. Tabelle Name ist egal
Habe noch einen kleinen Fehler im Makro und beseitigt in der Zeile die du aufzeigt hast
versuch mal dieses hier