EXCEL 2016 VBA - Change Ereignis

Diskutiere und helfe bei EXCEL 2016 VBA - Change Ereignis im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo, mein Problem: liegt bei Excel 2016 bei einer VBA Programmierung. Ich habe einen Fehler bei einem Change Ereignis. Ich möchte bei der Auswahl... Dieses Thema im Forum "Microsoft Office" wurde erstellt von HainerMelchert, 5. September 2017.

  1. EXCEL 2016 VBA - Change Ereignis


    Hallo,

    mein Problem: liegt bei Excel 2016 bei einer VBA Programmierung.

    Ich habe einen Fehler bei einem Change Ereignis. Ich möchte bei der Auswahl in einer Combobox die Vervollständigung automatisieren.

    Das hat soweit funktoniert für die Dropdown-Auswahl. Lösche ich jedoch aus dem Feld die erste Eingabe, kommt ein Abbruch des Formulars.

    Ich denke, das liegt daran, dass aus der Auswahlliste kein Element ohne Zeichen exisitiert. Wie kann ich dieses Problem beheben?

    Hier ist der Code, den ich verwende:

    Private Sub cboGesehen_Change()
    ' Wenn der Name in Gesehen geändert wird, wird automatisch die Abteilung angepasst.

    Me.cboGesehen.SetFocus
    a = Me.cboGesehen.ListIndex
    Me.cboAbteilung4.Value = Me.cboGesehen.List(a, 1)

    End Sub



    Schöne Grüße Hainer
     
  2. Andreas Killer Win User

    EXCEL 2016 VBA - Change Ereignis

    Soll ich hier mit einer if Anweisung arbeiten? Aber dann fehlt sicher das "Then" und die Bedingungen, dient das nur als Idee deinerseits?

    --------------------------------------------------------------------------------------

    Nee, IIF gibt es in VBA wirklich.

    Wie auch immer, das Problem liegt vermutlich an einer ganz anderen Stelle... lad die Datei mal auf einen Online File Hoster wie www.dropbox.com und poste den Download-Link hier, dann kuck ich mal.

    Andreas.
  3. Andreas Killer Win User

    EXCEL 2016 VBA - Change Ereignis

    Wo sollen wir da anfangen... also Du hast da ein Verständnis-Problem, die Dinger funktionieren anders als Du denkst.

    Generell: "Formular abbricht"... hast Du es vorher irgendwo festgetackert und nun fällt es von der Wand? >:)

    Es kommt ganz offensichtlich zu einem RTE (Run Time Error = Laufzeitfehler) und der hat auch eine Nummer und eine Beschreibung, damit kann ich was anfangen und ggf. Rückschlüsse auf die Ursache ziehen. Aussagen ala "funktioniert nicht" sind nutzlos.

    Dann solltest Du den Debugger benutzen und einen Breakpoint in Deine Change-Ereignisroutine legen, dann kannst Du die Zeile ermitteln. Weiterhin ist diese Einstellung (Extras\Optionen) dabei hilfreich, weil eine Userform (Um die es hier geht, doer auch nicht?)
    ein Klassenmodul ist:


    [​IMG]


    In einem Change-Ereignis ein SetFocus des gleichen Controls aufzurufen ist unnutz, weil das Control schon den Focus hat. Außerdem löst dieser Aufruf auch wieder ein Ereignis aus, welches zur Folge haben kann das weitere Ereignisse ausgelöst werden...

    Die ListIndex-Eigenschaft einer ComboBox hat per Default -1 = kein Eintrag, ansonsten eine Nummer von 0 bis Count-1

    Private Sub cboGesehen_Change()

    'Wenn der Name in Gesehen geändert wird, wird automatisch die Abteilung angepasst.

    With Me.cboGesehen

    Me.cboAbteilung4.Value = IIf(.ListIndex < 0, "", .List(a, 1))

    End With

    End Sub

    Bedenke das auch dieses wieder das Change-Ereignis des Me.cboAbteilung4 auslöst.

    Ich mutmaße mal das "cboAbteilung4" auch eine ComboBox ist... je nachdem welche Einstellungen die hat kann das natürlich zur Folge haben das Du einen weiteren RTE bekommst... (wenn der Eintrag nicht vorhanden ist).

    Aber was macht das ganze für einen Sinn????? Du hast eine ComboBox mit "xxx" und dann schreibst Du das "xxx" in eine 2te Combobox... wozu soll das gut sein?

    Andreas.
  4. HainerMelchert Win User

    EXCEL 2016 VBA - Change Ereignis

    Hi Andreas,

    danke für deine Antwort.

    ja da liegt sicher ein Verständnisproblem vor. Ich bin kein ausgebildeter Informatiker / Programmierer und versuche das selbst zu lernen, mit Hilfe von Videos, Anleitungen oder auch dem Communityforum.

    Es geht auch um eine Userform:


    [​IMG]


    Ich bekomme einen Laufzeitfehler:


    [​IMG]


    Die Aufgabe ist nicht den selben Eintrag von der einen in die nächste Combobox zu schieben.

    cboGesehen greift für die Dropdown-Auswahl auf eine Tabelle zu. In der zweiten Spalte dieser Tabelle sind die Abteilungen eingetragen für die entsprechenden Namen aus der ersten Spalte.


    [​IMG]


    Wenn der Name der Person in cboGesehen eingetragen wird, soll in die cboAbteilung4 gleich die richtige Abteilung der Person ergänzt werden.

    Genau das funktioniert auch, solange ich die Auswahl über das Dropdown-Menü treffe, oder gleich den richtigen Namen eintippe.

    Wenn ich nun den bereits eingetragenen Namen wieder löschen möchte, weil doch nicht Mustermann sondern Musterfrau in cboGesehen eingetragen werden muss, wird durch das Löschen des Namens der RTE ausgelöst.

    Den Code von dir verstehe ich leider nicht, insbesondere die Zeile:

    Me.cboAbteilung4.Value = IIf(.ListIndex < 0, "", .List(a, 1))

    Soll ich hier mit einer if Anweisung arbeiten? Aber dann fehlt sicher das "Then" und die Bedingungen, dient das nur als Idee deinerseits?

    Danke und schönen Gruß

    Hainer
  5. Andreas Killer Win User

    Steuerelement im Wenn Funktion ausblenden, geht das?

    Besten Dank für deine Antwort, irgendein Trick um den selben Effekt zu erzielen fehlt dir nicht zufällig ein?
    Das geht alles nur mit VBA.

    Wenn Deine Zelle einen Wert enthält, dann kannst Du diese Zelle mit dem Change Ereignis überwachen.

    Enthält Sie jedoch eine Formel, dann musst Du das Calculate Ereignis benutzen, welches jedoch Dir keine Auskunft gibt welche Zelle berechnet wurde.

    Bei den Steuerelementen wäre ein Kontrollkästchen eine schlechte Wahl, weil es keine Ereignisse unterstützt.

    Eine Checkbox hat z.B. ein Click-Ereignis, in dem kannst Du dann machen was Du willst.

    Reichlich Aufwand nur für einen eye-catcher.

    Andreas.
  6. Ardona_982 Win User

    Excel 2010 – Zahlen automat. doppelt eintragen lassen

    Danke!

    Worksheet_Change-Ereignis per VBA sagt mir jetzt aber gar nichts.

    Was ist das und was müsste ich da genau machen?

    Ich finde via google leider nur Problembesprechungen in dem Zusammenhang:

    https://www.google.ch/?gws_rd=ssl#q=Worksheet_Change-Ereignis+excel+2010
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

EXCEL 2016 VBA - Change Ereignis - Microsoft Office

Die Seite wird geladen...

EXCEL 2016 VBA - Change Ereignis - Similar Threads - EXCEL 2016 VBA

Forum Datum

VBA Excel - Ereignis WorkbookActivate wird nicht ausgelöst

VBA Excel - Ereignis WorkbookActivate wird nicht ausgelöst: Hallo,ich bin auf ein Problem gestoßen, das in Excel 2016 und Excel 365 auftritt - wahrscheinlich erst seit einem Update in diesem Jahr: Das Ereignis WorkbookActivate wird in bestimmten Fällen...
Microsoft Office 27. August 2023

Excel VBA

Excel VBA: Hallobenutze schon länger ein selbst geschriebenes Addin eine Berechnungsfunktion. Diese ist bei den AddIns Datei > Optionen > AddIn auch angezeigt und funktioniert auch über benutzerdefinierte...
Microsoft Office 9. Juni 2022

Change mode track changes in Word 2016

Change mode track changes in Word 2016: [moderator note: Google translation:]Hello,, we have a question about change mode track changes in Word 2016.We currently have the problem that as soon as we protect a Word document Restrict...
Microsoft Office 23. August 2021

Excel - VBA

Excel - VBA: Hallo Zusammen! Kann mir jemand sagen, wie ich es einfacher gestallten kann? Ich muss dies von Zeile 2 bis 1915 machen. LG Nikola Sub WennDann If Range"G2" = "" Then Range"D2" = Range"H2"...
Microsoft Office 8. Oktober 2020

Excel 2016 VBA.

Excel 2016 VBA.: Hallo! Folgendes Problem: Ich hab ein kleines Makro geschrieben welches die Anzahl zweier Tabellenblätter auslest und die Zeilen Anzahl in Tab1 an Tab2 anpasst. Der Hintergrund ist in Tab1 ist...
Microsoft Office 20. Januar 2020

excel vba

excel vba: hi ich habe: Worksheets("test2").Range("b3").Copy Destination:=Worksheets("Mdax").Range("b20") was schön und gut funktioniert nur kann ich damit auch die Zielzelle definieren? In meinem...
Microsoft Office 24. Juli 2019

Excel 2016, VBA

Excel 2016, VBA: Ich habe ein VBA-Modul , in dem ich möglichst große Arrays brauche, erhalte aber schon bei 0,42GB die Fehlermeldung "Nicht genug Speicher". In Windows 7 bekam ich diese Meldung erst bei >2GB....
Microsoft Office 28. Oktober 2016
EXCEL 2016 VBA - Change Ereignis solved
  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.