Microsoft Excel

Herbers Excel/VBA-Archiv

Makro Fehlermeldung - Typen unverträglich

Betrifft: Makro Fehlermeldung - Typen unverträglich von: D. Skinner
Geschrieben am: 25.10.2014 12:28:00

Hallo,
hänge mal wieder mit einem Makro, leider versteh ich das Problem nicht:
Habe ein Makro das in einer Excel problemfrei funktioniert und in einer anderen wird die Fehlermeldung "Typen unverträglich" ausgegeben (Code unten).
Habe den Code unten eingefügt und die Zeile die beim Debuggen gelb angezeigt wird unten fett markiert.
Aufbau und Beschriftung der beiden Excelbereiche ist analog. Mit Format übertragen habe ich hoffentlich erfolgreich versucht, auch die Formatierungen analog zu halten.
Da ich mich mit Makros nicht auskenne wäre die Bitte, ob sich das jemand anschauen kann.
Bei Bedarf lade ich die Beispielexcel hoch.
Danke vorab und schöne Grüsse
Daniel

Sub A_Liste_Schritt_1_Keywords_Thematiken_zusammenbringen()
  Dim objThema As Object, objThemaID As Object
  Dim rngC As Range
  Dim arr, arrKeys
  Dim i As Long, j As Long
  Set objThema = CreateObject("Scripting.Dictionary")
  Set objThemaID = CreateObject("Scripting.Dictionary")
  For Each rngC In Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp))
    objThema(rngC.Value) = 0
    objThemaID(rngC.Value & "_" & rngC.Offset(, 1).Value) = 0
  Next
  arr = Cells(3, 1).CurrentRegion
  arrKeys = objThema.keys
  ReDim Preserve arr(1 To UBound(arr), 1 To objThema.Count + 4)
  For i = 0 To UBound(arrKeys)
    arr(1, i + 5) = arrKeys(i)
  Next
  For i = 2 To UBound(arr)
    For j = 5 To UBound(arr, 2)
      If objThemaID.exists(arr(1, j) & "_" & arr(i, 1)) Then
        arr(i, j) = "x"
      End If
    Next
  Next
  Cells(3, 13).Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub

  

Betrifft: Beispieldatei wo der Fehler auftaucht? von: Tino
Geschrieben am: 25.10.2014 12:44:22

Hallo,
eine Beispieldatei wo der Fehler auftaucht wäre nützlich, sonst ist es nur Rätselraten!

Gruß Tino


  

Betrifft: AW: Beispieldatei wo der Fehler auftaucht? von: D. Skinner
Geschrieben am: 25.10.2014 12:50:47

Hier die Beispieldatei, verkürzt auf 50 Zeilen (Original hat bis zu 10.000 Zeilen). In der Beispieldatei habe ich es getestet und der Fehler tritt wie beschrieben darin auf.
Merci schonmal vorab für eure / deine Zeit, VG, Stefan

https://www.herber.de/bbs/user/93362.xlsx


  

Betrifft: AW: Beispieldatei wo der Fehler auftaucht? von: D. Skinner
Geschrieben am: 25.10.2014 12:50:58

Hier die Beispieldatei, verkürzt auf 50 Zeilen (Original hat bis zu 10.000 Zeilen). In der Beispieldatei habe ich es getestet und der Fehler tritt wie beschrieben darin auf.
Merci schonmal vorab für eure / deine Zeit, VG, Stefan

https://www.herber.de/bbs/user/93362.xlsx


  

Betrifft: AW: Beispieldatei wo der Fehler auftaucht? von: Tino
Geschrieben am: 25.10.2014 13:00:22

Hallo,
liegt daran, weil in der Zelle ein Fehler steht.
Versuch es so und wandle den Fehler in einen Text um.

objThemaID(CStr(rngC.Value) & "_" & CStr(rngC.Offset(, 1).Value)) = 0
Gruß Tino


  

Betrifft: AW: Beispieldatei wo der Fehler auftaucht? von: D. Skinner
Geschrieben am: 25.10.2014 13:06:29

Bis hierhin gut, konnte es aber noch nicht testen.
Jetzt zeigt er für die zweite fett markierte Zeile denselben "Typen unverträglich" Fehler an - siehe unten.
Ferner die Frage, was du mit "wandle den Fehler in einen Text um" meinst?
Merci Tino für deine Zeit :)
VG, Daniel

Sub A_Liste_Schritt_1_Keywords_Thematiken_zusammenbringen()
  Dim objThema As Object, objThemaID As Object
  Dim rngC As Range
  Dim arr, arrKeys
  Dim i As Long, j As Long
  Set objThema = CreateObject("Scripting.Dictionary")
  Set objThemaID = CreateObject("Scripting.Dictionary")
  For Each rngC In Range(Cells(4, 8), Cells(Rows.Count, 8).End(xlUp))
    objThema(rngC.Value) = 0
    objThemaID(CStr(rngC.Value) & "_" & CStr(rngC.Offset(, 1).Value)) = 0
  Next
  arr = Cells(3, 1).CurrentRegion
  arrKeys = objThema.keys
  ReDim Preserve arr(1 To UBound(arr), 1 To objThema.Count + 4)
  For i = 0 To UBound(arrKeys)
    arr(1, i + 5) = arrKeys(i)
  Next
  For i = 2 To UBound(arr)
    For j = 5 To UBound(arr, 2)
      If objThemaID.exists(arr(1, j) & "_" & arr(i, 1)) Then
        arr(i, j) = "x"
      End If
    Next
  Next
  Cells(3, 13).Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub



  

Betrifft: AW: Beispieldatei wo der Fehler auftaucht? von: Tino
Geschrieben am: 25.10.2014 13:27:46

Hallo,
ich meine wenn nicht ausgeschlossen werden kann das in den Zellen ein Fehlerwert steht
musst du diesen umwandeln in einen Text.

aus
rngC.Value
wird
cstr(rngC.Value)

oder aus
rngC.Value
wird
rngC.Text


Gruß Tino


  

Betrifft: AW: Beispieldatei wo der Fehler auftaucht? von: D. Skinner
Geschrieben am: 25.10.2014 13:35:51

Ok Tino, verstanden. Ich habe in der Quelle dafür gesorgt, dass keine Fehlerwerte auftauchen, dann funktioniert es. Super, Danke Dir vielmals für deine Unterstützung.
Netten Samstag noch.
VG, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Makro Fehlermeldung - Typen unverträglich"