Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen markieren in anderem Arbeitsblatt

Zeilen markieren in anderem Arbeitsblatt
15.09.2006 09:51:07
Tobias
Hallo Zusammen,
Habe folgendes Makro geschrieben, dass in einem weiteren Blatt die Zeile 4 um eine Anzahl an Zeilen erweitern soll. An was kann es liegen wenn das Makro jedes Mal bei Rows("4:4").Select mit Fehler 1004 endet?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Wasserkreise As Integer
Dim AnzahlW As Integer
AnzahlW = Application.WorksheetFunction.Max(Range(Sheets("Pfahlplan").Cells(13, 14), Sheets("Pfahlplan").Cells(65536, 14)))
Sheets("Wasserkreise").[A1] = AnzahlW
'Fügt die Anzahl an Reihen in den Wasserkreisplan ein, die der Anzahl der Wasserkreise entspricht
Sheets("Wasserkreise").Select
Rows("4:4").Select  --> FEHLER!!!
For x = 1 To AnzahlW - 1
Selection.Insert Shift:=xlDown
Next x
Range(Cells(5, 2), Cells(5, 52)).Select
Selection.Copy
Range(Cells(5, 2), Cells((5 + Anzahl - 1), 52)).Select
ActiveSheet.Paste
Range(Cells(4, 2), Cells(5, 2)).Select
Selection.AutoFill Destination:=Range(Cells(13, 2), Cells((13 + Anzahl), 2)), Type:=xlFillDefault
Range(Cells(4, 2), Cells((4 + Anzahl), 2)).Select
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen markieren in anderem Arbeitsblatt
15.09.2006 10:14:38
Rudi
Hallo,
das muss Range("4:4") heißen.
Select und activate sind in 99% aller Fälle überflüssig.
Gruß
Rudi
AW: ohne select und activate
15.09.2006 12:04:57
Klaus
Hallo auch,
ich hab den Code mal etwas entschlackt. Ungetestet, sollte aber funktionieren.
Gruß,
Klaus M.vdT.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Wasserkreise As Integer
Dim AnzahlW As Integer
Dim x As Integer                'immer alles dimensionieren, am besten mit Option Explicit arbeiten
AnzahlW = Application.WorksheetFunction.Max(Range(Sheets("Pfahlplan").Cells(13, 14), Sheets("Pfahlplan").Cells(65536, 14)))
Sheets("Wasserkreise").[A1] = AnzahlW
'Fügt die Anzahl an Reihen in den Wasserkreisplan ein, die der Anzahl der Wasserkreise entspricht
With Sheets("Wasserkreise").Range("4:4")
For x = 1 To AnzahlW - 1
.Insert Shift:=xlDown
Next x
.Range(Cells(5, 2), Cells(5, 52)).Copy .Range(Cells(5, 2), Cells((5 + Anzahl - 1), 52))
'kopiert ohne den lästigen Umweg durch die Zwischenablage
.Range(Cells(4, 2), Cells(5, 2)).Copy .Range(Cells(13, 2), Cells((13 + Anzahl), 2))
'kopieren macht das selbe wie autofill, nur schneller
'.Range(Cells(4, 2), Cells((4 + Anzahl), 2)).Select
'unnötig. Es sei denn du willst diesen Bereich ausdrücklich markiert haben.
End With
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige