1.6k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

ich bitte um eure Hilfe.
Ich habe eine Excelliste mit Daten (Datenliste).
Ich suche einen Code, welchen ich in ein Makro übernehmen kann.
Ich möchte folgendes erreichen:

Wenn eine bestimmte Zelle markiert ist, sollen -wenn das entsprechende Makro abgespielt wird- in dieser Zeile die Inhalte und Kommentare bestimmter Zellen (in dieser durch die Markierung der Zelle markierten Zeile) gelöscht werden.

Beispiel:

ich markiere mit dem Cursor die Zelle C13. Dann sollen beim abspielen des Makros die Zellen C25, C26, C34 gelöscht werden (Inhalt und Kommentare).

Danke im Voraus.

Grüße

Holger

7 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Holger,

Der nachfolgende Code eingefügt in das gegenständliche Tabellenblatt sollte es bringen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rng As Range
Set rng = Union(Me.Range("C25,C26"), Me.Range("C34"))

If Target.Address <> "$C$13" Then Exit Sub
rng.Clear

End Sub

Gruß

Paul1

[sub] Excel 2003
MS Windows XP Professional SP3
ECDL-Syllabus Version 4.0 u. VBA-Lehrling[/sub]
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Holger,

geht auch etwas kürzer

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$C$13" Then Exit Sub
Range("C25,C26,C34").ClearContents
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von
Hallo,

vielen Dank für die schnellen Antworten.

Leider habe ich mich verschrieben. Wenn die Zelle C13 markiert ist, sollen natürlich bestimmte Zellen der GLEICHEN ZEILE gelöscht werden (Inhalt und Kommentare). In diesen Beispiel dann e13, f13, g13 und k13.
Wenn ich die Zelle c335 markiere dann sollen die Zellen e335, f335, g335 und k335 gelöscht werden usw.

Bitte den Code dahingehend anpaßen.

VIELEN DANK im Voraus


Gruß

Holger
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Holger,

nicht besonders elegant, aber funktioniert.

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sngFrage As Single
If Target.Column <> 3 Then Exit Sub
sngFrage = MsgBox("Wirklich löschen?", vbOKCancel)
If sngFrage = 1 Then
Range("E" & Target.Row).Clear
Range("F" & Target.Row).Clear
Range("G" & Target.Row).Clear
Range("K" & Target.Row).Clear
End If
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

Danke für Deine schnelle, "sonntägliche" Hilfe.
Noch eine Frage. Kann man das auch so machen, daß man eine Zelle markiert und dann auf einen Button klickt und dann wird die Löschaktion ausgelöst? Was wäre notwendig?

Gruß

Holger
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Holger,

füge einen CommandButton ins Arbeitsblatt ein und weise ihn folgenden Code zu:

Option Explicit

Private Sub CommandButton1_Click()
If ActiveCell.Column <> 3 Then Exit Sub
Range("E" & Selection.Row).Clear
Range("F" & Selection.Row).Clear
Range("G" & Selection.Row).Clear
Range("K" & Selection.Row).Clear
End Sub


Markiere die gewünschte Zelle in Spalte C und betätige den Button.

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

vielen Dank für die nochmalige Antwort.

Es funktioniert alles sehr gut.

Danke auch an Paul1 für die Antwort.


Viele Grüße

Holger
...