Sheet-Wechsel

Bild

Betrifft: Sheet-Wechsel
von: Larissa Apfel
Geschrieben am: 12.05.2015 10:51:45

Ich habe folgendes Problem mit dem Wechseln von Mappen innerhalb eines Workbooks:

Sub Copy()
Dim Zeile As Long
Set Ziel = ThisWorkbook
ZeileMax = Ziel.Worksheets(1).UsedRange.Rows.Count
n = 2
For Zeile = 2 To ZeileMax
    If Ziel.Worksheets(1).Cells(Zeile, 3).Value Like "S-*" Then
        Ziel.Worksheets(1).Range("A" & Zeile & ":H" & Zeile).Select
        Selection.Copy
        Ziel.Worksheets(3).Range("A" & n).Select
        ActiveSheet.Paste
        n = n + 1
    End If
Next
End Sub

Laufzeitfehler 1004; Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Ich verstehe nicht, wieso der Wechsel nicht klappt. Ich markiere in Sheet1 die Zeilen und möchte sie in Zeile 3 kopieren.
Wo ist mein Denkfehler?

Bild

Betrifft: AW: Sheet-Wechsel
von: Hajo_Zi
Geschrieben am: 12.05.2015 10:54:28
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de

Sub Copy()
Dim Zeile As Long
Set Ziel = ThisWorkbook
ZeileMax = Ziel.Worksheets(1).UsedRange.Rows.Count
n = 2
For Zeile = 2 To ZeileMax
    If Ziel.Worksheets(1).Cells(Zeile, 3).Value Like "S-*" Then
        Ziel.Worksheets(1).Range("A" & Zeile & ":H" & Zeile).Copy Ziel.Worksheets(3).Range("A" & _
 n)
        n = n + 1
    End If
Next
End Sub


Bild

Betrifft: AW: Sheet-Wechsel
von: Larissa Apfel
Geschrieben am: 12.05.2015 11:16:04
Vielen Dank!

Bild

Betrifft: AW: Sheet-Wechsel
von: Rudi Maintaire
Geschrieben am: 12.05.2015 11:06:26
Hallo,

Sub Kopieren()
  Dim Zeile As Long, n As Long, ZeileMax As Long, Ziel As Workbook
  Application.ScreenUpdating = False
  Set Ziel = ThisWorkbook
  n = 2
  With Ziel.Worksheets(1)
    ZeileMax = .UsedRange.Rows.Count
    For Zeile = 2 To ZeileMax
      If .Cells(Zeile, 3).Value Like "S-*" Then
        .Cells(Zeile, 1).Resize(, 8).Copy Ziel.Worksheets(3).Cells(n, 1)
        n = n + 1
      End If
    Next
  End With
End Sub
Verwende keine VBA-Schlüsselwörter (hier: Copy) als Prozedurnamen, Variablen etc.!
Gruß
Rudi

Bild

Betrifft: AW: Sheet-Wechsel
von: Daniel
Geschrieben am: 12.05.2015 12:21:54
Hi
der .Select-Befehl kann für Zellen immer nur auf dem aktiven Blatt ausgeführt werden.
du müsstest also erst das Blatt und dann auf dem aktiven Blatt den Zellbereich selektieren


Ziel.Activate
ActiveWorkbook.Worksheets(1).Select
ActiveSheet.Range("A" & Zeile & ":H" & Zeile).Select

direkt funktioniert es mit
Application.Goto Ziel.Worksheets(1).Range("A" & Zeile & ":H" & Zeile)
dass das Selektieren in den meisten Fällen nicht notwendig ist, wurde dir ja schonn erklärt.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Letzte Spalte eines markierten Bereichs ausgeben"