Office: (Office 2013) if then mit OptionButton und ComboBox

Helfe beim Thema if then mit OptionButton und ComboBox in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich hab vor kurzem erst angefangen mich mit VBAs und Makros zu beschäftigen und irgendwie funktioniert nichts, was ich ausprobiere. Ich habe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von rusela, 15. Januar 2016.

  1. rusela Neuer User

    if then mit OptionButton und ComboBox


    Hallo, ich hab vor kurzem erst angefangen mich mit VBAs und Makros zu beschäftigen und irgendwie funktioniert nichts, was ich ausprobiere.

    Ich habe übrigens Office 2016, aber das war noch nicht auswählbar.

    Zum ersten Problem: Ich versuche mit if then abhängig von der Auswahl bei einer ComboBox den Text in ein paar Zellen zu verändern bzw. zu erstellen.

    Mein erster Versuch sah so aus:

    Sub Text_1() Dim c1 As ComboBox c1 = Combox1.Text If c1 = "text" Then Range ("A1").Formula = "a" Range("A1").HorizontalAligment = xlRight End If End Sub

    Da passiert leider gar nix.

    Zweites Problem: Ich möchte abhängig davon, ob Optionbutton 1 oder 2 angeklickt ist Bild 1 sichtbar und Bild 2 unsichtbar oder eben andersrum bei Optionbutton2. Ich hab es zuerst mit if then versucht, das funktionierte beim ersten Click auch, aber wenn ich zwischen 1 und zwei hin und her wechsle, bekomme ich einen Laufzeitfehler. Dann habe ich es mit Select Case probiert, aber da bekam ich entweder den selben Fehler oder, nachdem ich versucht habe das ganze erst mal zu reduzieren und dann mit Variablen zu arbeiten einen anderen Fehler und nun funktioniert gar nichts mehr.
     
  2. sronny Erfahrener User
    Zu deiner Frage 1:

    Zur Erklärung:

    Grundsätzlich empfiehlt es sich für alles aussagekräftige Variablen zu vergeben. Zusätzlich empfehle ich dir - vorallem, wenn du größeres vor hast, dir die ungarische Notation anzuschauen. Hilft dir später leichter Fehler bei Fehlern bzgl. Typkonflikt zu finden.

    Außer, bspw., wenn du direkt später mal dynamische Controls erstellen willst, oder, wenn du Events programmieren willst (in Klassen), brauchst du für die Controls keine extra Variablen zu deklarieren. Um den Inhalt der Controls in einer Variablen zu speichern erstellst du eine Variable für den Typ, den das Control enthalten soll. Der Inhalt von Comboboxen oder Textboxen enthalten stets Text und können "nur von Stringvariablen" aufgenommen werden. Es sei denn, du konvertierst die in das entsprechende Format: bspw. mit Clng (für Long-Variablen, Cdbl(für Double Variablen) etc.

    In deinem Falle brauchst du eine Stringvariable - hier c1. Den Inhalt der Combobox(respektive Textbox) erhälst du über die Methode Value. Möglich ist aber auch das Kurzformat c1 = combobox1 , weil die Standartmethode Value ist. Du kannst auch
    If combobox.Value = "Text" Then
    das ganze abkürzen und musst nicht über eine extra Variable gehen. Brauchst du den Inhalt der Box öfters, nimm die Variable...

    Wenn du das Makro in einem Modul, Klasse oder Userform erstellst, musst du das Tabellenblatt bestimmen- das kannst du über
    Worksheet("Tabelle1") oder Sheets("Tabelle1") für das Arbeitsblatt Tabelle1. Musst du durch den Namen deines Arbeitsblattes ersetzen.

    Um den Inhalt einer Zelle zu verändern kannst du entweder .Range oder .Cells verwenden. Bei .Range gibts du meist die Koordinaten (nach Excelprinzip) an - also "A1" oder "C3" . Mit .Cells gibts du die relative Adresse an - also .Cells(1,1) entspricht
    der Zelle "A1" und .Cells(3,3) entspricht "C3". Ich habe mir angewöhnt, für die Manipulation einzelner Zellen .Cells zu verwenden und für Zellebereiche (bspw. A1-C3, also, als würdest du bspw. im Tabellenblatt die Zellen markieren und dann bspw. mit Rahmen versehen) .Range. Du kannst auch mit .Cells(1,1).Resize(1,5) Zellen markieren und für den Bereich irgendwas anstellen, aber das ist langsamer als .Range("A1:E1"), da dann jede Zelle einzeln bearbeitet wird...

    Möchtest du mit einem Objekt (hier in dem Falle die Zelle A1) mehreres anstellen, dann verwende With Objekt - hier
    With .Cells(1,1) Das geht auch schneller, als wenn du erst mit .Cells(1,1).Value den Wert zuweist und dann später nochmal auf die Zelle bezugnimmst um die Ausrichtung zu ändern.

    Den Wert einer Zelle veränderst du (oder erhälst du) mit Value.

    Das ganze noch mit End With und End If abschließen und fertig...

    Zur Frage 2:

    Irgendwo in deinem Programm stellst du ein, welches Bild als erstes sichtbar sein soll. Die Sichtbarkeit eines Controls veränderst du mit .Visible


    Hoffe habe jetz nix vergessen - ist schon bissl spät...
     
  3. Beverly
    Beverly Erfahrener User
    Hi,

    zu Frage 2: weshalb willst du das mit VBA machen? Schau dir mal auf meiner HP, Seite "Beispiele o. VBA" http://excel-inn.de/ohne_vba.htm das Beispiel "Bilder anzeigen" an.

    Bis später,
    Karin
     
    Beverly, 16. Januar 2016
    #3
  4. rusela Neuer User

    if then mit OptionButton und ComboBox

    Vielen Dank euch für die schelle und ausführliche Hilfe und die Erklärungen. Das hat mir sehr geholfen und funktioniert super.

    @Karin
    Diese Möglichkeit war mir noch nicht bekannt, ich werde das an anderer Stelle auch einsetzen, aber hier hängt noch einiges anderes an der Auswahl bei den Optionsbuttons ab, deshalb mit VBA.

    LG
     
Thema:

if then mit OptionButton und ComboBox

Die Seite wird geladen...
  1. if then mit OptionButton und ComboBox - Similar Threads - then OptionButton ComboBox

  2. If-Then-Else...Verständnisfrage zu Kriterium String > Zahl

    in Microsoft Access Hilfe
    If-Then-Else...Verständnisfrage zu Kriterium String > Zahl: Hallo, ich habe eine Funktion erstellt. Diese wird mit Werten gefüttert, generell Zahlen als String und "echte" Strings. Damit ich mit den Zahlen Vergleiche anstellen kann wandele ich diese mit...
  3. If Datum < Heute Then

    in Microsoft Excel Hilfe
    If Datum < Heute Then: Hallo Leute, ich stehe wieder vor dem Wald mit lauter Bäumen, vlt entdeckt ihr meinen Logikfehler: If UserForm.TextBox_Neuer_LT <> "" Then If UserForm.TextBox_Neuer_LT.Value <...
  4. IF THEN ELSE mit mehr als 2 Anweisungen nach Prüfung

    in Microsoft Excel Hilfe
    IF THEN ELSE mit mehr als 2 Anweisungen nach Prüfung: Hallo, kann mir bitte jemand weiterhelfen, ich möchte bei folgendem Skript folgende Dinge tun: 1. mindestens 2 Bedingungen zur Prüfung (das sollte mit "And" klappen?) 2. dann auch mehr als 2...
  5. Automatisch Email verschicken (If then?)

    in Microsoft Access Hilfe
    Automatisch Email verschicken (If then?): Hallo zusammen, ich starte ein neues Thema, da das im alten nicht mehr passte thematisch: altes Thema: http://www.ms-office-forum.net/forum...=330717&page=5 es handelt sich immer noch um...
  6. Kombinationsfeld sperren od. freigeben wenn Bedingungen erfüllt (if then else ...)

    in Microsoft Access Hilfe
    Kombinationsfeld sperren od. freigeben wenn Bedingungen erfüllt (if then else ...): Guten Abend liebe Forumsmitglieder Ich habe ein Kombinationsfeld Namens: "KatFKAuswahl" wo ich eine Liste an Auswahlmöglichkeiten in einem Formular (Namens: frm_Personen) habe. Damit man eine...
  7. "If...Then...Else"-Makroblock

    in Microsoft Access Tutorials
    "If...Then...Else"-Makroblock: "If...Then...Else"-Makroblock Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  8. If-Then-Abfrage nach Änderung einer Auswahl

    in Microsoft Access Hilfe
    If-Then-Abfrage nach Änderung einer Auswahl: Hallo, ich stehe etwas auf dem SChlauch und hoffe auch Unterstützung durch die Community: Ich habe eine Access-Datenbank, bei der es u.a. um die Planung von Lehrgängen geht. Es gibt eine...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden