Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Fehler: Typen unverträglich

Betrifft: Fehler: Typen unverträglich von: kathrin
Geschrieben am: 14.08.2014 14:05:15

Hallo,

in dieser Zeile kommt immer Fehlermeldung: Typen unverträglich

fncGetShapeObjekt(wb:=wbQuelle, strWks:="Kalkulation", strTopLeftCell:="Y4")

Kann mir bitte jemand sagen was falsch ist?

freundliche Grüße
Kathrin

  

Betrifft: AW: Fehler: Typen unverträglich von: Daniel
Geschrieben am: 14.08.2014 14:11:34

Hi

um dir zu sagen was da falsch ist, müssten wir noch wissen:
a) wie hast du die Variable wbQuelle deklariert und zugewiesen
b) welche Datentypen erwartet die Funktion fncGetShapeObjekt hierzu am einfachsten deren Kopfzeile kopieren und hier einstellen.

Gruß Daniel


  

Betrifft: AW: Fehler: Typen unverträglich von: kathrin
Geschrieben am: 14.08.2014 14:19:28

Hallo,

hoffe das sind die Angaben, die du benötigst. Der Teil mit der Funktion habe ich selbst zusammen gebastelt, weiß also nicht, ob das so überhaupt funktionieren würde.

Danke schon mal für deine schnelle Reaktion.

Gruß Kathrin


Private Sub Daten_Auslesen(ByVal sFilename As String, ByVal ZeileZiel As Long)
Dim wbQuelle As Workbook
Dim objShape As Shape
Dim sNameBlatt As String
'Datei mit Artikel-Kalkulation schreibgeschützt öffnen, ggf. inkl. Aktualisierung externer Verknüpfungen
Set wbQuelle = Application.Workbooks.Open(Filename:=sFilename, _
UpdateLinks:=wksSteuer.Range("Verknuepfungen") = "Ja", _
ReadOnly:=True)




Public Function fncGetShapeObjekt(wb As Workbook, strWks As String, strTopLeftCell As String) As Boolean

Dim objShape As Shape

On Error GoTo Fehler

For Each objShape In wbQuelle.Worksheet(strWks).Shapes
If objShape.TopLeftCell.Address(False, False, xlA1) = strTopLeftCell Then
Set fncGetShapeObject(strTopLeftCell:="Y4") = objShape(varBlatt)

End If
Next


  

Betrifft: AW: Fehler: Typen unverträglich von: Daniel
Geschrieben am: 14.08.2014 14:31:03

HI
also ein Fehler ist, dass du in der Funktion die Variable aus der Aufrufenden Sub verwendest und nicht die den Übergabeparameter:

Public Function fncGetShapeObjekt(wb As Workbook, strWks As String, strTopLeftCell As String) As Boolean
...
For Each objShape In wbQuelle.Worksheet(strWks).Shapes



ansonsten könnte es noch daran liegen, dass du mit dem Rückgabeparameter falsch umgehst (ist ne Boolsche Variable), hier müsstest du auch nochmal zeigen wie du mit die Funktion aufrufst.

ansonsten ist es halt so, dass du zum Testen alle "On Error Goto Fehler" auskommentieren solltest, denn nur wenn der Code beim Fehler stoppt, bekommst du auch die Informationen die du brauchst, um die Fehlerursache schnell zu finden (Welche Zeile verursacht den Fehler, welche Werte haben die Variablen usw).

Verwendest du Option Explicit?
Wenn nein, erst das hier lesen, verstehen und anwenden bevor du weitermachst:
http://www.online-excel.de/excel/singsel_vba.php?f=4

Gruß Daniel


  

Betrifft: Das Auskommentieren der ... von: Luc:-?
Geschrieben am: 15.08.2014 00:48:00

On Error GoTo Fehler-Zeilen ist nicht erforderlich, Kathrin,
wenn du als letzte Zeile der FehlerBehandlung Stop: Resume Next notierst (später wieder entfernen!). Das Pgm wird dann nach Halt (ab hier Schrittmodus benutzen!) in der Zeile nach dem aufgetretenen Fehler fortgesetzt. So kannst du unter dem Mauszeiger in der Fehlerzeile ebenfalls die erforderlichen Infos sehen. Die Fehler­Beschreibung (Err.Description) kannst du ja außerdem in der Fehlerbehandlung in einer MsgBox ausgeben lassen.
Gruß, Luc :-?