WinCC Einlesen von Prozess-Daten über Excel / Fehler

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

nur mal interessehalber, wie muesste das Script den Aussehen, wenn man mit WITH arbeiten moechte bzw. mit dem Hauptobjekt?
Laesst mich einfach nicht los.

Code:
Sub OnLButtonUp(Byval Item, Byval Flags, Byval x, Byval y)                                                      


Dim a, wshshell, key, b
Dim objExcelApp
Dim objWorkbooks
Dim objSheet
Dim objTag_intern, objTag_extern, Zaehler, Zaehler_Trag, Zeichen
Dim MotorGenerator, GeneratorMotor
Dim Uebersetz_G1, Uebersetz_G2


Dim sIniDir, sFilter, sTitle, oDlg, GetFileDlgEx, wsExcel
Dim  rep, appExcel


'On Error Resume Next
Set objTag_extern = HMIRuntime.Tags("Digi_S7_WinCC1")


If (objTag_extern.read And &H40040000) = &H40040000 Then
motorgenerator = 1
generatormotor = 0
Elseif (objTag_extern.read And &H80020000) = &H80020000 Then
motorgenerator = 0
generatormotor = 1
Else MsgBox "Keine Betriebsart für Maschine 1 und Maschine 2 angegeben"
Exit Sub
End If


Set objTag_extern = HMIRuntime.Tags("Übersetz_G1")
If objTag_extern.Read = 0 Then 
 MsgBox "Kein Übersetzungsverhältnis für G1 angegeben"
 Exit Sub
Else Uebersetz_G1 = objTag_extern.Read
End If


Set objTag_extern = HMIRuntime.Tags("Übersetz_G2")
If objTag_extern.Read = 0 Then 
 MsgBox "Kein Übersetzungsverhältnis für G2 angegeben"
 Exit Sub
Else Uebersetz_G2 = objTag_extern.Read
End If


'Prüfablaufunterbrechungen auf Null setzen
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_1")
objTag_extern.Write 0
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_2")
objTag_extern.Write 0
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_3")
objTag_extern.Write 0
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_4")
objTag_extern.Write 0


sIniDir = ("D:\\Belastungsvorgaben\\*") 
sFilter = ("Excel (*.xlsx)|*.xlsx|")  
sTitle = ("Auswahl der Benötigten Excel-Datei")  
Set oDlg = CreateObject("WScript.Shell").Exec("mshta.exe ""about:<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object><script>moveTo(0,-9999);eval(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0).Read("&Len(sIniDir)+Len(sFilter)+Len(sTitle)+41&"));function window.onload(){var p=/[^\0]*/;new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(p.exec(d.object.openfiledlg(iniDir,null,filter,title)));close();}</script><hta:application showintaskbar=no />""")  
 
oDlg.StdIn.Write "var iniDir='" & sIniDir & "';var filter='" & sFilter & "';var title='" & sTitle & "';"     'öffnet den dialog
GetFileDlgEx = oDlg.StdOut.ReadAll


Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbooks = objExcelApp.Workbooks.Open (GetFileDlgEx)
Set wsExcel = objWorkbooks.Worksheets("Tabelle1")




'Laufzeiten einlesen
For Zaehler = 1 To 120
    wsExcel.Range("B" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "t")
    If .ActiveCell.Value = "" Then
    objTag_extern.Write 0
    Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 9000) Then objTag_extern.Write .ActiveCell.Value
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle C" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub
    End If
Next


'Solldrehzahl Abtrieb einlesen
For Zaehler = 1 To 120
    wsExcel.Range("C" & Zaehler + 4).Select
    Set objTag_intern = HMIRuntime.Tags("P" & Zaehler & "n")
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "n")
    If .ActiveCell.Value = "" Then
    objTag_intern.Write 0
    objTag_extern.Write 0
    Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 5400) Then 
    objTag_intern.Write .ActiveCell.Value
        If Motorgenerator = 1 Then
        objTag_extern.Write  .ActiveCell.Value * Uebersetz_G1 / Uebersetz_G2
        Elseif generatormotor = 1 Then
        objTag_extern.Write  .ActiveCell.Value * Uebersetz_G2 / Uebersetz_G1
        Else objTag_extern.Write 0
        End If
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle A" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub    
    End If
Next


'Solldrehmoment Abtrieb einlesen
For Zaehler = 1 To 120
    wsExcel.Range("D" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "M")
    If .ActiveCell.Value = "" Then
    objTag_extern.Write 0
    Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 40000) Then 
    objTag_extern.Write .ActiveCell.Value
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle B" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub
    End If
Next


'Prüfablaufunterbrechungen für Tragbildaufnahmen (T) einlesen
For Zaehler = 1 To 119
    wsExcel.Range("E" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("Trag_" & Zaehler)
    For Zaehler_Trag = 1 To Len(.ActiveCell.Value) 
         Zeichen = Mid(.ActiveCell.Value, Zaehler_Trag, 1) 
         If Zeichen = "T" And wsExcel.cells((Zaehler+4),3).value > 0 Then
         objTag_extern.Write 1 
         End If
    Next
Next






objExcelApp.Workbooks.Close
' Tabelle schließen
objExcelApp.Quit
' Excel schließen
Set objExcelApp = Nothing
MsgBox "Einlesen der Excel-Datei erfolgreich beendet",vbSystemModal


End Sub


mfg Martin3G
 
Dein Script, so wie du es gepostet hast, kann m.E. nicht funktionieren, da du in verschiedenen Script-Teilen Sub-Objekte verwendest, die sich auf kein Hauptobjekt beziehen - z.B.: .ActiveCell
Hier eine Passage :
Code:
'Laufzeiten einlesen
For Zaehler = 1 To 120
    wsExcel.Range("B" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "t")
    If [COLOR=#FF0000].ActiveCell.[/COLOR]Value = [COLOR=#FF0000][/COLOR]"" Then
    objTag_extern.Write 0
    Elseif [COLOR=#FF0000].ActiveCell[/COLOR].Value = 0 Or [COLOR=#FF0000](.ActiveCell[/COLOR].Value > 9 And [COLOR=#FF0000].ActiveCell[/COLOR].Value < 9000) Then objTag_extern.Write [COLOR=#FF0000].ActiveCell[/COLOR].Value
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle C" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub
    End If
Next
das sollte dann besser so aussehen :
Code:
'Laufzeiten einlesen
[COLOR=#0000FF]with wsExcel[/COLOR]
For Zaehler = 1 To 120
    l.Range("B" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "t")
    If .ActiveCell.Value = "" Then
    objTag_extern.Write 0
    Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 9000) Then objTag_extern.Write .ActiveCell.Value
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle C" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub
    End If
Next
[COLOR=#0000FF]end with[/COLOR]
das geht natürlich von der Annahme aus, dass "wsExcel" das korrekte Objekt ist ...

Gruß
Larry
 
Hallo nochmal,

nur mal interessehalber, wie muesste das Script den Aussehen, wenn man mit WITH arbeiten moechte bzw. mit dem Hauptobjekt?
Laesst mich einfach nicht los.
das hat Larry doch im post 22schon gesagt wie das zusammenhängt
das einzige was fehlt ist folgende zeile.
With objExcelApp


mit with sieht das dann so aus
Code:
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbooks = objExcelApp.Workbooks.Open (GetFileDlgEx)

[COLOR=#FF0000]With objExcelApp[/COLOR]

'Laufzeiten einlesen
For Zaehler = 1 To 120
    [COLOR=#FF0000].Range[/COLOR]("B" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "t")
    If [COLOR=#FF0000].ActiveCell[/COLOR].Value = "" Then
    objTag_extern.Write 0
    Elseif [COLOR=#FF0000].ActiveCell[/COLOR].Value = 0 Or ([COLOR=#FF0000].ActiveCell[/COLOR].Value > 9 And [COLOR=#FF0000].ActiveCell[/COLOR].Value < 9000) Then objTag_extern.Write [COLOR=#FF0000].ActiveCell[/COLOR].Value
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle C" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub
    End If
Next
usw....
End Sub
ohne with sieht das dann so aus
Code:
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbooks = objExcelApp.Workbooks.Open (GetFileDlgEx)
Set [COLOR=#FF0000]wsExcel[/COLOR] = objWorkbooks.Worksheets("Tabelle1")

'Laufzeiten einlesen
For Zaehler = 1 To 120
    [COLOR=#FF0000]wsExcel[/COLOR][COLOR=#FF0000].Range[/COLOR]("B" & Zaehler + 4).Select
    Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "t")
    If [COLOR=#FF0000]wsExcel[/COLOR][COLOR=#FF0000].ActiveCell[/COLOR].Value = "" Then
    objTag_extern.Write 0
    Elseif [COLOR=#FF0000]wsExcel[/COLOR].ActiveCell.Value = 0 Or ([COLOR=#FF0000]wsExcel[/COLOR].ActiveCell.Value > 9 And [COLOR=#FF0000]wsExcel[/COLOR].ActiveCell.Value < 9000) Then objTag_extern.Write [COLOR=#FF0000]wsExcel[/COLOR].ActiveCell.Value
    Else
    MsgBox "Das Einlesen wird gestoppt ab Zelle C" & Zaehler + 4
    Zaehler = 120
    objExcelApp.Workbooks.Close
    ' Tabelle schließen
    objExcelApp.Quit
    ' Excel schließen
    Set objExcelApp = Nothing
    Exit Sub
    End If
Next
usw.... 
End Sub
 
Zuletzt bearbeitet:
@Larry

seh ich auch so. sein code wird nicht funktionieren. wie er es gelöst
im post 20 hat er geschrieben wie er es gelöst hat.

bist du sicher das
with wsExcel richtig ist? mag zwar funktionieren aber im orginal steht
With objExcelApp

die zeile
Set wsExcel = objWorkbooks.Worksheets("Tabelle1")
hatte ich hinzugefügt, da ich das mit dem with nicht kannte
 
Hallo Ihr beiden,


Jetzt hab ich das verstanden mit dem Benötigten Objekt.
Ich Danke euch für eure Hilfe.


Das Programm aus Post 20 Funktioniert in Kombination mit dem Registry Aufruf + der vbs Datei, im Dialog öffnen.

Dazu wird dieser Programmausschnitt benötigt:

Code:
Set wshshell = CreateObject("Wscript.shell")
wshshell.regwrite "HKEY_CURRENT_USER\temp\dir", ""           
b = ("wscript.exe" & " " & HMIRuntime.ActiveProject.Path & "\library\dialog_öffnen.vbs")
a = CreateObject("Wscript.shell").Run(b,1,True) 
key = "HKEY_CURRENT_USER\temp\dir"
If wshshell.regread(key) <> "" Then
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
With objExcelApp
.Workbooks.Open wshshell.regread(key)

Und zusätzlich benötigt man wie gesagt die dialog_öffnen.vbs.

Code:
Option Explicit


Dim Excel, wshshell


Set wshshell = CreateObject("Wscript.shell")
Set Excel = CreateObject("Excel.Application")
    
With Excel.FileDialog(3)
     .AllowMultiSelect = False
     .Filters.Clear
     .Filters.Add "Excel files", "*.xls,*.xlsx"
     .InitialFileName = "D:\Belastungsvorgaben"
Excel.Visible = True 
Excel.WindowState = -4140 ' Excel - Fenster minimieren
wshshell.AppActivate ("Excel")


     .Show
  If .SelectedItems.Count = 1 Then
        wshshell.regwrite "HKEY_CURRENT_USER\temp\dir", .SelectedItems(1)
    End If
End With

Im Kombination der beiden Programme liesst er auch die Excel-Tabelle ein.

Ich wollte aber auch den Lösungsweg der nicht über die Registry geht wissen.

Nun weiss ich ihn:).


mfg Martin3G
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Larry
bist du sicher das
with wsExcel richtig ist? mag zwar funktionieren aber im orginal steht
With objExcelApp

die zeile
Set wsExcel = objWorkbooks.Worksheets("Tabelle1")
hatte ich hinzugefügt, da ich das mit dem with nicht kannte

Nein ... wegen dem Objekt wsExcel bin ich mir nicht sicher ... deshalb hatte ich ja auch geschrieben, dass ich von der Annahme ausgehe.
Aber so, wie ich das im Augenblick sehe, denke ich, dass der TE den Rest jetzt selbst schaffen wird.
Aber ...
@TE:
Vielleicht schreibst du uns mal das korrekte Objekt. Ist ja nicht so unwahrscheinlich, dass das Ergebnis dieses Threads jemanden interessiert ...

Gruß
Larry
 
Klar doch,

hier der Code dann kann jeder selber gucken.
Wobei er noch nen Fehler schmeißt, wenn kein Excel Pfad übergeben wird.
Das muss noch in ne IF-Schleife gepackt werden.
Wenn kein Pfad übergeben wird dann gebe Msgbox"Bitte Datei auswählen" oder so.

Code:
Sub OnLButtonUp(Byval Item, Byval Flags, Byval x, Byval y)                                                                                


Dim a, wshshell, key, b
Dim objExcelApp
Dim objWorkbooks
Dim objSheet
Dim objTag_intern, objTag_extern, Zaehler, Zaehler_Trag, Zeichen
Dim MotorGenerator, GeneratorMotor
Dim Uebersetz_G1, Uebersetz_G2
Dim sIniDir, sFilter, sTitle, oDlg, GetFileDlgEx




'On Error Resume Next
Set objTag_extern = HMIRuntime.Tags("Digi_S7_WinCC1")


If (objTag_extern.read And &H40040000) = &H40040000 Then
motorgenerator = 1
generatormotor = 0
Elseif (objTag_extern.read And &H80020000) = &H80020000 Then
motorgenerator = 0
generatormotor = 1
Else MsgBox "Keine Betriebsart für Maschine 1 und Maschine 2 angegeben"
Exit Sub
End If


Set objTag_extern = HMIRuntime.Tags("Übersetz_G1")
If objTag_extern.Read = 0 Then 
 MsgBox "Kein Übersetzungsverhältnis für G1 angegeben"
 Exit Sub
Else Uebersetz_G1 = objTag_extern.Read
End If


Set objTag_extern = HMIRuntime.Tags("Übersetz_G2")
If objTag_extern.Read = 0 Then 
 MsgBox "Kein Übersetzungsverhältnis für G2 angegeben"
 Exit Sub
Else Uebersetz_G2 = objTag_extern.Read
End If


'Prüfablaufunterbrechungen auf Null setzen
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_1")
objTag_extern.Write 0
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_2")
objTag_extern.Write 0
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_3")
objTag_extern.Write 0
Set objTag_extern = HMIRuntime.Tags("Trag_DWORD_4")
objTag_extern.Write 0


sIniDir = ("D:\\Belastungsvorgaben\\*") 
sFilter = ("Excel (*.xlsx)|*.xlsx|")  
sTitle = ("Auswahl der Benötigten Excel-Datei")  
Set oDlg = CreateObject("WScript.Shell").Exec("mshta.exe ""about:<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object><script>moveTo(0,-9999);eval(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(0).Read("&Len(sIniDir)+Len(sFilter)+Len(sTitle)+41&"));function window.onload(){var p=/[^\0]*/;new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(p.exec(d.object.openfiledlg(iniDir,null,filter,title)));close();}</script><hta:application showintaskbar=no />""")  


 
oDlg.StdIn.Write "var iniDir='" & sIniDir & "';var filter='" & sFilter & "';var title='" & sTitle & "';"     'öffnet den dialog
GetFileDlgEx = oDlg.StdOut.ReadAll
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbooks = objExcelApp.Workbooks.Open (GetFileDlgEx)
With objExcelApp




'Laufzeiten einlesen
For Zaehler = 1 To 120
	.Range("B" & Zaehler + 4).Select
	Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "t")
	If .ActiveCell.Value = "" Then
	objTag_extern.Write 0
	Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 9000) Then objTag_extern.Write .ActiveCell.Value
	Else
	MsgBox "Das Einlesen wird gestoppt ab Zelle C" & Zaehler + 4
	Zaehler = 120
	objExcelApp.Workbooks.Close
	' Tabelle schließen
	objExcelApp.Quit
	' Excel schließen
	Set objExcelApp = Nothing
	Exit Sub
	End If
Next


'Solldrehzahl Abtrieb einlesen
For Zaehler = 1 To 120
	.Range("C" & Zaehler + 4).Select
	Set objTag_intern = HMIRuntime.Tags("P" & Zaehler & "n")
	Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "n")
	If .ActiveCell.Value = "" Then
	objTag_intern.Write 0
	objTag_extern.Write 0
	Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 5400) Then 
	objTag_intern.Write .ActiveCell.Value
		If Motorgenerator = 1 Then
		objTag_extern.Write  .ActiveCell.Value * Uebersetz_G1 / Uebersetz_G2
		Elseif generatormotor = 1 Then
		objTag_extern.Write  .ActiveCell.Value * Uebersetz_G2 / Uebersetz_G1
		Else objTag_extern.Write 0
		End If
	Else
	MsgBox "Das Einlesen wird gestoppt ab Zelle A" & Zaehler + 4
	Zaehler = 120
	objExcelApp.Workbooks.Close
	' Tabelle schließen
	objExcelApp.Quit
	' Excel schließen
	Set objExcelApp = Nothing
	Exit Sub	
	End If
Next


'Solldrehmoment Abtrieb einlesen
For Zaehler = 1 To 120
	.Range("D" & Zaehler + 4).Select
	Set objTag_extern = HMIRuntime.Tags("PS" & Zaehler & "M")
	If .ActiveCell.Value = "" Then
	objTag_extern.Write 0
	Elseif .ActiveCell.Value = 0 Or (.ActiveCell.Value > 9 And .ActiveCell.Value < 40000) Then 
	objTag_extern.Write .ActiveCell.Value
	Else
	MsgBox "Das Einlesen wird gestoppt ab Zelle B" & Zaehler + 4
	Zaehler = 120
	objExcelApp.Workbooks.Close
	' Tabelle schließen
	objExcelApp.Quit
	' Excel schließen
	Set objExcelApp = Nothing
	Exit Sub
	End If
Next


'Prüfablaufunterbrechungen für Tragbildaufnahmen (T) einlesen
For Zaehler = 1 To 119
	.Range("E" & Zaehler + 4).Select
	Set objTag_extern = HMIRuntime.Tags("Trag_" & Zaehler)
	For Zaehler_Trag = 1 To Len(.ActiveCell.Value) 
 		Zeichen = Mid(.ActiveCell.Value, Zaehler_Trag, 1) 
 		If Zeichen = "T" And .cells((Zaehler+4),3).value > 0 Then
 		objTag_extern.Write 1 
 		End If
	Next
Next


End With


objExcelApp.Workbooks.Close
' Tabelle schließen
objExcelApp.Quit
' Excel schließen
Set objExcelApp = Nothing
MsgBox "Einlesen der Excel-Datei erfolgreich beendet",vbSystemModal


End Sub


mfg Martin3G
 
Hallo nochmal,

hat einer von euch beiden vielleicht ne Idee wie ich den String vergleich am besten umsetzte, hab schon viel gelesen und ausprobiert aber ich bekomme es einfach nicht gebacken.

Moechte die Variable GetFileDlgEx auslesen und prüfen ob in dem String eine Pfad steckt.

Wenn kein Pfad vorhanden ist gebe bitte eine MsgBox aus.
Wenn ein Pfad vorhanden ist führe das Programm normal aus.

Also so ungefaehr :confused:

Code:
If GetFileDlgEx = Nothing Then
MsgBox "Bitte Datei auswählen",vbSystemModal


Else
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbooks = objExcelApp.Workbooks.Open (GetFileDlgEx)
With objExcelApp

oder so

Dim Vergleich
Vergleich = "D:\Belastungsvorgaben"

If Vergleich = GetFileDlgEx Then

?


mfg Martin3G
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok, habs jetzt so geloest


Code:
If  GetFileDlgEx = Empty Then
MsgBox "Bitte wählen Sie eine Datei aus",vbSystemModal
Else
Set objExcelApp = CreateObject("Excel.Application")
Set objWorkbooks = objExcelApp.Workbooks.Open (GetFileDlgEx)
With objExcelApp



mfg Martin3G
 
Zurück
Oben