Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige