Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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

benachbarte zellen leeren

benachbarte zellen leeren
28.08.2013 16:15:51
Walter
Hallo Experten,
ich habe ein simples Problem, die Lösung ist wahrscheinlich auch simpel, aber ich komme trotzdem (auch nach intensiver Recherche) nicht dahinter.
Ich formuliere also einfach meine Anforderung ohne euch mit meinen bisherigen, gescheiterten Lösungsversuche zu quälen:
Der Benutzer muss in eine der Zellen F4, G4 oder H4 ein kleines "x" schreiben. Sobald er dies gemacht hat, soll der Inhalt der beiden anderen Zellen gelöscht werden.
Und das soll laufend (nicht nur einmal) funktionieren.
Ich hoffe, ich habe das verständlich formuliert und danke schon im Voraus für die Hilfe!
lg walter

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: benachbarte zellen leeren
28.08.2013 16:28:15
selli
hallo walter,
excel bietet für solche aufgaben bereits fertige lösungen an.
für deinen fall sind es die optionsfelder.
gruß
selli

AW: benachbarte zellen leeren
29.08.2013 08:40:56
Walter
Danke sehr!!
Ich hab´s eingebaut, die restliche Tabelle angepasst, funktioniert super!
Eine Zusatzfrage habe ich aber noch:
Sobald ich eines der drei Optionsfelder ausgewählt habe, kann ich immer nur auf ein anderes wechseln. Ist es irgendwie möglich, dass ich alle drei Optionsfelder wieder deaktiviere (die einzige Möglichkeit, die ich momentan sehe, ist, jene Zelle zu leeren, die bei "Zellverknüpfung" eingetragen ist, die möchte ich aber vermeiden)?
lg walter

Anzeige
AW: benachbarte zellen leeren
29.08.2013 08:54:14
selli
hallo walter,
nee, bei dieser "einfachen" variante geht das nicht. da müsstest du wieder mit vba anfangen.
du könntest aber ja noch ein viertes optionsfeld einfügen und dann mit dem wert 4 in der verknüpften zelle "spielen".
gruß
selli

AW: benachbarte zellen leeren
29.08.2013 08:56:55
Walter
hallo selli,
danke sehr für deine hilfe!!
lg walter

Du suchst eine VBA-Lösung ?
28.08.2013 16:42:02
Matthias
Hallo
Hier mal ein einfaches Beispiel:
Der Code gehört in die entsprechende Tabelle
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Einschalten
If Not Intersect(Target, Range("F4:H4")) Is Nothing And Target.Count = 1 And Target = "x" Then
Application.EnableEvents = False
Select Case Target.Address
Case Range("F4").Address
Range("G4").ClearContents
Range("H4").ClearContents
Case Range("G4").Address
Range("F4").ClearContents
Range("H4").ClearContents
Case Range("H4").Address
Range("G4").ClearContents
Range("F4").ClearContents
End Select
End If
Einschalten:
Application.EnableEvents = True
End Sub



In meinem Beispiel gehe ich davon aus das nur in eine Zelle "x" geschrieben wird.
Du kannst so in den Zellen beliebige Werte eingeben, sobald aber ein !kleines! "x" eingetragen wird, werden die anderen beiden Zellen geleert. Das kleine "x" war Dein Wunsch!
Rückmeldung wäre nett
Gruß Matthias

Anzeige
AW: Du suchst eine VBA-Lösung ?
29.08.2013 08:37:55
Walter
Hallo Matthias,
ich danke dir für die Hilfe, jedoch habe ich mich für die Version von Selli angefreundet und verwende die Formular-Optionsfelder.
DANKE!
lg walter

kein Problem ...
29.08.2013 16:32:08
Matthias
Hallo Walter
Danke für Deine Rückmeldung!
Wessen Hilfe Du in Anspruch nimmst ist ja Deine Sache und für mich auch kein Problem ...
... nur wie hast Du es denn mit der Eingabe eines kleinen "x" gelöst?
Das war ja schliesslich Deine Anforderung bei der Frage.
Ich selbst weiß wie man das löst, mich interessiert aber welchen Weg Du dabei gegangen bist.
Gruß Matthias

Anzeige
AW: kein Problem ...
30.08.2013 07:19:08
Walter
Hallo Matthias,
ich habe auf die "x" zugungsten der Optionsfelder verzichtet.
DANKE!
lg
walter

AW: benachbarte zellen leeren
28.08.2013 22:02:58
Gerd
Hallo Walter,
ins Codefenster der Tabelle kopieren:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("F4:H4")) Is Nothing Then Exit Sub
If Target.Count = 1 And Target.Value = "x" Then Range("F4:H4").RowDifferences(Target). _
ClearContents
End Sub
Gruß Gerd

AW: benachbarte zellen leeren
29.08.2013 08:34:34
Walter
Danke sehr,
ich nehme aber lieber die Version von Selli mit den Optionsfeldern.
DANKE!
lg walter

Anzeige
Ich bekomme immer Fehlermeldungen
29.08.2013 17:16:25
Matthias
Hallo Gerd
Die Idee fand ich echt gut, aber bei mir klappt es leider so nicht.
Hast Du das getestet und funktioniert das wirklich so bei Dir?
Hab zwar nur Xl2007 als Max(XL-Version), aber da gibts ja auch schon RowDifferences
Kannst Du mal die Beispieldatei posten? Ich würde gerne verstehen warum das bei mir nicht geht.
Gruß Matthias

AW: Ich bekomme immer Fehlermeldungen
29.08.2013 20:30:31
Gerd
Hallo Mathias,
getestet, ja wie man halt so testet. Nur mit "x" in der mittleren Zelle, in xl2007.
Hol 's der Geier. So ist es vielleicht stabiler. :-)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("F4:H4")) Is Nothing Then Exit Sub
If Target.Count = 1 Then
If Target.Value = "x" Then Range("F4:H4").RowDifferences(Target). _
ClearContents
End If
End Sub
Gruß Gerd

Anzeige
RowDifferences funktioniert so bei mir nicht ...
30.08.2013 16:03:55
Matthias
Hallo Gerd
schreib mal in F4 ein "x"
Nun schreib in G4 ein "x"
Hier sollte lt.Frage ja das "x" aus F4 wieder verschwinden. Macht es aber bei mir nicht!
Nun schreibe in H4 auch noch ein "x"
Nun hat man 3 mal "x" im Bereich stehen.
In jeder dieser Zellen einmal und genau dort kommt die VBA-Fehlermeldung.
Funktioniert das wirklich bei Dir?
Gruß Matthias

AW: RowDifferences funktioniert so bei mir nicht ...
30.08.2013 22:59:05
Gerd
Hallo Matthias,
das Verschwinden des "x" konnte ich aus der Beschreibung nicht entnehmen, auch nicht, dass 3 mal geixxt werden soll.
Dass bei 3 "x" die Difference-Methode in einen Fehler läuft, ist klar. Sie gibt bei einem 3zelligem Bereich dann Nothing zurück.
Gruß Gerd

Anzeige
RowDifferences ...
31.08.2013 08:03:59
Matthias
Hallo Gerd
Zitat(Frage)
Der Benutzer muss in eine der Zellen F4, G4 oder H4 ein kleines "x" schreiben. Sobald er dies gemacht hat,
soll der Inhalt der beiden anderen Zellen gelöscht werden.
Und das soll laufend (nicht nur einmal) funktionieren.

D.h. ein "x" in eine der Zellen, soll die beiden anderen Zellen inhaltlich löschen.
Und das soll laufend (nicht nur einmal) funktionieren.
So hatte ich es auch verstanden. Genau dafür hatte ich ja auch einen Code gepostet.
Aber egal, hat eben jeder anders verstanden und ich hatte mal wieder einen Input :-)
Ich hatte mich ja noch nie mit RowDifferences beschäftigt. Hat also alles was Gutes :-)
Euch allen ein schönes Wochenende
Gruß Matthias

Anzeige
AW: ColumnDifferences ...
31.08.2013 09:33:33
hary
Moin Gerd und Matthias
Wieder was gelernt. Dann kann man, statt Filter(einer Spalte), ja auch ColumnDifferences anwenden.
Frage: kann man eine Variable in "Comparison:= hier Variable" setzen?
Dim raus As Range
Set raus = Columns(1).ColumnDifferences(Comparison:=Cells(1, 1))
raus.EntireRow.Hidden = True

gruss hary

AW: @ Hary ColumnDifferences ...
31.08.2013 13:01:32
Gerd
Hallo Hary,
ja kann man. Als Ersatz für den schnelleren Autofilter würde ich diese Methode nicht nehmen, es sei denn es muss unbedingt auf eine Überschriftenzeile zichtet werden.
Column/Row - Differences verlangt als Argument zum Vergleich eine Zelle im Bereich einer Spalte bzw. einer Zeile u. gibt ein Rangeobjekt hieraus zurück, das alle Zellen mit anderen Werten als dem Wert der Referenzzelle enthält.
Die Vergleichszelle, die also in der Auswertungsspalte bzw. -zeile liegt, kann man als Range-Variable angeben.
Diese Methode ist ganz praktisch um in Teilbereiche einzusteigen (Areas), die alle mit dem selben Wert als "Zwischenüberschrift" gekennzeichnet sind.
Gruß Gerd

Anzeige
AW: Danke Gerd gruss owT
01.09.2013 06:52:06
hary
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige