Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
472to476
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
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anwendungs oder objektorientierter Fehler :(

Anwendungs oder objektorientierter Fehler :(
20.08.2004 17:47:00
ChrisNa
Hallo liebes xl-forum!
Ich bekomme einen Anwendungs oder objektorientierten Fehler bei meinen folgenden code.

<pre>
Private Sub skp()
'Variablen
Dim Jahreingabe As Integer
Dim zähler As Long
Dim kw As Integer
Jahreseingabe = 2004
ThisWorkbook.Worksheets(2).Cells.Delete
ThisWorkbook.Worksheets(2).Cells(1, 2).FormulaR1C1 = "=DATE(" & Jahreseingabe & ",1,1)"
zähler = 2
kw = 1
While Jahreseingabe + 1 > Year(ThisWorkbook.Worksheets(2).Cells(zähler - 1, 2).Value)

ThisWorkbook.Worksheets(2).Cells(zähler, 2).FormulaR1C1 = "=SUM(R[-1]C+1)"
If Weekday(ThisWorkbook.Worksheets(2).Cells(zähler, 2).Value) = 2 Then
If zähler > 9 Then

ThisWorkbook.Worksheets(2).Range(Cells(zähler, 1), Cells(zähler - 7, 1)).Select
With ThisWorkbook.Worksheets(2).Range(Cells(zähler, 1), Cells(zähler - 7, 1)).Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
ThisWorkbook.Worksheets(2).Range(Cells(zähler, 1), Cells(zähler - 7, 1)).Select
Selection.FormulaR1C1 = "KW " & kw & ""
With ActiveCell.Characters(Start:=1, Length:=4).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
kw = kw + 1
End If

If zähler < 9 Then

#####################in dieser zeile bekomme ich den a oder o Fehler!###
ThisWorkbook.Worksheets(2).Range("A" & zähler - zähler & ":A" & zähler - 1 & "").Select
######################################
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
ThisWorkbook.Worksheets(2).Range(Cells(zähler - zähler + 2, 1), Cells(zähler - zähler + 2, 1)).Select
Selection.FormulaR1C1 = "KW " & kw & ""
With ActiveCell.Characters(Start:=1, Length:=4).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
kw = kw + 1
End If
End If

If Day(ThisWorkbook.Worksheets(2).Cells(zähler, 2).Value) = 2 Then
If zähler > 3 Then
ThisWorkbook.Worksheets(2).Cells(zähler - 1, 2).Select
'Selection.Insert Shift:=xlDown
Selection.AddItem = xlDown
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
zähler = zähler + 1
End If
End If
zähler = zähler + 1
Wend
ThisWorkbook.Worksheets(2).Cells(zähler - 1, 2).Delete
ThisWorkbook.Worksheets(2).Cells(zähler - 1, 2).Select
Selection.Insert Shift:=xlDown
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With ThisWorkbook.Worksheets(2).Columns(2)
.NumberFormat = "ddd dd/mm/yyyy"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.AutoFit
End With
ThisWorkbook.Worksheets(2).Columns(2).Copy
With ThisWorkbook.Worksheets(2).Columns(2)
.PasteSpecial Paste:=xlValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
End With
Application.CutCopyMode = False
End Sub</pre>

Ich finde einfach nicht heraus woran es liegt.
Kann mir da bitte wer weiter helfen?
Danke und ein schönes We im vorraus!
gruß
ChrisNa
ps. es ist noch nicht fertig nur ein teil - falls wer den sinn des ganzen sucht :)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anwendungs oder objektorientierter Fehler :(
20.08.2004 17:57:08
ChrisL
Hi Chris
ThisWorkbook.Worksheets(2).Range("A" & zähler - zähler & ":A" & zähler - 1 & "").Select
Variable zähler ist irgend eine Zahl z.B. 8.
8 - 8 = 0
...und eine Zelle A0 gibt es nicht.
Find gut, dass du die Idee mit dem With-Rahmen aufgenommen hast, nur scheint der ganze Code auf die Bedingung...
ThisWorkbook.Worksheets(2)
... zuzutrefen, deshalb würde ich es sauber lösen und am Anfang und Schluss vom Code den Rahmen setzen und im Code selber konsequent darauf verzichten...

Sub t()
With ThisWorkbook.Worksheets(2)
' dein Makro
End with
End Sub

Zudem schau mal hier...
https://www.herber.de/xlfaq/xlbasics/main_sel.htm
Gruss
Chris
Anzeige
AW: Anwendungs oder objektorientierter Fehler :(
20.08.2004 17:57:35
harry
hi,
ungetestet denke ich mal, dass zähler-zähler 0 ergibt. wenn du 1 möchtest, musst du zähler + 1 - zähler nehmen.
liebe grüße,
harry
0 + 1 gibt immer 1 ;-) o.T.
20.08.2004 18:10:17
ChrisL
Gruss
Chris
AW: das wüßte ich aber ;-) in der Politik auch?
20.08.2004 18:46:19
andre
Anwendungs oder objektorientierter Fehler :(
20.08.2004 18:55:28
ChrisNa
Hallo ChrisL, Hallo harry,
habe an besagter Stelle +1 eingefügt.
Range("A" & zähler + 1 - zähler & ":A" & zähler - 1 & "").Select
Nun würde der zu selectierende Zellebereich zwischen A1 und Ax liegen.
trotz alledem tritt der Anwendungs und objektorientierte Fehler wieder auf.
Kann es daran liegen das ich zwischen den Spalten springe?
In Spalte B:B baue ich das Jahr auf und in A:A will ich die Wochen zu KW zusammen fassen.
das ich A0 nicht selectieren konnte ist nun logisch (auch wenn ihrs mir erst zeigen mussstet :) )nun bin ich wieder ratlos.
Ich denke ich werd jetzt abschalten und meinen Geist bei kickern entwirren.
Danke
gruß ChrisNa
Anzeige
AW: Anwendungs oder objektorientierter Fehler :(
20.08.2004 22:25:41
harry
bei range treten öfters probleme auf, versuch
activesheet.range(cells(1,zähler + 1 - zähler), cells(1,zähler - 1)).select
oder
activesheet.range(activesheet.cells(1,zähler + 1 - zähler), activesheet.cells(1,zähler - 1)).select
oder
dim myrange as range
set myrange = activesheet.range(activesheet.cells(1,zähler + 1 - zähler), activesheet.cells(1,zähler - 1))
myrange.select
hoffe, eine version klappt. dreh jetzt ab und fliege nach kreta :-))))))
AW: Anwendungs oder objektorientierter Fehler :(
21.08.2004 00:05:22
ChrisL
Hi Chris
ergibt keinen Sinn...
for zähler = 1 to 10
msgbox zähler + 1 - zähler
next
Gruss
Chris
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige