Ich habe ein Makro in einer Excel2007-Datei, das auf eine Excel2000-Datei
zugriff, und tadellos funktionierte.
Es zählt die Zellen mit einer bestimmten Farbe UND dem Text "u"
Teil daraus:
For i = 5 To 30
For Each zelle In Range(Cells(i, 50), Cells(i, 100))
If zelle.Interior.ColorIndex = 40 And zelle.Value = "u" Then
anzahl_u = anzahl_u + 1
End If
Next i
Jetzt wurde díe Excel2000-Datei als xlsx abgespeichert, und ich erhalte
folgende Fehlermeldung:
Laufzeitfehler "13"
Typen unverträglich
Bei Klick auf "debuggen" wird die Zeile mit Colorindex markiert.
Die Farben in Excel2007 haben andere Nummern, aber das dürfte ja nicht die
Ursache für den Fehler sein.
Jemand ne Idee?
Gruß
Lothar
> Ich habe ein Makro in einer Excel2007-Datei [...]
Stelle die Frage bitte nochmals in dieser Gruppe:
de.comp.office-pakete.ms-office.excel
--
Gruß Herrand
von microsoft sehe ich nur
de.comp.office-pakete.ms-office
Gruß
Lothar
"Herrand Petrowitsch" <her...@networld.at> schrieb im Newsbeitrag
news:8d080j...@mid.individual.net...
Frag doch mal bei deinem Provider nach oder lass im Newsreader einfach
die Liste der Newsgroup aktualisieren.
Servus
Winfried
--
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
GPO's: http://www.gruppenrichtlinien.de
Community Forums NNTP Bridge: http://communitybridge.codeplex.com/
Pech
"Winfried Sonntag" <Winfried...@gmx.de> schrieb im Newsbeitrag
news:p6rczg9q...@ID-163725.user.individual.de...
Dann reklamiere beim Provider.
Möglicherweise funktioniert eine Formel in dem durchsuchten Bereich
nicht mehr und liefert einen Fehler. Dann liefert der Vergleich des
Zellinhalt mit "u" den Laufzeitfehler 13 (Type mismatch).
Falls es daran liegen sollte, kannst Du zunächst mit IsError() prüfen,
ob die Zelle einen Fehler liefert und die weiteren Prüfungen nur
ausführen, wenn sie fehlerfrei ist. Etwa so:
Peter
Sub ZaehleFarben()
Dim i As Integer
Dim anzahl_u As Long
Dim zelle As Range
For i = 5 To 30
For Each zelle In Range(Cells(i, 50), Cells(i, 100))
If Not IsError(zelle) Then
If zelle.Interior.ColorIndex = 40 And zelle.Value = "u" Then
anzahl_u = anzahl_u + 1
End If
End If
Next
Next i
MsgBox anzahl_u
End Sub
Hab ein bisschen in der Excel-Vba-Hilfe unter "For each"-Beispielen
nachgesehen.
Es muss zelle.text ="u" heissen, statt zelle.value="u"!