Anzeige
Archiv - Navigation
1120to1124
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
Inhaltsverzeichnis

Vereinfachung

Vereinfachung
Ernst
Guten Abend Forum
Mit dem unten stehenden Code lösche ich per doppelklick 20 Zeilen immer ausgehend von einer bestimmten Zelle G. Kann man den unten stehenden Code vereinfachen?
mfg
Ernst Dunkel

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Doppelklick auf G213, G253, G273, G293, G313, G.... letztes G793
'löscht 20 Zeilen, d.h., z.B. G213 = ab Zeile 213 plus 19 Zeilen dazu
Worksheets("S").Unprotect ("")
If Not Intersect(Target, [G213,G233,G253,G273,G293,G313]) Is Nothing Then
Range(ActiveCell, ActiveCell.Offset(0, -6).Range("20:20")).Delete Shift:=xlUp
'Von der aktiven Celle z.B. G213 sechs Spalten nach links, dann werden 20 Zeilen
'markiert und gelöscht
Cancel = True
End If
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Nachgefragt
29.11.2009 17:16:15
Matthias
Hallo
Zitat
'Von der aktiven Celle z.B. G213 sechs Spalten nach links, dann werden 20 Zeilen
'markiert und gelöscht.
Warum gehst Du denn erst 6 Spalten nach links?
Bist Du sicher das Du Zeilen löschen willst?
Oder meinst Du in diesem Beispiel 20 Zellen in Spalte A ?
Userbild
Gruß Matthias
AW: Nachgefragt
29.11.2009 17:37:19
Ernst
Hallo Matthias
Mit Doppelcklik z.B. auf G213 werden insgesammt 20 Zeilen gelöscht. Der Code funktioniert bestens! Jedoch muss ich jede Zelle im Code angeben z.B. G213, G253 bis G793 (20 iger Schritte) als 30 mal und dies finde ich mühsam.
Anzeige
Versuch
29.11.2009 18:02:52
Matthias
Hallo
probier mal: (bitte an einer Kopie)
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim zeile As Long
For zeile = 213 To 793 Step 20
If Target.Row = zeile Then
Range(ActiveCell, ActiveCell.Offset(0, -6).Range("20:20")).Delete Shift:=xlUp
Exit For
End If
Next
Cancel = True
End Sub


Man Zeilen auch direkt mit .Row ansprechen.
Gruß Matthias
Korrektur ...
29.11.2009 18:15:23
Matthias
Hall
Damit es auch nur in Spalte G passiert.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim zeile As Long
If Target.Column = 7 Then
For zeile = 213 To 793 Step 20
If Target.Row = zeile Then
Rows(Target.Row & ":" & Target.Row + 19).Delete Shift:=xlUp
Exit For
End If
Next
End If
Cancel = True
End Sub
GRuß Matthias
Anzeige
AW: Korrektur ...
29.11.2009 18:22:48
Ernst
Hallo Matthias
Erster Code ist schon richtig. Denn mit -6 bist du in Spalte G!
Nein ! Klick mal auf F213 nimm Bsp.2! kwT
29.11.2009 18:25:48
Matthias
AW: Nein ! Klick mal auf F213 nimm Bsp.2! kwT
29.11.2009 18:31:23
Ernst
Hallo Matthias
Hatte Spalte F geschützt, hast recht.
mfg
Ernst Dunkel
AW: Versuch
29.11.2009 18:17:25
Ernst
Hallo Matthias
Vielen Dank, es funktioniert genau so wie ich es möchte.
Wünsche Dir einen schönen Abend
mfg
Ernst Dunkel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige