Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
996to1000
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

Wert eines Optionsfeldes wieder löschen

Wert eines Optionsfeldes wieder löschen
27.07.2008 13:30:04
Schneider
Hallo Forengemeinde,
ich bin neu in diesem Forum und habe noch wenig Erfahrung mit VBA
ich arbeite zur Zeit an einer Userform. Diese Userform soll Eingaben in eine jeweils bestimmte Zelle in einem Arbeitsblatt schreiben um diese zum Schluß zu exportieren. Dabei soll der Benutzer möglichst frei agieren können.
Mein Problem sind zur Zeit die Optionsfelder. Es ist zwar kein Problem einen Wert in eine Zelle zu schreiben wenn ein Optionsfeld aktiviert wird, der Wert wird allerdings nicht gelöscht wenn das Optionsfeld wieder deaktiviert wird.
Konkretes Beispiel: Zwei Optionsfelder in einem Frame. Optionsfeld 1 = Frau, Optionsfeld 2 = Herr
Wenn Optionsfeld 1 = True dann schreibe in eine bestimmte Zelle den Wert x
Wenn Optionsfeld 2 = Ture dann schreibe in eine bestimmte Zelle den Wert x
zur zeit sieht das ganze so aus
Private Sub OptionButton1_Click() For i = 1 To Ende If Sheets("Daten").Cells(i, 2).Value = "Frau" Then 'sucht in spalte B nach _ zuordnungswert If OptionButton1.Value = True Then Sheets("Daten").Cells(i, 1) = "x" Else Sheets("Daten").Cells(i, 1) = "" End If Exit For End If Next End Sub



Private Sub OptionButton2_Click()
For i = 1 To Ende
If Sheets("Daten").Cells(i, 2).Value = "Herr" Then
If OptionButton2.Value = True Then
Sheets("Daten").Cells(i, 1) = "x"
Else
Sheets("Daten").Cells(i, 1) = ""
End If
Exit For
End If
Next
End Sub


Leider wird nun das x nicht mehr "gelöscht" wenn ich z.b. erst Frau anklicke und dann Herr auch noch auswähle, sondern dann steht in beiden Zellen ein x
Habe zwar selber ein paar sachen probiert und gegoogelt bin aber leider nicht fündig geworden und hoffe das mir vll jemand von euch weiterhelfen kann.
Gruß Max

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert eines Optionsfeldes wieder löschen
27.07.2008 17:42:47
Ramses
Hallo
Fasse die Option-Buttons zu einer Gruppe zusammen (Option-Button Eigenschaft: Groupname)
Dann kann automatisch nur eine Auswahl getroffen werden.
Dann mach das nicht mit der Click Eigenschaft des Option-Buttons, sondern zum Schluss wenn die Daten übernommen werden.
Das erleichtert das programmieren weil du die Prüfung nur einmal machen musst.
Die Schleife ist sowieso überflüssig weil auch völlig falsch.
Du startest bei Cells(i,2),.. das muss aber nicht dein Datensatz sein, den du gerade bearbeitest.
Gruss Rainer

AW: hier ein Beispiel
27.07.2008 18:05:00
Ramses
Hallo Matthias
und welche Aktion soll ausgelöst werden, wenn die Option deaktiviert wurde ? ;-)
Der Ausstiegspunkt "Exit For" ist auch nicht enthalten.
Tut mir leid, aber ohne den Hintergrund was er eigentlich erreichen will, ist das von Max genannte Beispiel als Nonsens zu betrachten und ergibt keinen Sinn.
Gruss Rainer

hast schon recht ...
27.07.2008 18:28:00
Matthias
Hallo Rainer
und welche Aktion soll ausgelöst werden, wenn die Option deaktiviert wurde ? ;-)
Sei nicht so streng ;-)
Ich gebe Dir natürlich recht mit dem Hintergrund.
Und es ist doch auch in Ordnung, wenn man den Sinn hinterfragt.
Ich, jedenfalls bin eher darauf eingestiegen:
Leider wird nun das x nicht mehr "gelöscht" wenn ich z.b. erst Frau anklicke und dann Herr auch noch auswähle, sondern dann steht in beiden Zellen ein x
Warten wir doch erstmal ab, Max wird sich schon melden.
Gruß Matthias

Anzeige
AW: hast schon recht ...
27.07.2008 20:16:30
Schneider
Hallo Rainer und Matthias,
schonmal vielen dank für eure Antworten.
Der Hintergrund der ganzen Sache ist ein anschließender Export im xml-Format an einen Server. In diesem Fall ist der Server so programmiert das es für die Anrede einer Person 2 xml-Elemente gibt(Element name A1 und A2). Wenn also im Element A1 der Wert x steht bedeutet dies die Anrede Frau und umgekehrt etc. Der Zuordnungswert ist der spätere Elementname (Spalte B), der Wert des Elementes ist in Zeile A.
Die Userform soll der optischen Kontrolle dienen und derartige "Server-Ausprägungen" verständlicher machen.
Der Grund für diese Schleife ist eigtl, dass das Excel-Datenblatt ständig wachsen kann und es keine festen Zellbezüge geben soll, deshalb kein fester Wert für die Schleife und das jeweilige Suchen mit dem Zuordnungswert. Ich weiß zwar das dies nicht sehr schön ausschaut aber ich wußte nicht wie ich es besser machen könnte.
Habe nunmal Matthias sein Beispiel versucht so einzubauen. allerdings löscht er wenn dann immer nur den Wert von A1, nicht aber mehr von A2. Kann ich die Datei auch uploaden damit es vll verständlicher ist bzw wie kann ich das hier machen?
Option Explicit
Public Ende

Private Sub UserForm_initialize()
'Ende suchen
Dim i As Long
Ende = 1
Do While Cells(Ende, 2)  ""
Ende = Ende + 1
Loop
'Cells(Ende, 1).Select
'wird benötigt da sich das Ende verschieben kann
End Sub



Private Sub OptionButton1_Click()
Dim i As Long
For i = 1 To Ende
With Sheets("Daten")
If .Cells(i, 2).Value = "A2" Then .Cells(i, 1).ClearContents
If .Cells(i, 2).Value = "A1" Then
If OptionButton1.Value = True Then
.Cells(i, 1) = "x"
End If
Exit For
End If
End With
Next
End Sub



Private Sub OptionButton2_Click()
Dim i As Long
For i = 1 To Ende
With Sheets("Daten")
If .Cells(i, 2).Value = "A1" Then .Cells(i, 1).ClearContents
If .Cells(i, 2).Value = "A2" Then
If OptionButton2.Value = True Then
.Cells(i, 1) = "x"
End If
Exit For
End If
End With
Next
End Sub


Gruß Max

Anzeige
AW: hast schon recht ...
27.07.2008 20:34:01
Ramses
Hallo
Ich habe keine Lust dafür Javascript zu aktivieren oder Minutenlang zu warten bis ich downloaden kann.
Es gibt hier im Forum die Möglichkeit die Mappe hochzuladen
Im Antwort Dialog auf den Link "Hier geht es zum Fileupload" klicken und die Mappe hochladen.
Gruss Rainer

Versteh ich nicht ...
27.07.2008 23:11:39
Ramses
Hallo
Daten

 ABC
1 A101(Neben Wert A101 soll ein x wenn Frau aktiviert wird)
2 A201(Neben Wert A201 soll ein x wenn Herr aktiviert wird)
3 A301(Neben Wert A301 soll der eingetragene Name reingeschrieben werden)
4   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
WIE identifizierst du denn den Datensatz den du bearbeitest ?
Du kannst doch nicht einfach auf Gut Glück ein X setzen und Namen eintragen ?
Welche Bedeutung haben denn die Angaben in Spalte B?
Das ist doch kein Aufbau für eine Datenbank. Eine vernünftige Datenbank hat alle Daten horizontal in einer Zeile,
damit sie klar zugeordnet werden können.
Daran solltest du dich halten.
Gruss Rainer

Anzeige
AW: Versteh ich nicht ...
28.07.2008 12:51:49
Schneider
Die Zuordnung bzw Identifikation läuft über die If abfrage. Die Variable i merkt er sich.
For i = 1 To Ende
If Sheets("Daten").Cells(i, 2).Value = "A301" Then
Cells(i, 1).Value = TextBox1.Text
Exit For
End If
In dem Fall wird nach dem Zuordnungswert in Spalte 2, A301 gesucht. Wenn er diesen findet geht er in die dazugehörige Zeile i der Spalte 1(A). Die Angaben in der Spalte B dienen der Zuordnung damit die Zeile festgelegt wird in die der Wert reingeschrieben werden soll, desweiteren sind die Wert der Spalte B die Elementnamen für die anschließende xml Datei.
Für die vertikale Anordnung habe ich mich eigtl deshalb entschieden weil es jeweils nur 1 Datensatz für eine excel datei gibt und ich so die xml dateierstellung über eine schleife ablaufen lassen kann.
Hoff ich hab dir das nun verständlich machen können wie ich das vorhabe.
Gruß Max

Anzeige
AW: Beispiel Datei
28.07.2008 13:04:06
Schneider
Hallo Matthias,
vielen Dank für deine Bemühungen.
Hast recht ohne das Exit For klappt es so wie ich das wollte. Wobei ich das um ehrlich zu sein noch nicht ganz kapiere weil mit dem End IF die Schleife doch eh zu Ende ist.
Muss grad doch weng schmunzeln weil du mit der Anfangs-Schleife (Ende ermitteln)natürlich vollkommen recht hast. Überleg nur ob das nen Sinn hatte, glaub aber mal nicht.
Das dies nur solang geht bis die erste Lücke kommt ist beabsichtigt. Die Werte in Spalte B sind der Elementname für die XML-Datei. In Spalte A die Werte der Elemente. Es darf nicht sein das ein Element ohne Name an den Server übertragen wird. Die XML-Datei generierung läuft dann über eine Schleife die bis zur ersten Lücke eben geht. So hatte ich mir das vorgestellt bzw schon in Teilen umgesetzt.
Die Checkboxen und Comboboxen usw. funktionieren auch schon, nur das mit den Optionfelder wollte nicht.
Gruß Max

Anzeige
AW: Beispiel Datei
29.07.2008 10:09:54
Matthias
Hallo
 Zitat:
 Muss grad doch weng schmunzeln weil du mit der Anfangs-Schleife (Ende ermitteln)natürlich  vollkommen recht hast. Überleg  nur ob das nen Sinn hatte, glaub aber mal nicht.
 keine Ahnung, was Du meinst.
 Das ist doch Dein Code, den hast Du doch geschrieben.
 Ich habe nur das Exit For rausgenommen die Variable Ende in einem Modul als  Public deklariert und ne MSGBOX  reingepackt.
Gruß Matthias

AW: hast schon recht ...
27.07.2008 20:30:32
Ramses
Hallo
"..allerdings löscht er wenn dann immer nur den Wert von A1, nicht aber mehr von A2..:"
Ist doch logisch, wie ich schon geschrieben habe:
- was soll passieren wenn die Option deaktiviert wurde
- Die schleife wird ja bei dir beendet, sobald der erste geprüfte Zustand eintritt
"..dass das Excel-Datenblatt ständig wachsen kann und es keine festen Zellbezüge geben soll.."
Sorry, das ist doch völliger Quatsch. Wenn du einen Datensatz bearbeitest, dann musst du DIESEN Datensatz ändern, und nicht mit einer Schleife am Beginn deiner Datensätze beginnen und dann ändern wo es gerade zutrifft. Du änderst doch IRGENDWAS aber nicht deinen DATENSATZ den du gerade in der Userform bearbeitest.
"...und derartige "Server-Ausprägungen" verständlicher machen..."
Beschreibe es einfach und lass solche Beschreibungen die niemand verstehen kann einfach weg :-)
Lade ein Beispiel hoch das man sich ansehen kann. Ansonsten ist das ein Ratespiel
Gruss rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige