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

Zelleninhalt automatisch löschen

Zelleninhalt automatisch löschen
18.05.2003 10:52:08
Sören
dank L.Vira habe ich auf mein Problem (Beitrag von Sören vom 16.05.2003 - 18:57:39)folgende Lösung erhalten:

Einfache Lösung ohne Fehlerbehandlung:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If ActiveCell = "ja" Then
Sheets("Tabelle1").[a65536].End(xlUp).Offset(1, 0) = _
Cells(ActiveCell.Row, 26)
End If
End Sub

Ist es auch möglich, wenn das Wort "ja" wieder gelöscht wird, dass auch die entsprechende Zeile in Tabellenblatt "b" gelöscht wird?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zelleninhalt automatisch löschen
18.05.2003 11:45:08
L.Vira

Das kann nur gehen, wenn: entweder der Wert in Spalte Z nur einmal vorkommt oder wenn bei der Wertzuweisung z.B. die Zeilennummer mit übergeben wird.

Re: Zelleninhalt automatisch löschen
18.05.2003 12:01:24
Sören

es handelt sich in Spalte Z um eine Verkettung von Adressdaten.
Eine andere Möglichkeit wäre, wenn "nein" ausgewählt wird, dass dann diese Zeile in Tabellenblatt"b" wieder gelöscht wird.
(Es kann ja sein, dass sich der Benutzer geirrt hat, als er "Ja" ausgewählt hat. Vielen Dank für deine Hilfe.

Re: Zelleninhalt automatisch löschen
18.05.2003 12:04:28
L.Vira

Schön, aber das kann doch nur funktionieren, wenn der Eintrag in Spalte Z eindeutig zu identifizieren ist, ist er denn?

Anzeige
Re: Zelleninhalt automatisch löschen
18.05.2003 12:23:00
Sören

z.B. wenn bei der Auswahl von "ja" die Zeilennummer mit nach Tabellenblatt"b" in Spalte B übertragen wird?

Re: Zelleninhalt automatisch löschen
18.05.2003 12:37:16
L.Vira

Das hatte ich ja vorgeschlagen, dann gehts natürlich.

Re: Zelleninhalt automatisch löschen
18.05.2003 12:58:57
L.Vira

Irrtum, auch dann ist es nicht eindeutig. Es kann ja sein, dass in eine Zeile mehrmals "ja" eingegeben wird, dann gibts den Eintrag auch mehrfach mit der gleichen Zeilennummer.

Re: Zelleninhalt automatisch löschen
18.05.2003 13:14:49
Sören

Wie müsste dann der Code aussehen, damit die Zellennummer mit übernommen wird bzw. bei "nein" die Zelle im Tabellenblatt "b" gelöscht wird. Vielen Dank für deine Mühe - Sören

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If ActiveCell = "ja" Then
Sheets("Tabelle1").[a65536].End(xlUp).Offset(1, 0) = _
Cells(ActiveCell.Row, 26)
End If
End Sub


Anzeige
So in der Art...
18.05.2003 13:19:02
L.Vira

''Einfache Lösung ohne Fehlerbehandlung:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aCR As Long, FindRow As Range
If Target.Column <> 2 Then Exit Sub
If Sheets("Tabelle1").[a65536] <> "" Then Exit Sub
aCR = ActiveCell.Row
If ActiveCell = "ja" Then
With Sheets("Tabelle1").[a65536].End(xlUp)
.Offset(1, 0) = Cells(ActiveCell.Row, 26)
.Offset(1, 1) = aCR
End With
ElseIf ActiveCell = "" Then
With Sheets("Tabelle1")
On Error Resume Next
Set FindRow = .Columns(2).Find(aCR)
.Rows(FindRow.Row).Delete
End With
End If
End Sub



Anzeige
Re: So in der Art...
18.05.2003 14:10:04
Michael Schirow

Hi,

hab ein wenig mitgeknobelt:

Ein kleines Problem ist, dass die Sache nicht funktioniert, wenn der Wert "ja" via Tastatur eingegeben wird und das automatische Verschieben des Zellzeigers aktiv ist.

ActiveCell liefert dann dummerweise den neuen, verschobenen Bereich. Mir fällt keine einfache Methode ein, um zu unterscheiden, ob Change via DropDown oder Tastatureingabe ausgelöst wurde.

Am einfachsten wäre es wohl, das automatische Verschieben des Zellzeigers zu unterbinden.

MfG, Michael

Re: So in der Art...
18.05.2003 14:42:17
L.Vira

Einfach nicht ActiveCell sondern Target nehmen. Allerdings sollte dann noch eine Prüfung rein, ob Target nur eine Zelle ist.
''Einfache Lösung ohne Fehlerbehandlung:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aCR As Long, FindRow As Range
If Target.Column <> 2 Then Exit Sub
If Sheets("Tabelle1").[a65536] <> "" Then Exit Sub
If Target.Cells.Count = 1 Then
aCR = Target.Row
If Target.Value = "ja" Then
With Sheets("Tabelle1").[a65536].End(xlUp)
.Offset(1, 0) = Cells(aCR, 26)
.Offset(1, 1) = aCR
End With
ElseIf Target.Value = "" Then
With Sheets("Tabelle1")
On Error Resume Next
Set FindRow = .Columns(2).Find(aCR)
.Rows(FindRow.Row).Delete
End With
End If
End Sub

Anzeige
Korrektur...
18.05.2003 14:43:37
L.Vira

es fehlt noch ein End If

Re: Korrektur...
18.05.2003 14:49:06
Michael Schirow

hi,

> Einfach nicht ActiveCell sondern Target nehmen.

logisch *klopft sich an die Stirn*

MfG, Michael

Vielen Dank an L.Vira und Michael Schirow
18.05.2003 17:58:40
Sören

Vielen Dank für eure Mühe - es funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige