Ich steh voll auf dem schlauch Ich habe hier ein Makro und es kommt immer die fehlermeldung auerhalb des gültigen bereichs
Was heist dass eigendlich genau welcher fehler liegt dann vor?
sheets("folgeseiten.xls").Copy After:=Worksheets(Sheets.Count)
sheets("folgeseiten.xls").Copy After:=Worksheets(Sheets.Count)
hast Du ein BLATT mit dem Namen "folgeseiten.xls"? Was möchtest Du erreichen?
Gruß
Peter
Set NewSheet = Sheets.Add(Type:="Folgeseiten.xls")
NewSheet.Move After:=Sheets(Sheets.Count)
welche Rolle spielt denn der Zwischenspeicher in VBA? Überprüfe erst die Bedingung, nach der das Blatt eingefügt werden muss und erst nach dem Einfügen des Blattes die Werte in das neue Blatt schreiben.
Gruß
Peter
Aber es zeigt die fehlermeldung "Die Pastespecial-methode des range-objektes kann nicht ausgeführt werden"
Die fehlermeldung bezieht sich auf die 8 zeile von unten da ich beim einfügen des neuen Blattes den zwischenspeicher lösche und
der zufor makierte bereich der in das neue Arbeitsblatt eingefügt werden soll ist weg.
Also um klar zu machen was ich eigendlich will.Ich habe eine rechnungsvorlage wo ich mittels einer Artikkelliste werte einfügen möchte. Die sollen eingefügt werden indem ich die werte Makiere und auf das unten stehende Makro klicke. Dabei soll sich, wenn die erste Seite der rechnung voll geschrieben ist ein neues Blatt einfügen (folgeseiten.xls) und der makierte bereich auf dem neuem Blatt einfügen und da liegt das Problem.
Oder sollte ich das ganz anders anfassen über jeden Vorschlag bin ich dankbar.
Sub AutoForm1_BeiKlick()
Dim i As Integer
If Selection Is Nothing Then
Exit Sub
Else
Selection.Copy
End If
With Worksheets("1")
For i = 23 To 50
If .Cells(i, 4).Text = "" And .Cells(i + 1, 4).Text = "" Then
.Cells(i + 1, 3).PasteSpecial Paste:=xlValues
Exit Sub
End If
Next i
Worksheets("1").Activate
Worksheets("1").Shapes("autoform 81").Delete
Worksheets("1").Shapes("autoform 82").Delete
Range("h51").Formula = "=Sum(H19:H50)"
Range("H51").Borders.ColorIndex = 0
Range("I51").Borders.ColorIndex = 0
Range("f51").Formula = "Übertrag:"
With Selection
.Font.FontStyle = "fett"
.HorizontalAlignment = xlRight
End With
ActiveSheet.Name = Range("i19").Value
Set NewSheet = Sheets.Add(Type:="Folgeseiten.xls")
NewSheet.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Range("h5").Value = Sheets(Sheets.Count - 1).Range("i19").Value + 1
Range("H9").FormulaR1C1 = "=" & Sheets(Sheets.Count - 1).Name & "!R[42]C"
With Worksheets("2")
For i = 9 To 50
If .Cells(i, 4).Text = "" And .Cells(i + 1, 4).Text = "" Then
.Cells(i + 1, 3).PasteSpecial
ActiveSheet.Name = Range("h5").Value
Exit Sub
End If
Next i
End With
End With
End Sub
Die fehlermeldung bezieht sich auf die 8 zeile von unten da ich beim einfügen des neuen Blattes den zwischenspeicher lösche und
der zufor makierte bereich der in das neue Arbeitsblatt eingefügt werden soll ist weg.
Also um klar zu machen was ich eigendlich will.Ich habe eine rechnungsvorlage wo ich mittels einer Artikkelliste werte einfügen möchte. Die sollen eingefügt werden indem ich die werte Makiere und auf das unten stehende Makro klicke. Dabei soll sich, wenn die erste Seite der rechnung voll geschrieben ist ein neues Blatt einfügen (folgeseiten.xls) und der makierte bereich auf dem neuem Blatt einfügen und da liegt das Problem.
Oder sollte ich das ganz anders anfassen über jeden Vorschlag bin ich dankbar.
Sub AutoForm1_BeiKlick()
Dim i As Integer
If Selection Is Nothing Then
Exit Sub
Else
Selection.Copy
End If
With Worksheets("1")
For i = 23 To 50
If .Cells(i, 4).Text = "" And .Cells(i + 1, 4).Text = "" Then
.Cells(i + 1, 3).PasteSpecial Paste:=xlValues
Exit Sub
End If
Next i
Worksheets("1").Activate
Worksheets("1").Shapes("autoform 81").Delete
Worksheets("1").Shapes("autoform 82").Delete
Range("h51").Formula = "=Sum(H19:H50)"
Range("H51").Borders.ColorIndex = 0
Range("I51").Borders.ColorIndex = 0
Range("f51").Formula = "Übertrag:"
With Selection
.Font.FontStyle = "fett"
.HorizontalAlignment = xlRight
End With
ActiveSheet.Name = Range("i19").Value
Set NewSheet = Sheets.Add(Type:="Folgeseiten.xls")
NewSheet.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Range("h5").Value = Sheets(Sheets.Count - 1).Range("i19").Value + 1
Range("H9").FormulaR1C1 = "=" & Sheets(Sheets.Count - 1).Name & "!R[42]C"
With Worksheets("2")
For i = 9 To 50
If .Cells(i, 4).Text = "" And .Cells(i + 1, 4).Text = "" Then
.Cells(i + 1, 3).PasteSpecial
ActiveSheet.Name = Range("h5").Value
Exit Sub
End If
Next i
End With
End With
End Sub
irgendwie kommt mir die Fragestellung bekannt vor, hatten wir die nicht schon? PasteSpecial möchte schon gerne wissen, was denn gePastet werden soll. Das Einfügen eines neuen Blattes würde ich - wie schon erwähnt - von der Anzahl der zu übertragenden Datensätze abhängig machen, und das einzufügende Blatt würde ich in der Mappe selbst zur Verfügung stellen, ggf. ausgeblendet.
Ansonsten hab ich wenig neue Ideen - bin auch zu faul, alle schon geposteten Antworten jetzt nachzulesen.
Gruß
Peter