Realtiver Zellbereich in Makro
24.07.2015 14:48:38
Huffi
ich habe folgende makro im Internet gefunden:
Sub Zeilen_einfügen_Aufmass()
Dim strBer
Dim myCell As Range
Dim checkCell As Boolean
checkCell = True
Select Case checkCell
Case Not Intersect(ActiveCell, Range("Bereich1")) Is Nothing: strBer = "Bereich1"
Case Not Intersect(ActiveCell, Range("Bereich2")) Is Nothing: strBer = "Bereich2"
Case Else: Exit Sub
End Select
ActiveSheet.Unprotect "Probe"
With ActiveCell.EntireRow
If Range(strBer).Rows.Count > 1 Then
.Copy
.Insert
Else
'MsgBox "Sie versuchen die letzte Zeile des bearbeitbaren Bereichs zu löschen!" & _
_
vbCrLf & vbCrLf & "Der Vorgang wird abgebrochen!", vbExclamation + vbOKOnly
GoTo Abbruch
End If
End With
Abbruch:
ActiveSheet.Protect "Probe"
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Die Makros werden über Schaltflächen auf dem Blatt ausgeführt (Zeilen einfügen bzw. ausgewählte Zeile löschen)
Folgendes Problem hat sich ergeben.
Ich habe den Bereich1 und Bereich 2 definiert. Bereich1 geht von $B$31:$F$38 und wird absolut gesetzt.
Sobald ich eine Zeile über das makro einfüge, wird der Bereich um eine Zeile nach unten versetzt $B$32:$F$39.
Will ich nun die Zeile 31 löschen, befindet sie sich aus dem definierten Bereich und ich kann sie nicht löschen.
Will ich dann eine neue Zeile nach Zeile 31 einfügen, kann ich es auch nicht machen, weil sie nicht mehr im Bereich1 einhalten ist.
Wie muss ich den Bereich definieren, dass er sich automatisch vergößert (beim Einfügen von Zeilen) bzw. verekleiner, wenn ich eine Zeile lösche?
Habe versucht den Bereich so zu definieren: $B$31:$F38
Ergebnis: Excel hat mir sowohl Bereich1 als auch Bereich2 ($B$41:$F$46) zusammengefasst.
Ich hoffe, dass ich mich richtig ausgedrückt habe.
Danke für die Hilfe
Huffi
Das Beispiel liegt bei.
https://www.herber.de/bbs/user/99057.xls