Zellenvergleich und Abspeichern

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

Moderator: Moderatoren

Spacecop
***
Beiträge: 69
Registriert: So, 10.08.2008 21:09
Wohnort: Auetal
Kontaktdaten:

Zellenvergleich und Abspeichern

Beitrag von Spacecop »

Hallo zusammen,

als Anfänger im Makro-Bereich brauche ich mal eure Hilfe.

Ich habe hier den Code, den ich hier aus dem Forum habe, zum Vergleich zweier Zellen:

Code: Alles auswählen

sub vergleich
   oDoc=thisComponent
   oSheet=oDoc.sheets.getByName("Sheet1")
   iWert1=oSheet.getCellRangeByName("A1").value
   iWert2=oSheet.getCellRangeByName("A2").value
   if iWert1=iWert2 then
          msgbox "A1 und A2 sind gleich"
   else
         msgbox "A1 und A2 sind ungleich"
    end if
end sub
Ich möchte aber 2 zellen aus 2 verschiedenen Dateien vergleichen, bzw. in Tabelle1 eine Zelle mit einer Spalte in Tabelle2, in der irgentwo der gleiche Wert wie in Tabelle1 steht abgleichen.
wie würde denn der Code dazu aussehen?

Dann habe ich noch einen Code zum Abspeichern von Änderungen in einer Datei in eine andere Datei:
Hier wird aber auch bei "Nein" und "Abbrechen" abgespeichert. Wo liegt denn hier der Fehler?

Code: Alles auswählen

 Speicherabfrage
Dim sVar as Integer
Dim oDoc As Object
Dim aFileProp(1) as New com.sun.star.beans.PropertyValue
Dim sDatei As String
sVar = MsgBox( "Wollen Sie speichern?",256 + 32 + 3,"Info")
If sVar = 1 Then sDatei
	oDoc = ThisComponent
	sDatei = "file:////home/Desktop/TESTneu.ods"
	aFileProp(0).Name = "Unpacked"
	aFileProp(0).Value = True
	aFileProp(1).Name = "Overwrite"
	aFileProp(1).Value = True
	oDoc.storeAsURL(sDatei, aFileProp()
End Sub
Ich habe mir beide Codes aus dem Forum, bzw. durch goggeln zusammen gesucht. Dann learning by doing und noch etwas Literatur, die hier vorgeschlagen wurde, zu Gemüte geführt, aber ich komme nicht weiter.

Für Hilfe wäre ich sehr dankbar.
Schön wäre auch, wenn man die beiden Code Schnippsel als ein Makro zusammenführen könnte.

Gibt es denn eine Website auf der alle Befehle von OOo Basic gelistet sind und wie sie eingesetzt werden können? So ähnlich wie die Hilfe in OOo selbst.

Gruß
Space
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Zellenvergleich und Abspeichern

Beitrag von balu »

Hallo Space,
Spacecop hat geschrieben: Gibt es denn eine Website auf der alle Befehle von OOo Basic gelistet sind und wie sie eingesetzt werden können?
Gleich im obersten Gepinnten Post "Informationen zur StarBasic-Programmierung" stehen eine reihe an Links zu dem Thema. Ich habe aber schon mehrfach im Forum den verweis zu "Michael Dannenhöfer" und seiner StarBasic FAQ mitbekommen (der Link ist aus dem erwähnten Post), er muss es wohl wert sein, da mal reinzuschauen :wink:. Ich werd mich auch mit der Seite beschäftigen.

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Spacecop
***
Beiträge: 69
Registriert: So, 10.08.2008 21:09
Wohnort: Auetal
Kontaktdaten:

Re: Zellenvergleich und Abspeichern

Beitrag von Spacecop »

Augen sind zum Sehen und Lesen da....
:shock:

Ich hab da schon nachgesehen, aber das nicht entdeckt.

Danke für den Tip Balu!!!

Gruß
Tom
Spacecop
***
Beiträge: 69
Registriert: So, 10.08.2008 21:09
Wohnort: Auetal
Kontaktdaten:

Re: Zellenvergleich und Abspeichern

Beitrag von Spacecop »

Moin,

ich glaube, ich hab die Verbindung selbst hinbekommen. Hier mal der Code:

Code: Alles auswählen

sub Main

rem definiere variablen
Dim document   as object
Dim dispatcher as object
Dim sVar as Integer
Dim oDoc As Object
Dim aFileProp(1) as New com.sun.star.beans.PropertyValue
Dim sDatei As String

rem dokumentenzugriff
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DbName"
args1(0).Value = "Datum1"

dispatcher.executeDispatch(document, ".uno:SelectDB", "", 0, args1())

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "DbName"
args2(0).Value = "Datum2"

dispatcher.executeDispatch(document, ".uno:SelectDB", "", 0, args2())

if Datum1 = Datum2 then 
sVar = MsgBox("Wollen Sie speichern?",128 + 32 + 4,"Info")

if sVar = 6 then

	oDoc = ThisComponent
	sDatei = "file:////home/schthm69/Desktop/TESTneu.ods"
	aFileProp(0).Name = "Unpacked"
	aFileProp(0).Value = True
	aFileProp(1).Name = "New"
	aFileProp(1).Value = True
	oDoc.storeAsURL(sDatei, aFileProp()
	
If sVar = 7 Then end

End If
End Sub
End Sub
vielleicht könnte mal ein Experte von euch drüberschauen, ob das so in Ordnung ist.

Allerdings habe ich noch das Problem, daß die aktuelle Datei, also aus der ich heraus das Makro starte, in "TESTneu.ods" abgespeichert wird und nicht in eine neue.
Dann würde mich noch interessieren, wie der Befehl aussehen würde, wenn ich die Zellen verschiedener Dateien vergleichen möchte.

Vielen Dank für eure Hilfe.
Gruß
Space
Antworten