Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler: Objekt erforderlich?

Fehler: Objekt erforderlich?
28.01.2014 16:35:40
TooX
Hallo Zusammen,
folgendes Problem: Beim Ausführen des Codes, bleibt er immer an der Stelle "With TtbC.Font" hängen und meldet: "Objekt erforderlich", leider hab ich keine Ahnung wo hier das Problem liegen könnte.

Sub Bla()
Dim iEnde1 As Integer
iEnde1 = Application.WorksheetFunction.CountIf(Range("A1:A9999"), "X")
For i = 1 To iEnde1
Dim ProgressMarker06 As Range
Set ProgressMarker06 = Sheets("Testplan").Range("A1:A9999").Find("X")
If ProgressMarker06 Is Nothing Then
NoXInfo.Show
Exit Sub
Else
ProgressMarker06.Select
End If
CI = ProgressMarker06.Offset(0, 5)
Pos1 = InStr(CI, "'")
Pos2 = InStr(Pos1 + 1, CI, "'")
TtbC = Mid(CI, Pos1 + 1, (Pos2 - 1) - Pos1)
With TtbC.Font
.ThemeColor = xlThemeColorAccent5
End With
Next i
End Sub

Mit freundlichen Grüßen
TooX

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler: Objekt erforderlich?
28.01.2014 16:39:14
Hajo_Zi
dort wird ein Objekt verlangt, auf der Variablen steht aber ein String.

AW: Fehler: Objekt erforderlich?
28.01.2014 16:41:00
TooX
Ok, danke für die schnelle Antwort.
Gibt es denn eine Möglichkeit dieses Problem zu lösen, sodass es funktioniert?

AW: Fehler: Objekt erforderlich?
28.01.2014 17:04:51
Rudi
Hallo,
was steht denn in TtbC? Ein Zellenname?
With Range(TtbC).Font
Gruß
Rudi

AW: Fehler: Objekt erforderlich?
28.01.2014 17:26:22
TooX
TtbC ist ein Text der in dieser Zelle in ' steht.
Wenn also in einer Zelle "Bla bla 'Blub' bla" steht, dann ist TtbC = Blub.

String - Objekt - With - Unklarheiten
28.01.2014 20:18:32
Erich
Hi Vorname,
aus deinem Code ist kaum herauszulesen, wessen ThemeColor = xlThemeColorAccent5 gesetzt werden soll.
TtbC ist nur eine Stringvariable - das kann es nicht sein, eine String-Variable hat keine ThemeColor.
Soll eine bestimmte einzelne Zelle xlThemeColorAccent5 erhalten? Oder ein anderer Bereich?
Was hat das mit dem String TtbC zu tun?
Vor deiner Antwort auf diese Fragen lässt sich die falsche Zeile am Ende kaum
durch eine sinnvolle ersetzen:

Option Explicit                        ' IMMER zu empfehlen!
Sub Bla()
Dim iEnde1 As Long ' nicht: Integer
Dim ProgressMarker06 As Range
Dim i As Long
Dim CI As String
Dim Pos1 As Long, Pos2 As Long
Dim TtbC As String
With Sheets("Testplan")
iEnde1 = Application.WorksheetFunction.CountIf(.Range("A1:A9999"), "X")
For i = 1 To iEnde1
Set ProgressMarker06 = .Range("A1:A9999").Find("X")
If ProgressMarker06 Is Nothing Then
NoXInfo.Show                              ' UF-Aufruf
Exit Sub
Else
ProgressMarker06.Select
End If
CI = ProgressMarker06.Offset(0, 5)
Pos1 = InStr(CI, "'")
Pos2 = InStr(Pos1 + 1, CI, "'")
TtbC = Mid(CI, Pos1 + 1, Pos2 - 1 - Pos1)
'     TtbC.Font.ThemeColor = xlThemeColorAccent5   ' falsch
Next i
End With
End Sub
Nur so:
Wozu soll an der Stelle

With TtbC.Font
.ThemeColor = xlThemeColorAccent5
End With
eigentlich das With gut sein? Da wird doch kein Objekt mehrfach angesprochen.
Hast du mal in die VBA-Hilfe zu With geschaut?
Wenn es denn sinnvoll wäre, könnte man da einfach
TtbC.Font.ThemeColor = xlThemeColorAccent5
schreiben. Aber das ist eben nicht sinnvoll.
Oben ließe sich With dagegen sinnvoll einsetzen:
CountIf(Range("A1:A9999"), ...) bestimmst du einfach auf A1:A9999 - egal, auf welchem Blatt,
also auf dem gerade aktiven.
Beim Find mit
Sheets("Testplan").Range("A1:A9999").Find("X")
gibst du dann das Blatt an.
Ich geh mal davon aus, dass es hier immer um Sheets("Testplan") gehen soll.
Deshalb habe ich im Code dafür With verwendet.
Nichts geändert habe ich an der Suchlogik. Dein Code wird iEnde1 mal immer wieder dasselbe X finden -
immer das erste, nie die darauf folgenden.
Mit Range("A1:A9999").Find("X") suchst du immer wieder von A1 aus nach unten.
Schau dir mal in der VBA-Hilfe zu Find das Beispiel an. Da wird ganz gut gezeigt, wie man mit FindNext arbeitet.
(Möglich wäre natürlich, dass "X" von NoXInfo aus gelöscht wird - dann reicht Find evtl. aus.)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: String - Objekt - With - Unklarheiten
29.01.2014 11:23:15
TooX
Hallo Erich,
vielen Dank für diene Antwort, das mit dem With habe Ich aus einem Code Fetzen von einem anderen Modul kopiert, ich dachte das würde das Problem eventuell lösen. Aber prinzipiell sollte Ich eventuell erklären was es mit diesem Code auf sich hat;
Im Sheet "Testplan" stehen mehrere Reihen untereinander und jeweils in der 5 Spalte dieser Reihen steht ein Satz, der User soll jede Zelle in der ein Wort steht das er markieren möchte mit einem "X" markieren, indem er ein "X" 5 Spalten vor dieser Zelle einsetzt. Der Code soll jedes "X" finden und dessen Offset, also die Zelle in der das Wort steht, dass eingefärbt werden soll, selektieren. Wenn das Offset selektiert ist soll er den Text durchsuchen nach dem Wort das in "'" steht. Das funktioniert soweit auch ganz gut. Das Wort das er dadurch findet, soll er einfärben, wenn er das gemacht hat, soll er das "X" aus der aktiven Zelle löschen und automatisch zum Nächsten "X" springen und dort dieselbe Prozedur durchlaufen.

Anzeige
AW: String - Objekt - With - Unklarheiten
29.01.2014 12:12:37
Rudi
Hallo,
dann sollte das so gehen:
Sub Bla()
Dim ProgressMarker06 As Range, CI As String
Dim strFirst As String, Pos1 As Integer, Pos2 As Integer
With Sheets("Testplan").Columns(1)
Set ProgressMarker06 = .Find(what:="x", lookat:=xlWhole)
If Not ProgressMarker06 Is Nothing Then
strFirst = ProgressMarker06.Address
Do
CI = ProgressMarker06.Offset(, 5)
Pos1 = InStr(CI, "'")
Pos2 = InStr(Pos1 + 1, CI, "'")
With ProgressMarker06.Offset(, 5).Characters(Pos1 + 1, Pos2 - Pos1 - 1)
.Font.ThemeColor = xlThemeColorAccent5
End With
Set ProgressMarker06 = .FindNext(ProgressMarker06)
Loop While Not ProgressMarker06 Is Nothing And ProgressMarker06.Address  strFirst
End If
End With
End Sub

Gruß
Rudi

Anzeige
AW: String - Objekt - With - Unklarheiten
29.01.2014 13:53:52
TooX
Vielen Dank!
Es funktioniert prima.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige