Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Excel 2016 VBA für Profis

OK-Schaltfläche aktivieren

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Die OK-Schaltfläche soll nicht angeklickt werden können, solange keine Adresse ausgewählt ist. Dafür genügen ein paar Zeilen Code. Die Vorauswahl einer Adresse macht das Formular dann noch benutzerfreundlicher.

Transkript

Wenn ich diesen Dialog jetzt starte mit F5, sehen Sie, dass sowohl die "OK"-Schaltfläche grau ist, das ist deren Entwurfszustand, als auch hier bei Details keine Daten zu sehen sind. Das ist korrekt, weil hier nichts ausgewählt ist. Sobald ich jetzt irgendwas anklicke, werden die Daten hier angezeigt und dann wäre es eigentlich auch gut, wenn die "OK"-Schaltfläche aktiv wird, weil, im Moment jedenfalls, alles korrekt ist. Das möchte ich jetzt nachbessern. Das bedeutet erstens, der Klick hier drauf soll die "OK"-Schaltfläche aktivieren und zweitens, diesen Klick darauf spare ich mir. Den lasse ich direkt automatisch ausführen, dann sind wir auch diesen vorläufigen Text los. Also beim Abbrechen geht es um dieses Klick-Ereignis. Per Doppelklick hier komme ich in das Ereignis. Und Sie sehen hier im Moment, um diesen lästigen Fehler bei der Bildschirmdarstellung hier auf diesem Rechner zu vermeiden, habe ich ja ausdrücklich ein "Me.Repaint" eingebaut. Das ist bei Ihnen nicht nötig, nur dass Sie sich nicht wundern. Ich möchte, wenn jemand da drauf klickt, die "OK"-Schaltfläche aktivieren. Ich weiß aber jetzt schon, dass ich mehr machen muss als das. Ich werde also eine neue Prozedur schreiben, die ich mit "private" nach außen verstecken werde, also außerhalb des Formulars kann die keiner sehen, "private sub". Und die heißt bei mir so was immer wie "ButtonPruefen", natürlich ohne Umlaut. Und die sagt im Moment erstmal, der Button "OK" darf grundsätzlich "Enabled=True" werden, ohne weitere Vorbedingung. Und hier rufe ich dann einfach, nachdem ich das zugewiesen habe oder meinetwegen auch ganz am Ende, auf, dass diese Button-Prüfung ausgelöst werden soll. Das war es schon mal. Also nach dem Speichern mit F5. Wenn ich jetzt hier drauf klicke, noch deaktiviert, kann ich hier direkt auslösen, dass er aktiv ist. Und damit kann ich ihn auch anklicken. Es passiert ja noch nichts, mit dem "OK" kommt nur die Meldung. Und dann schließt er das Formular. So weit, so gut. Im Moment kann ich ungeprüft den Button immer sichtbar machen, sein Normalzustand ist ja "Enabled = False". Jetzt kommt der zweite Teil. Ich will auslösen, dass dieser Klick direkt beim Start stattfindet, also im "UserForm_Initialize" mache ich nichts anderes als, da kann ich jetzt hier mal ein bisschen aufräumen, wenn alles fertig ist, hier den Index zu setzen. Also für die "lstAdressen" mache ich als letztes einen "ListIndex". Dieser Index ist null-basiert. Wenn ich ihn also auf null setze, dann ist die erste Zeile markiert. Es wäre aber auch schön, wenn eine erste Zeile vorhanden ist, vielleicht gibt es ja gar keine Adressen. Also sollte ich vorher prüfen "If .ListCount", nämlich von dieser "lstAdressen" da oben, "0", nur dann darf ich was tun, also ein "End If" nicht vergessen. Das sollte man immer einbauen, selbst wenn Sie damit rechnen, dass immer was drin ist, kann das nicht schaden. Wenn es also wenigstens einen Eintrag gibt, setze ich den "ListIndex" auf null. Damit wird die erste Zeile markiert und das löst auch dieses Klick-Ereignis aus. Das muss man ausprobieren. Es gibt VBA-Versionen, z. B. in Access, bei denen das nicht so ist. Hier in Excel ist das so. Also "Speichern", Kompilier-Check und dann mit F5. Ohne dass ich jetzt was klicke, sehen Sie, dass sofort die erste Adresse markiert ist. Dort stehen auch die Details. Und damit ist auch die "OK"-Schaltfläche schon aktiviert. Für den Benutzer ist es einfacher, es ist die falsche markiert, als dass gar keine markiert ist. Denn dann müsste er erstmal gucken, warum ist das hier alles grau, was muss ich alles tun. So fühlt er sich sozusagen gut und Sie müssen es nicht extra überprüfen. Sie wissen, es ist mindestens einer angeklickt, es ist nämlich technisch nicht möglich, eine bereits angeklickte so wieder aufzuheben. Sie müssten eine Mehrfachmarkierung erlauben, damit das geht, aber hier ist nur eine Einfachmarkierung erlaubt. Also ab jetzt kann Ihr Code sicher sein, es muss dort etwas markiert sein und dann bleibt auch die "OK"-Schaltfläche aktiv.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!