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

Forumthread: Makros nur in Grenzen ausführen lassen

Makros nur in Grenzen ausführen lassen
19.03.2015 07:45:04
Matthias
Hallo,
ich kann über nachfolgenden Code einen Datensatz einfügen in einen Blatt. Abgelegt ist der Datensatz im Register Datensatz.
Sub ZeileEinfügen()
Dim ws As Worksheet, wsV As Worksheet, z%
Set ws = ActiveSheet
Set wsV = ThisWorkbook.Worksheets("Datensatz")
Application.EnableEvents = False
With Worksheets("Aufstellung Brandschutzklappen")
.Unprotect Password:="sperl"
Selection.EntireRow.Insert Shift:=xlDown
z = ActiveCell.Row
wsV.Rows("5:5").Copy ws.Range("A" & z)
Worksheets("Aufstellung Brandschutzklappen").Protect Password:="sperl"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
End With
Ebenso habe ich die Möglichkeit den Datensatz wieder zu löschen.

Sub ZeileLöschen()
Dim rngBereich As Range
Set rngBereich = Range("A16:EU999") 'Hier den Bereich angeben !
If Intersect(ActiveCell, rngBereich) Is Nothing Then
Else
Worksheets("Aufstellung Brandschutzklappen").Unprotect Password:="sperl"
Selection.EntireRow.Delete
Worksheets("Aufstellung Brandschutzklappen").Protect Password:="sperl"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
End If
End Sub
Leider ist es so, dass nicht nur ich diese Arbeitsmappe nutzen werde.
Deshalb möchte ich um Fehler zu vermeiden, den Bereich in dem die Makro ausgeführt werden können vorgeben.
Das Ganze soll soll zwischen Zeile 5 und 6 stattfinden. Hier darf eingefügt und gelösch werden.
Wird nun eine Zeile eingefügt erhöht sich der Gültigkeitsbereich von Zeile 5 bis auf 7.
Wird eine Zeile gelöscht geht es wieder zurück auf Zeile 5 und 6.
Ebenso darf es nicht möglich sein, die Zeile 5 und 6 zu löschen wenn nur noch die Zeile 5 und 6 vorhanden ist.
Ich hoffe ihr versteht was ich will. Ich möchte praktisch Grenzzeilen
definieren innerhalb dieser die Makros ausgeführt werden können.
Ich habe selber schon rumgebastelt (Siehe die Zeile löschen Funktion),
jedoch gelingt es mir nicht, die eigentliche Funktion umzusetzen.
Ich hoffe mit kann jemand helfen.
Besten Dank im Voraus.
Gruss

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros nur in Grenzen ausführen lassen
19.03.2015 08:58:08
Nepumuk
Hallo,
definiere in den beiden Grenzzeilen jeweils einen Namen die du im Makro abfragst. Sind sie in den Zeilen 5 und 6 darf nur eingefügt werden.
Gruß
Nepumuk

AW: Makros nur in Grenzen ausführen lassen
19.03.2015 09:04:27
Matthias
hallo,
danke für die Info.
Aber ich bin nicht so tief drin in er Materie.
Wie könnte so was realisiert werden?
Gruss

Anzeige
AW: Makros nur in Grenzen ausführen lassen
19.03.2015 09:27:57
Nepumuk
Hallo,
ein Beispiel:
Public Sub DeleteRow()
    Dim lngRow5 As Long, lngRow6 As Long
    If TypeOf Selection Is Range Then
        
        lngRow5 = ThisWorkbook.Names("Zeile5").RefersToRange.Row
        lngRow6 = ThisWorkbook.Names("Zeile6").RefersToRange.Row
        
        Selection.Cells(1, 1).Select
        
        If Selection.Row > lngRow5 And Selection.Row < lngRow6 Then
            
            With Worksheets("Aufstellung Brandschutzklappen")
                
                .Unprotect Password:="sperl"
                Selection.EntireRow.Delete
                .Protect Password:="sperl"
                
            End With
        Else
            Call MsgBox("Außerhalb des gültigen Bereichs.", vbExclamation, "Hinweis")
        End If
    Else
        Call MsgBox("Bitte eine Zeile auswählen.", vbExclamation, "Hinweis")
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Makros nur in Grenzen ausführen lassen
19.03.2015 09:35:56
Matthias
Hallo
danke für den Code.
Aber irgendwie bringt der bei mir den Fehler 400.
Ist es möglich dies auch auf mein Zeile einfügen Befehl zu übetragen.
Sub ZeileEinfügen()
Dim ws As Worksheet, wsV As Worksheet, z%
Set ws = ActiveSheet
Set wsV = ThisWorkbook.Worksheets("Datensatz")
Application.EnableEvents = False
With Worksheets("Aufstellung Brandschutzklappen")
.Unprotect Password:="sperl"
Selection.EntireRow.Insert Shift:=xlDown
z = ActiveCell.Row
wsV.Rows("5:5").Copy ws.Range("A" & z)
Worksheets("Aufstellung Brandschutzklappen").Protect Password:="sperl"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
End With
End Sub
Ich bin wie gesagt, da noch nicht so weit drin in der Materie.

Anzeige
AW: Makros nur in Grenzen ausführen lassen
20.03.2015 09:23:47
Nepumuk
Hallo,
du musst in Zelle A5 und A6 jeweils einen Namen einfügen. Entweder direkt in das Namensfeld oder über den Reiter Formeln - Namensmanager.
Gruß
Nepumuk

AW: Makros nur in Grenzen ausführen lassen
20.03.2015 09:48:18
matthias
Unbeschreiblich.
Wahnsinn.
Danke.
Bester Tipp Ever.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige