PDA

Vollständige Version anzeigen : VBA-Programmierung Makro führt Aktion nicht aus


roberto87
14.07.2012, 12:33
Hallo Leute,



ich habe da ein Problem, dies ist folgendes. Ich habe für ein Internetbrowsergame eine Tabelle bekommen, die dort eine Aktion ausführen soll. Ist eine kleine Hilfe aber kein Beschiss. Um das vorher mal klar zu stellen. Die Tabelle mit ihren Makros soll auf einen Art Check erkennen. Dieser Check sind 9 bilder und eins davon muss erkannt werden. Das Problem ist, das dieser nicht mehr erkannt wird. Die Tabelle mit den Makros wurde mal für den Internet Explorer 5 geschrieben. Ein Teil der Makros funktioniert auf auf dem Internet Explorer 6, so weit ich das testen konnte. Aber da ich den Internet Eplorer 5 nicht auf meinen alten XP Rechner bekomme. Aber mein Kumpel von dem ich die Tabelle habe, meinte das es funktioniert. Nun bin ich der Meinung, das sich irgendwas verändert und dort was umgeschrieben werden muss. Daher suche ich jemanden, der mal in die Tabelle mit den Makros schaut. Ich habe auch alle Active X elemente aktiviert, damit die Makros auf die Internetseite zu greifen können. (www.gangsofcrimes1930.de).

Habt ihr vllt. noch einen anderen Tipp oder muss ich noch irgendwas beachten. Ich habe leider auch nicht so viel Ahnung von der Programmierung. Ich kann gerne jemanden die Tabelle zu kommen lassen. Hier ist schon mal ein Teil des Codes.



gruß timer

Sub Angriffsfuehrung5()
sDName = ActiveWorkbook.Name
'If Workbooks(sDName).Worksheets("Main").Cells(8, 2) = 22459 Then
Set ie = CreateObject("InternetExplorer.Application")

sDPath = ActiveWorkbook.Path
URL = sDPath + "\Mafia1930_Angriff.html"
SID = Workbooks(sDName).Worksheets("Main").Cells(2, 2)
ZAPMin = Workbooks(sDName).Worksheets("Main").Cells(14, 2) / 10
ZAPMax = Workbooks(sDName).Worksheets("Main").Cells(15, 2) / 10
ZAPMinStep = Workbooks(sDName).Worksheets("Main").Cells(12, 2)
ZAPMaxStep = Workbooks(sDName).Worksheets("Main").Cells(13, 2)
ZAPCount = Int((ZAPMaxStep - ZAPMinStep + 1) * Rnd(1) + ZAPMinStep)
ulDissi = 999999
'GoSub WechselDissi
'
Workbooks(sDName).Worksheets("Webseite").Select
Cells(2, 1).Select
Restangriffe = 1
While Restangriffe > 0
Startzeit = Time()
Restangriffe = 0
While ActiveCell.Offset(0, 1) <> ""
Startzeit2 = Time()
'Link zusammenbauen & Seite öffnen
ActiveCell.Offset(0, 5).Select 'Anzahl
If ActiveCell = "" Then ActiveCell = 0
x = ActiveCell.Offset(0, 1) 'Stärke Übernahme
Y = ActiveCell 'Anzahl
If x > 0 And Y = 1 Then ActiveCell = 88 'Angriff und Übernahme
If x > 0 And Y = 0 Then ActiveCell = 99 'nur Übernahme
'If ActiveCell.Offset(0, 1) > 0 And ActiveCell() = 0 Then Active Cell = 99
uiCheckDissi = Val(Left$(ActiveCell.Offset(0, 2), InStr(1, ActiveCell.Offset(0, 2), " - ", 1)))
If uiCheckDissi <> ulDissi And uiCheckDissi <> 0 Then
ulDissi = uiCheckDissi
GoSub WechselDissi
End If
Select Case ActiveCell
Case 0 ' nix zu tun
'
Case 88 ' Angriff mit folgender Übernahme
'
uiAnzahl = ActiveCell - 1
ActiveCell = 0
ActiveCell.Offset(0, -1).Select
If ActiveCell = "RND" Then
APMin = Workbooks(sDName).Worksheets("Main").Cells(10, 2) / 10
APMax = Workbooks(sDName).Worksheets("Main").Cells(11, 2) / 10
uiStaerke = -1
Do While uiStaerke > APMax Or uiStaerke < APMin
uiStaerke = Int(Rnd(1) * (APMax))
Loop
'
Else
uiStaerke = ActiveCell / 10
End If
ActiveCell.Offset(0, 3).Select
'URL = URL1 + ActiveCell
ie.navigate URL
Do While ie.busy And Not ie.readystate = 4
DoEvents
Loop
Do While Not ie.readystate = 4
DoEvents
Loop
ie.Visible = True
ie.document.angriff.SID.Value = SID
' aufgrund der laggenden Server bereits den District und die Stadt vorwählen.
ie.document.angriff.bezirkNr.Value = Right$(Str$(ActiveCell.Offset(0, -4)), Len(Str$(ActiveCell.Offset(0, -4))) - 1) ' + " selected"
ie.document.angriff.stadt.Value = ActiveCell.Offset(0, -6)
' Plünderung wählen
ie.document.angriff.angriffTyp(0).Checked = "Wahr"
' Killer einsetzen
ie.document.angriff.gfnr_10.Value = Right$(Str$(uiStaerke), Len(Str$(uiStaerke)) - 1)
Do While Not ie.readystate = 4
DoEvents
Loop
WZS = Time()
Do While Wartezeit > 0.5 Or Wartezeit < 0.2
Wartezeit = Rnd(1)
Loop
Wartezeit = Int(Wartezeit * 10000)
Do While Int((Time() - WZS) * 24 * 3600000) < Wartezeit
DoEvents
Loop
raus = ie.document.forms(0).submit()

Startzeit3 = Time() '2 Sekunden Wartezeit einbauen
Do While Int((Time() - Startzeit3) * 24 * 60 * 60) < 4
DoEvents
Loop
ActiveCell.Offset(0, -1).Select
uiStaerke = (ActiveCell / 10) - 3
ActiveCell = 0
Cells(ActiveCell.Row, 1).Interior.ColorIndex = 46
ie.navigate URL
Do While ie.busy And Not ie.readystate = 4
DoEvents
Loop
Do While Not ie.readystate = 4
DoEvents
Loop
ie.Visible = True
ie.document.angriff.SID.Value = SID
' aufgrund der laggenden Server bereits den District und die Stadt vorwählen.
ie.document.angriff.bezirkNr.Value = Right$(Str$(ActiveCell.Offset(0, -3)), Len(Str$(ActiveCell.Offset(0, -3))) - 1) ' + " selected"
ie.document.angriff.stadt.Value = ActiveCell.Offset(0, -5)
' Übernahme wählen
ie.document.angriff.angriffTyp(1).Checked = "Wahr"
'ie.document.Angriff.angriffTyp(1).Checked = "Falsch"
' Killer einsetzen
ie.document.angriff.gfnr_10.Value = Right$(Str$(uiStaerke), Len(Str$(uiStaerke)) - 1)
' Bodys einsetzen
ie.document.angriff.gfnr_9.Value = "10"
' Consiliere einsetzen
ie.document.angriff.gfnr_45.Value = "1"
'
Do While Not ie.readystate = 4
DoEvents
Loop
WZS = Time()
Do While Wartezeit > 0.5 Or Wartezeit < 0.2
Wartezeit = Rnd(1)
Loop
Wartezeit = Int(Wartezeit * 10000)
Do While Int((Time() - WZS) * 24 * 3600000) < Wartezeit
DoEvents
Loop
raus = ie.document.forms(0).submit()
'
Case 99 ' nur Übernahme
'
ActiveCell = 0
ActiveCell.Offset(0, 1).Select
uiStaerke = (ActiveCell / 10) - 3
ActiveCell = 0
Cells(ActiveCell.Row, 1).Interior.ColorIndex = 46
ActiveCell.Offset(0, 1).Select
'URL = URL1 + ActiveCell
ie.navigate URL
Do While ie.busy And Not ie.readystate = 4
DoEvents
Loop
Do While Not ie.readystate = 4
DoEvents
Loop
ie.Visible = True
ie.document.angriff.SID.Value = SID
' aufgrund der laggenden Server bereits den District und die Stadt vorwählen.
ie.document.angriff.bezirkNr.Value = Right$(Str$(ActiveCell.Offset(0, -4)), Len(Str$(ActiveCell.Offset(0, -4))) - 1) ' + " selected"
ie.document.angriff.stadt.Value = ActiveCell.Offset(0, -6)
' Übernahme wählen
ie.document.angriff.angriffTyp(1).Checked = "Wahr"
'ie.document.Angriff.angriffTyp(1).Checked = "Falsch"
' Killer einsetzen
ie.document.angriff.gfnr_10.Value = Right$(Str$(uiStaerke), Len(Str$(uiStaerke)) - 1)
' Bodys einsetzen
ie.document.angriff.gfnr_9.Value = "10"
' Consiliere einsetzen
ie.document.angriff.gfnr_45.Value = "1"
raus = ie.document.forms(0).submit()
'

Do While Not ie.readystate = 4
DoEvents
Loop
WZS = Time()
Do While Wartezeit > 0.5 Or Wartezeit < 0.2
Wartezeit = Rnd(1)
Loop
Wartezeit = Int(Wartezeit * 10000)
Do While Int((Time() - WZS) * 24 * 3600000) < Wartezeit
DoEvents
Loop
'
Case Else ' nur Angriff


uiAnzahl = ActiveCell - 1
Restangriffe = Restangriffe + uiAnzahl
ActiveCell = uiAnzahl
ActiveCell.Offset(0, -1).Select
If ActiveCell = "RND" Then
If ZAPCount > 0 Then
APMin = Workbooks(sDName).Worksheets("Main").Cells(10, 2) / 10
APMax = Workbooks(sDName).Worksheets("Main").Cells(11, 2) / 10
ZAPCount = ZAPCount - 1
Else
APMin = Workbooks(sDName).Worksheets("Main").Cells(14, 2) / 10
APMax = Workbooks(sDName).Worksheets("Main").Cells(15, 2) / 10
ZAPCount = Int((ZAPMaxStep - ZAPMinStep + 1) * Rnd + ZAPMinStep)
End If

uiStaerke = -1
Do While uiStaerke > APMax Or uiStaerke < APMin
uiStaerke = Int(Rnd(1) * (APMax))
Loop
'
Else
uiStaerke = ActiveCell / 10
End If
'
ActiveCell.Offset(0, 3).Select
'URL = URL1 + ActiveCell
ie.Visible = True
ie.navigate URL
Do While ie.busy And Not ie.readystate = 4
DoEvents
Loop
Do While Not ie.readystate = 4
DoEvents
Loop
ie.Visible = True
ie.document.angriff.SID.Value = SID
' aufgrund der laggenden Server bereits den District und die Stadt vorwählen.
test1 = Right$(Str$(ActiveCell.Offset(0, -4)), Len(Str$(ActiveCell.Offset(0, -4))) - 1) ' + " selected"
test2 = ActiveCell.Offset(0, -6)
ie.document.angriff.bezirkNr.Value = Right$(Str$(ActiveCell.Offset(0, -4)), Len(Str$(ActiveCell.Offset(0, -4))) - 1) ' + " selected"
ie.document.angriff.stadt.Value = ActiveCell.Offset(0, -6)
'ie.document.all.angriffstrupp.Style.display = "inline"
' Plünderung wählen
ie.document.angriff.angriffTyp(0).Checked = "Wahr"
' Killer einsetzen
ie.document.angriff.gfnr_10.Value = Right$(Str$(uiStaerke), Len(Str$(uiStaerke)) - 1)
raus = ie.document.angriff.submit()
'raus = ie.document.angriff.submit()
Do While ie.busy
DoEvents
Loop

titel = ie.document.Title
If ie.document.Title = "e-sport.com - security -" Then
a = MsgBox("CODE!", vbYes, "CODE")
End If
End Select
Cells(ActiveCell.Row, 1).Select
'ActiveCell.Interior.ColorIndex = 46
ActiveCell.Offset(1, 0).Select
Endezeit = Time()
Dauer = (Endezeit - Startzeit2) * 100000
ZwZeit = Workbooks(sDName).Worksheets("Main").Cells(5, 2) / 1000
Zufallszeit = Rnd(1) * 3

While Dauer < ZwZeit + Zufallszeit

Endezeit = Time()
Dauer = (Endezeit - Startzeit2) * 100000
DoEvents

Wend

'Startzeit2 = Time()
'Do While Int((Time() - Startzeit2) * 24 * 3600000) < Workbooks(sDName).Worksheets("Main").Cells(5, 2)
' DoEvents
'Loop
Wend ' Ende der inneren Schleife
Cells(2, 1).Select
Do While Int((Time() - Startzeit) * 24 * 3600) < Workbooks(sDName).Worksheets("Main").Cells(6, 2)
DoEvents
Loop
Wend 'Ende der Angriffswelle
'
End
'
WechselDissi:
sDissi = Str$(ulDissi)
wD_URL2 = Right$(sDissi, Len(sDissi) - 1)
wD_URL = "http://www.mafia1930.de/indexMember.php?tpl=district_verwalten&action=change&bezirk=" + wD_URL2 + "&sid=" + SID
ie.navigate wD_URL
Do While ie.busy And Not ie.readystate = 4
DoEvents
Loop
Application.Wait Now + TimeSerial(0, 0, 1)
'Wiederholung wg. der tollen Server
ie.navigate wD_URL
Do While ie.busy And Not ie.readystate = 4
DoEvents
Loop
ie.Visible = True

Return
'End If

End Sub