Fehlermeldung bei Paste.Special

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Fehlermeldung bei Paste.Special von: Tobias Marx
Geschrieben am: 07.03.2005 14:39:33

Hallo nochmal :)

Nun ein anderes Problem:

Ich habe folgenden Code:

Range("IA1").Select
ActiveCell.FormulaR1C1 = "1"
Selection.Copy
Selection.ClearContents
Application.Columns(sref).EntireColumn.Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlMultiply, SkipBlanks:= _
True, Transpose:=False

Dieser Code markiert eine Spalte und multipliziert die Werte dort mit 1 durch (diese 1 wurde in IA1 eigegeben, kopiert und soll zum multiplizieren verwendet werden). Wenn ich das Makro nun aber ausfuehre, bekomme ich einen Fehler namens "Anwendungs- oder objektorientierter Fehler".
Was ist hier falsch?
Ausserdem moechte ich nicht die ganze Spalte bis 65535 markieren, sondern nur bis zum letzten Datensatz. Any ideas?

Danke im Voraus

Tobias

Bild


Betrifft: AW: Fehlermeldung bei Paste.Special von: Herbert H.
Geschrieben am: 07.03.2005 19:00:53

Hallo Tobias,
ein Ansatz für eine Spalte:



Sub multipl()
Dim lz&
lz = Cells(Rows.Count, 2).End(xlUp).Row
[A1] = 2
[A1].Copy
Range("b1:b" & lz).PasteSpecial Operation:=xlMultiply
[A1].ClearContents
End Sub

     Gruß Herbert


Bild


Betrifft: AW: Fehlermeldung bei Paste.Special von: Tobias Marx
Geschrieben am: 08.03.2005 08:48:45

Hallo Herbert und die anderen,

erstmal danke fuer deine Idee, aber so ganz wills noch nich.
Ich hab den Code folgendermaßen umgeformt:

Private Sub CommandButton1_Click()
  Dim lz&
  lz = Cells(Rows.Count, 2).End(xlUp).Row
  [A1] = 1
  [A1].Copy
  Range(sref & "1:" & sref & lz).PasteSpecial Operation:=xlMultiply
  [A1].ClearContents
End Sub


Wobei sref der Name der Spalte ist, in der ich etwas verarbeiten will; er wird folgendermaßen ausgelesen:

If Not ComboBox1.ListIndex = -1 Then
sref = ComboBox1.ListIndex + 1
End If

Nun geht dein Code zwar so weit, und markiert nach unten hin nur bis zum letzten Datensatz, nach rechts aber geht er bis zum Ende des Bereichs von Excel. Ich moechte aber, dass er dort aufhoert, wo auch rechts der letzte Datensatz steht.

Gruss

Tobias


Bild


Betrifft: AW: Fehlermeldung bei Paste.Special von: Herbert H.
Geschrieben am: 08.03.2005 23:26:11

die Variable "sref" kann ich nicht testen...



Sub multipliz_in_Bereich()
Dim As Byte, ls As Byte, c As Range
Dim lz&, lzB As Byte, ber As Range

Application.ScreenUpdating = False

For i = 1 To 100
  ls = Cells(i, 255).End(xlToLeft).Column
  Cells(i, 256) = ls
Next
  lzB = WorksheetFunction.Max([iv1:iv100])
  lz = Cells(Rows.Count, 2).End(xlUp).Row
  
  [A1] = 2
  [A1].Copy

 Set ber = Range(Cells(1, sref), Cells(lz, lzB))
     ber.PasteSpecial Operation:=xlMultiply
  
For Each In ber
 If c = 0 Then c = ""
Next

With ActiveSheet.[A1]
    .ClearContents
    .Select
End With

Application.ScreenUpdating = True
End Sub

     gruß Herbert


Bild


Betrifft: Danke, hat geklappt (o.T.)! von: Tobias Marx
Geschrieben am: 09.03.2005 09:33:49

Servus!

Vielen lieben Dank, funktioniert perfekt :)


Gruss

Tobias


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehlermeldung bei Paste.Special"