Optionsfelder

Hallo alle zusammen!

Ich habe ein Problem, undzwar benötige ich im Rahmen eins Uni Projektes ein kleines Formular, womit man eine Rechnung schreiben kann.
Soweit hat bisher alles gut funktioniert, bis auf einige wenige Dinge.
Ich habe in meinem Formular unter anderem 2 Optionsfelder, wo man zwischen „Standardversand“ und „Expressversand“ wählen kann.

Am Ende drückt man auf einen Button „Daten übernehmen“ und dann wandern alle Daten, die man in Textfelder etc. eingegeben hat in die Excel Tabelle.

Was für einen Befehl benöige ich, damit, wenn ich z.B. das Optionsfeld „Standardversand“ anwähle, das auch in der Excel Tabelle in einer bestimmten Zelle erscheint?

Hoffe mir kann einer weiterhelfen…

Gruß

Alex

Nachfrage

Ich habe ein Problem, undzwar benötige ich im Rahmen eins Uni
Projektes ein kleines Formular, womit man eine Rechnung
schreiben kann.

Ich habe in meinem Formular unter anderem 2 Optionsfelder, wo
man zwischen „Standardversand“ und „Expressversand“ wählen
kann.

Hi Alex,

aus welcher Symbolleiste stammt denn das Optionsfeld?

Gruß
Reinhard

Hallo Reinhard!

Das Optionsfeld stammt aus der Steuerelement-Symbolleiste.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

aus welcher Symbolleiste stammt denn das Optionsfeld?

Das Optionsfeld stammt aus der Steuerelement-Symbolleiste.

Hallo Alex,

ohne Vba geht das so, klicke in der Symbolleiste auf das Geodreieck (Entwurfsmodus), wähle eine der beiden Optionsfelder aus, dann klicke in der Symbolleiste auf Eigenschaften und gib bei LinkedCell ein:
G1
Dann den Entwurfsmodus wieder ausschalten.
Beim Klicken auf die beiden Optionsfelder erscheint nun in G1 je nachdem Wahr oder Falsch.
Kannste ja ausblenden mit Schriftfarbe weiß.

Jetzt brauchst du nur noch in eine beliebige Zelle zu schreiben:
=WENN(G1=FALSCH;„Express“;„Standard“)
Das war’s.

Gruß
Reinhard

Naja das Problem ist, dass Optionsfeld ist direkt in dem VBA Formular, nicht in der Excel Tabelle.

Dann habe ich noch ein Problem:

Ich habe ein Kombinationsfeld (auch in dem VBA Formular), da kann man 3 Sachen auswählen.

Am Ende drückt man auf einen Button „Daten einfügen“ und dann soll auch das, was man im Kombifeld angewählt hat im Formular erscheinen.

Ich wollte es mit folgendem Befehl machen:

If combobox1 =„Kreditkarte“ Then
sheets(„tabelle“).select
Range(„B4“)=combobox1
end if
If combobox1 =„Bankeinzug“ Then
sheets(„tabelle“).select
Range(„B4“)=combobox1
end if

Leider haut das nicht hin. Ich wenn ich es mit F5 testen möchte bekomme ich immer die Fehlermeldung "Laufzeitfehler 9, Außerhalb des gültigen Bereichs.
Wenn ich dann auf „Debuggen“ gehe wird mir die Zeile mit dem sheets markiert. Was ist denn hier bloß falsch?

Hallo Alex,

Naja das Problem ist, dass Optionsfeld ist direkt in dem VBA
Formular, nicht in der Excel Tabelle.

bitte sag beim nächsten Mal gleich daß es um eine Userform geht

Leider haut das nicht hin. Ich wenn ich es mit F5 testen
möchte bekomme ich immer die Fehlermeldung "Laufzeitfehler 9,
Außerhalb des gültigen Bereichs.

Die Meldung deutet daraufhin daß du kein Blatt mit diesem Namen hast.

Kannst du eine kleine Beispielmappe mit FAQ:2861 hochladen?

Gruß
Reinhard

http://www.hostarea.de/server-01/Januar-ae25e99304.xls

Sorry, das mit dem Userform wusste ich nicht. Hab mit VBA erst seit wenigen Tagen zu tun.

Die Tabelle exisiert nicht? Das verstehe ich nicht. Die Tabelle heisst „Eingabeformular“.

Und in dem Befehl habe ich geschrieben sheets(„Eingabeformular“).select

PS: Ich seh grade, dass der Befehl für das Kombinationsfeld in der hochgeladenen Version nicht bei ist. Weil es nict ging, hatte ich es wieder rausgelöscht.

Also bei dem Command Button „Daten_Einfügen“ hatte ich folfgendes hingeschrieben.

If combobox_zahlung = „Kreditkarte“ then
sheets („Eingabeformular“).select
Range(„C19“)=combobox_zahlung

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

http://www.hostarea.de/server-01/Januar-ae25e99304.xls

PS: Ich seh grade, dass der Befehl für das Kombinationsfeld in
der hochgeladenen Version nicht bei ist. Weil es nict ging,
hatte ich es wieder rausgelöscht.

Hallo Alex, in der hochgeladenen Mappe heißt Blatt1 ja Tabelle1, da klappt dann dies:

Private Sub Eingaben\_einfügen\_Click()
With Worksheets("Tabelle1") 'Namen anpassen
 .Range("a10") = Artikel1
 .Range("a11") = Artikel2
 .Range("c10") = Preis1
 .Range("c11") = Preis2
 .Range("c17") = Gesamt
 .Range("c4") = Adresse
 .Range("c3") = Nachname
 .Range("C19").Value = Combobox\_Zahlung
End With
Eingabemaske.Hide
Drucken\_Faxen.Show
End Sub

Gruß
Reinhard

Super tausend Dank!!

Hast du vielleicht jetzt noch eine Idee, mit welchem Befehl ich das, was ich in einem der beiden Optionsfelder angewählt habe, in c18 bekomme?
Brauche ich da nicht eigentlich Variablen für?

Hast du vielleicht jetzt noch eine Idee, mit welchem Befehl
ich das, was ich in einem der beiden Optionsfelder angewählt
habe, in c18 bekomme?
Brauche ich da nicht eigentlich Variablen für?

Hallo Alex,

für was Variablen? Die Namen der Steuerelemente sind doch schon quasi Variablen.

Zu den Namen, google mal bitte nach ungarischer Notation.
Da mußt du dich ja keinesfalls stur dran halten.
Es ist ja so, egal ob ein Fremder deinen Code liest oder du in 2 Monaten, dann geht das Lesen des Codes zigfach schneller wenn du sprechende Namen hast.
Das hast du ja schon gemacht, das ist sehr okay.
Was noch fehlt sind die Präfixe.

Also nicht den Namen „Standard“ für einen Optionsbutton sondern
„opStandard“ oder „obStandard“
„cbLoeschen“ anstatt „Loeschen“ für einen CommandButton
„txtPreis1“ oder „TBPreis“ fü eine Textbox
usw.

Was noch zu tun wäre, beim Start der UF kannst du ja schon betimmte Einstellungen vordefinieren, so wie ich es in „Initialize“ schon gemacht habe mit „Standard“ und „Combobox_Zahlung“

Bevor die zweite UF aufgerufen wird müßte noch in der ersten UF überprüft werden ob auch alle Felder die ausgefüllt werden müssen dies auch sind.
Und auch geprüft werden ob die eingegeben Werte stimmig sind.

Ist preis1 oder Preis2 leer oder keine Zahl, kracht dein Code wenn du die preise addierst.

Für was sind die globalen Variablen Preisx1, Preisx2?
So geht das doch auch:

Private Sub CommandButton1_Click()
Gesamt = CDbl(Preis1) + CDbl(Preis2)
End Sub

Private Sub Eingaben\_einfügen\_Click()
With Worksheets("Tabelle1") 'Namen anpassen
 .Range("a10") = Artikel1
 .Range("a11") = Artikel2
 .Range("c10") = Preis1
 .Range("c11") = Preis2
 .Range("c17") = Gesamt
 .Range("c4") = Adresse
 .Range("c3") = Nachname
 .Range("C19").Value = Combobox\_Zahlung
 If Standard = True Then .Range("C18").Value = Standard.Caption
 If Express = True Then .Range("C18").Value = Express.Caption
End With
Eingabemaske.Hide
Drucken\_Faxen.Show
End Sub

Private Sub Userform\_Initialize()
Standard = True
With Combobox\_Zahlung
 .AddItem "Kreditkarte"
 .AddItem "Bankeinzug"
 .AddItem "PayPal"
 .Value = "Bankeinzug"
End With
End Sub

Achja, hole dir aus Symbolleiste Formular eine Schaltfläche und weise ihr dieses Makro (steht in Modul1) zu:

Sub Zeige()
Eingabemaske.Show 0
End Sub

Gruß
Reinhard