Zum Forum springen
Benachrichtigungen
Alles löschen

[Geschlossen] Excel Makro

5 Beiträge
2 Benutzer
0 Reactions
418 Ansichten
cheetah83
Beigetreten: 27.02.2007

ist zwar keine hausaufgabe oder so, aber passt hier am besten rein.

also ich hab in den zellen B1 bis B9 zahlen stehen und möchte jetzt die produkte für alle möglichen 2er kombinationen haben. hab mich dafür gerad eben ein bischen in die makro erstellung eingelesen und mein erstes ergebniss ist das folgende

Sub Kombinationen_2_aus_9
dim i as integer
dim j as integer
dim n as integer
for n=1 to 36
    for i=1 to 8
        for j=i+1 to 9
            Cells(12+n,1) = Cells(i,2) * Cells(j,2)
        next j
    next i
next n
End Sub

wenn ich das ganze ausführen möchte kommt allerdings in der zeile mit der gleichung "Basic-Laufzeitfehler. Sub oder Function-Prozedur nicht definiert"
wahrscheinlich mach ich irgendwas ganz falsch oder es ist nur n kleiner dummer fehler, aber ich bin halt absoluter anfänger dadrin. wäre nett wenn mir jemand meinen fehler nennen könnte
achja, ich mach das ganze in openoffice, falls es da unterschiede zur microsoft version gibt


4 Antworten
beninho111
Beigetreten: 23.10.2007

Bei mir läufts mit Excel 2003.
Allerdings macht Dein Programm nicht das, was Du möchtest, aber grundsätzlich laufen tut es.


cheetah83
Beigetreten: 27.02.2007

hab mittlerweile rausgefunden, dass openoffice ne andere programmiersprache benutzt, darum läuft es da wohl nicht. hatte bisher aber noch keine lust mich da dann auch nochmal einzulesen, nachdem ich das erst nach stundenlang ausprobieren und googlen rausgefunden hatte.

was macht mein code oben denn, wenn nicht das, was ich wollte?


beninho111
Beigetreten: 23.10.2007

Schreibt in alle Zellen denselben Wert. Wie der berechnet wird, hab ich aber nicht weiter nachverfolgt.

Falls Du doch nochmal Lust bekommen solltest, kannst Du vielleicht folgendes Snippet als Grundlage verwenden. Das schreibt jetzt nur einen konstanten Wert in alle Zellen, wie man auf die Werte in Zellen zugreift, müsstest Du selber rausfinden. Außerdem ist zu beachten, dass OpenOffice bei 0 anfängt die Zeilen und Spalten zu nummerieren und die Zeilen und Spalten innerhalb getCellByPosition im Gegensatz zu Cells bei VBA auch vertauscht sind.

Sub Kombinationen_2_aus_9
Sub Kombinationen_2_aus_9
dim i as integer
dim j as integer
dim n as integer

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object   
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)


for n=1 to 36
    for i=1 to 8
        for j=i+1 to 9
            Cell = Sheet.getCellByPosition(0, 12+n)
			Cell.Value = 5
        next j
    next i
next n
End Sub
End Sub

cheetah83
Beigetreten: 27.02.2007

Vielen dank, von dem code aus konnte ich meins jetzt recht einfach realisieren. falls es jemanden interessiert, der folgende code macht jetzt das was er soll

Sub Kombinationen_2_aus_9
dim i as integer
dim j as integer
dim n as integer
dim a as single
dim b as single

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object   
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)

n = 0
for i=0 to 7
    for j=i+1 to 8
          Cell =  Sheet.getCellByPosition(1, i)
           a = Cell.Value
           Cell =  Sheet.getCellByPosition(1, j)
           b = Cell.Value
        Cell = Sheet.getCellByPosition(0, 12+n)
        Cell.Value = a * b
        n = n+1
    next j
next i
End Sub