Typ unverträglichkeit

  • Excel

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Nicoleka95.

    Typ unverträglichkeit

    Hallo, ich habe folgendes Problem und hoffe, dass mir jemand weiter helfen kann :))
    Wenn ich den Code Ausführe wird mir in der Zeile 30 die Fehlermeldung "Typ unverträglich" angezeigt.
    Wenn ich aber arr ohne Long implementiere, dann wird die Zahl, die in der Quelltabelle ist, falsch angezeigt.(denke als Text)

    Liebe Grüße Nicole :)

    Visual Basic-Quellcode

    1. Dim angebot As Worksheet 'Ziel
    2. Dim objekt As Worksheet 'Quelle
    3. Set objekt = Worksheets("Kundenobjekte") 'Qeulle
    4. Set angebot = Worksheets("Angebotsliste") 'Ziel
    5. Dim zeileQuelle As Integer
    6. Dim zeileZiel As Integer
    7. Dim spalteQuelle As Integer
    8. Dim spalteZiel As Integer
    9. Dim arr As Long
    10. zeileQuelle = 7
    11. zeileZiel = 4
    12. spalteQuelle = 13
    13. spalteZiel = 2
    14. 'Angebotsliste druchlaufen
    15. While Not IsEmpty(angebot.Cells(zeileZiel, spalteZiel))
    16. 'Maschiene durchlaufen
    17. For zeileQuelle = 6 To objekt.Cells(Rows.Count, 1).End(xlUp).Row
    18. 'Wenn Verkaufsbeleg, Position Maschiene = Angebostliste
    19. If objekt.Cells(zeileQuelle, spalteQuelle).Value = angebot.Cells(zeileZiel, spalteZiel).Value And objekt.Cells(zeileQuelle, spalteQuelle + 1).Value = angebot.Cells(zeileZiel, spalteZiel + 1).Value Then
    20. arr = objekt.Cells(zeileQuelle, 15).Value
    21. While objekt.Cells(zeileQuelle, spalteQuelle).Value = objekt.Cells(zeileQuelle + 1, spalteQuelle).Value And objekt.Cells(zeileQuelle, spalteQuelle + 1).Value = objekt.Cells(zeileQuelle + 1, spalteQuelle + 1).Value
    22. arr = arr & vbCrLf & CStr(objekt.Cells(zeileQuelle + 1, 15).Value)
    23. zeileQuelle = zeileQuelle + 1
    24. Wend
    25. angebot.Cells(zeileZiel, 18).Value = arr
    26. Exit For
    27. End If
    28. Next zeileQuelle
    29. zeileQuelle = 1
    30. zeileZiel = zeileZiel + 1
    31. Wend
    32. End Sub

    Nicoleka95 schrieb:

    wird mir in der Zeile die Fehlermeldung "Typ unverträglich" angezeigt.
    In welcher Zeile?

    Nicoleka95 schrieb:

    Wenn ich aber arr ohne Long schreibe
    was? Einfach nur Dim arr? Klar, dann ist es vom Typ Object. Schreib Dim arr As Integer und probier nochmal.

    EDIT: Moooment. Was soll den arr sein??? Allein die Zeile arr = arr & vbCrLf & CStr(objekt.Cells(zeileQuelle + 1, 15).Value) sagt doch wohl, dass arr ein String sein muss

    btw:

    Nicoleka95 schrieb:

    Maschiene
    wird korrekt "Maschine" geschrieben.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Was soll Deiner Meinung nach folgende Zeile bewirken: arr = arr & vbCrLf & CStr(objekt.Cells(zeileQuelle + 1, 15).Value). CStr hin oder her ist wurscht. Beschreib mal bitte, was da genau passiert. Was soll hier mit der Zahl arr passieren?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Du schreibst, dass arr eine Zahl ist, sagen wir: 5
    Angenommen, in der Zeile objekt.Cells(zeileQuelle + 1, 15) stünde "8" drin, sodass objekt.Cells(zeileQuelle + 1, 15).Value "8" ergäbe.
    Was soll sich in der "Berechnung" arr = arr & vbCrLf & CStr(objekt.Cells(zeileQuelle + 1, 15).Value) für arr Deiner Meinung nach für ein Endwert ergeben?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Und damit ist klar, dass arr da nicht verwendet werden kann, sondern dass Du an dieser Stelle eine Textvariable brauchst, die jene Daten aufnimmt und an die Zelle weitergibt. Es ließe sich ggf. auch ohne Variable lösen, aber dann dürfte die Überschichtlichkeit leiden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.