Also, ich mache ja schon seit Jahren auch recht (OK chaosmäßige aber funktionierende) komplexe Excel-Kalkulationen. Konnte bei diesen Ergüssen mit viel Gebastel bis heute VBA weitestgehend vermeiden. Irgendwann geht das aber nicht mehr und man nimmt sich der Sache dann doch mal an. Nach unzähligen Blogs und Vlogs und Anfänger-Tutorials bin ich nun bei Kai Weissmann gelandet. Und meiner persönlichen Meinung nach ist er der Beste. Hochauflösende Videos, sehr gute Vertonung, informativ animiert, eine ruhige, unglaublich angenehme Vermittlung seines Wissens. Absolut motivierend tiefer in die Materie einzusteigen. Der Spaß ist ja letztendlich, wenn am Ende ein gewünschtes Resultat erscheint und man seine Mühen belohnt bekommt. So ne Art Erfolg halt. OK zugegeben, als Einsteiger freut man sich über kleine Erfolge, dann schaut man solch ein Video und bekommt drastisch vermittelt, dass man eigentlich noch gar nichts kann 🙂. Ist mir ein Rätsel, wie man aus dem Stegreif sooo schnell, sicher und fehlerfrei programmieren kann und dabei alles noch lückenlos beschreibt. Mir fehlt ja noch ne Menge Wissen zum grundlegenden Aufbau solcher Programmierungen - also sozusagen der Urschleim, den die meisten UA-camr gar nicht mehr auf dem Schirm haben, weil es für sie wie unbewusstes Zähneputzen ist. ABSOLUTER RESPEKT !!! DAS nenne ich mal professionell.👌💪👍👍👍
Dieses Video und die daraus entstandene Excel-Datei ist perfekt. Ich habe nicht nur sehr viel gelernt über Excel-VBA, sondern konnte Step by Step alles nachvollziehen und sogar bereits anwenden. Vielen lieben Dank für Deine Mühe 👍👍👍
Vielen Dank für deinen netten Kommentar. Es freut mich sehr, dass dir meine Videos gefallen. Ich wünsche dir weiterhin viel Erfolg bei deinen Projekten.
Vielen Dank endlich ein richtig gut erklärtes Video welches man auch nachvollziehen kann. Jetzt fehlt nur eines, wie man in dieser bestehenden Listbox nach mehreren Spalten suchen kann, so wie in dem Video: "Tabelle ganz einfach durchsuchen mit der Suchfunktion". Das wäre sehr interessant denn ich habe versucht es mit dem Video: "Suchfunktion für Listbox" nachträglich einzubinden doch ich habe immer wieder Fehler gemacht und trete auf der Stelle. VG und bleiben Sie so denn die Tutorials sind spitze!!
Hey Verrückter Bastler! Danke für dein Feedback. Grundsätzlich sollte eine Kombination der Komponenten möglich sein. Jedoch hängt das auch oft mit der Methode zusammen, mit der wir die Listbox befüllen. Sschau dir dazu mein Video "Listbox befüllen" gerne an, in dem ich die Methoden und Unterschiede erkläre: ua-cam.com/video/1EHq_JLHKlI/v-deo.html Hoffe das hilft dir weiter. Lg, Kai
Du erklärst das echt super. Hab bisher noch nie mit vba gearbeitet und hat alles auf Anhieb geklappt wie du es erklärt hast. 👍 Hab jetzt noch aus einem anderen tutorial von dir versucht eine Suchfunktion in die gleiche listbox zu erstellen aber scheitere kläglich. 😂
Vielen Dank für deinen netten Kommentar. Es freut mich, dass du dich durch mich an dein erstes VBA Projekt wagst. Lass dich von Fehlermeldungen und Rückschlägen nicht davon abbringen, dein Projekt zu verwirklichen. Oft sind es Tippfehler die zu Fehlermeldungen führen. Schaue dir am besten mein Video mit den 5 Tipps für Einsteiger an: ua-cam.com/video/0aYBM8paMZU/v-deo.html Viel Erfolg bei deinem Projekt.
@@KaiWeissmann Es hat geklappt. ^^ Danke für die ganzen hilfreichen Videos. Musste zwar von der row. Source zum befüllen wechseln auf die add item Alternative aus einem anderen Video von dir. Aber dann hat es mit der suchfunktion geklappt 🤭✌️vielen dank noch mal.
Und wieder großen Dank für das Video! Mich würde bei diesem Thema auch sehr interessieren wie beim 'click event' verhindert werden kann, dass doppelte Einträge angelegt werden. Sprich es soll eine Prüfung erfolgen, ob der Eintrag bereits vorhanden ist.
Wie immer super Video und sehr verständlich erklärt. Könntest du vielleicht mal ein Video machen, in dem man ein Datum mittles Anklicken und Auswählen in eine Eingabemaske einfügt, anstatt es komplett in ein Textfeld zu schreiben? Vielen DAnk für deine tollen Videos - weiter so!
Hallo Kai, tolle Videos, mit deren Hilfe ich schon viele Projekte erfolgreich umgesetzt habe. Nun habe ich dieses Video nachgebaut; aber mit einer intelligenten Tabelle. Dabei habe ich mich auch an Deinem Video "UserForm Daten in Tabelle schreiben" orientiert. Aber beim Anlegen eines neuen Datensatzes mit der .ListRows.Add-Methode bekomme ich immer einen Laufzeitfehler "Die Methode Add für das Objekt ListRows ist fehlgeschlagen". Und im Netz habe ich keine brauchbare Lösung gefunden.
Moin Heiner! Das Problem liegt in der Methode zum Einlesen in die Listbox. Dasselbe Problem hatte ich auch. Lässt sich lösen, wenn du die Listbox mit einer Range oder einem Array befüllst (siehe Kais Video zum Befüllen von Listboxen). 😉
Hallo, Kai! Geschafft! SPIT-ZEN-VIDEO!!! Hat totalen Spaß gemacht, das Projekt nachzuvollziehen und ab und zu durch "eigenständig kreative Fummelei" die notwendigen Anpassungen an meine Datenbank (=intelligente Tabelle) vorzunehmen. Als "ganz besonders" empfand ich den "Trick" mit der "Property-Let-Prozedur" und dem, was damit zusammenhängt (also Definieren von neuen Eigenschaften eines Objektes, Parameterübergabe etc.). Wäre es vielleicht eine gute Idee, zu dieser Thematik ein eigenständiges Video zu erstellen? Ich werde noch versuchen, dieses Tool erweitern, und zwar dadurch, dass ich alternativ zum Löschen noch das Archivieren des gewählten Datensatzes (= Speichern auf anderem Worksheet in anderer intelligenter Tabelle) anbiete. Dir nochmal den herzlichsten Dank! Achim!
Hey Paul-Peter Pan! Es freut mich, dass du die Anwendung gleich deinen eigenen bedürfnissen entsprechend umgesetzt hast. Danke für den Tipp mit dem eigenständigen Video. Ich nehme das gerne in die Ideensammlung mit auf. Lg, Kai
Hallo Kai, meine Frage ist, wenn ich die Datenbank auf MS Teams lege und meine Mitarbeiter dort eintragungen machen, wird die ID dann angepasst? also Mitarbeiter 1 fängt morgens mit der 5 an und Mitarbeiter 2 ebenfalls. wie wird das synchronisiert? gibt es dafür lösungen? Viele Grüße
Hallo Kai, mal wieder einfach ein tolles Video. Freue mich jedes Mal was neues über VBA zu lernen. Meine Frage : sobald man die Werte von der UserForm in Tabelle eingefügt werden, habe ich folgendes Problem, die Zeilen Höhe werden zum vorherigen leider nichts angepasst. Muss dann jedes Mal die Zeilen Manuel anpassen. Hättest du hierfür eine Lösung, sowie bei deinem Eingabeformular Video ? LG Alex
Hallo Kai, erst ein Mal ein prima Video, gut und verständlich erklärt. Ich habe für mein Projekt "Haushaltsbuch mit Excel VBA" angewendet, doch ich musste feststellen, dass der Neueintrag nicht in meine intelligente Tabelle übernommen wird, sondern alles außerhalb der intelligenten Tabelle eingetragen wird. Hast du vielleicht eine Idee? Wir sprechen ja nur das Tabellenblatt und nicht die intelligente Tabelle auf dem Tabellenblatt an. LG Stine
Warum funktioniert das eigentlich nicht, wenn man den Tabellenbereich in dem Blatt "Personal" als intelligente Tabelle markiert? Dann gibt es einen Run-Time-Error beim hinzufügen einer Zeile.
Hallo Kai, sehr gut erklärtes Video, mal wieder ;-) allerdings hatte ich mich erst gefragt wieso du deine Haupttabelle nicht in eine intelligente Tabelle formatiert hast. Nun weiss ich es, es geht irgendwie nicht. Mein Excel stürzt jedesmal ab sobald ich aus der Userform etwas in die intelligente Tabelle speichern möchte.... hast du dafür einen Lösungsansatz???
Ich schau mir nur noch deine Videos über Excel VBA an, es sind die Besten. Eine kurze Frage, wie setze ich [@Variable] ein um im TextBody einer E-Mail variabel zu sein ??
Klasse Video.... Wie all deine Videos.... Einfach nur Top!!! Mich würde auch interessieren, wie man über eine oder mehrere TextBoxen suchen kann und das Such-Ergebnis bearbeiten kann. Mit Me.Listbox funktioniert es leider nicht!
Tolle Video, und wie immer alles nachvollziehbar! Super! Ist es möglich wenn man beim bearbeiten speichert klick, die ausgewählte Zeile in der Listbox wieder zu makieren?
Allerbest... super gemacht (-: wie immer :-), Respekt! ich baue es gerade für unsere Firma nach und frage mich was kann ich machen, wenn jemand in mehreren Abteilungen arbeitet? Spätere Suchergebnisse nach Abteilungen führen zu nicht korrekten Ergebnissen...? Doppelt anlegen führt zu zwei ID's für einen AN
Das geht natürlich. Du könntest mit einer intelligenten Tabelle arbeiten, und den neuen Datensatz immer oben hinzufügen. Siehe dazu mein aktuelles Video zum Thema intelligente Tabellen: ua-cam.com/video/ey3xPAHNO2g/v-deo.html Lg, Kai
Hallo Kai, wir würde das eigentlich aussehen, wenn die UserFormPersonal auf eine intelligente Tabelle zugreifen würde, wie Du Sie zum Beispiel in deinem Tutorial "Datenbank erstellen mit Eingabemaske" hinterlegt hast. Dim tbl As ListObject set tbl = shPersonal.ListObjects(1) Set tbl = tbl Offset(1, 0).Resize.Count -1) und in er With Anweisung von rng auf tbl ändern funktioniert nicht - wie geht das?
Hallo Kai! Super Video. Wieder was dazugelernt. Frage zur UserformBearbeiten: Welchen Code muss man dort für ein eingefügtes Drehfeld/SpinButton verwenden, um die Zeilen des Tabellenblattes umzublättern? Wäre für mich eine sinnvolle Addition, wenn man mehrere Datensätze ändern will/muss. Danke
Hallo Kai, Das ist ein sehr umfangreiches Video, aus dem ich einiges umsetzen konnte. Danke dafür. Aber eine Frage habe ich dennoch, ich habe eine Datenbank, in der in einigen Spalten Formeln stehen. Mit der gezeigten Methode bekomme ich sie nicht in die nächste Zeile übernommen. Hast du für solch einen Fall auch schon ein Video gemacht? Wenn nicht, währe das sicher auch ein Video wert. VG
Guten Morgen, Kai! Ich habe dieses Video jetzt zweimal aufmerksamst gesehen und nachverfolgt und wie andere hier im Kommentarbereich auch dasselbe Problem: Ich habe als Grundlage eine Datenbank, die ich als intelligente Tabelle formatiert habe. Du hast nur aus Deinen Verweistabellen intelligente Tabellen gemacht, die Datenbank selbst aber als "einfache" Tabelle belassen. Das ist der Grund dafür, dass es Probleme beim Ansprechen und Bearbeiten der Datenbanktabelle gibt. Könntest Du - bitte - diesem Video eine kurze Erweiterung zufügen (oder hier im Kommentarbereich dazu eine "Fußnote" hinterlassen), wodurch klar wird, welche Codeänderungen notwendig werden, wenn man die Datenbank als intelligente Tabelle formatiert hat? Möglicherweise hat es ja einen trefflichen Grund, weshalb Du hier auf eine intelligente Tabelle verzichtest. Den zu erfahren(,) wäre sicherlich auch wichtig. Hintergrundinfo: Ich habe mit Hilfe Deines Videos "Datenbank erstellen mit Eingabemaske in Excel VBA" (dort arbeitest Du für die Datenbankoperationen nicht mit einer Userform, sondern mit einem Extra-Sheet) alle entsprechenden Vorarbeiten getroffen, die auch wunderbar funktionieren. Nun würde ich gerne statt mit einem Extrasheet mit einer Userform arbeiten, bekomme aber Fehlermeldungen, weil ich ja dort (wie Du auch) die Datenbank als intelligente Tabelle formatiert habe. Mir ist klar, dass Du unmöglich alle Anfragen, die sich unter Deinen Videos befinden, beantworten kannst und willst. Vielleicht gibt es hier eine Ausnahme deshalb, weil ich ja nicht der einzige bin, der dieses Problem hat. Beste Grüße Achim
Hey Paul! Danke für dein Kommentar. Eine Intelligente Tabelle anzusprechen geht ja relativ einfach mit .Listobject Also eine Neue Zeile mit ListRows.Add hinzufügen, dann der Variablen zuweisen (rows.count - headerrowrange) und befüllen Hoffe das hilft dir weiter. Lg, Kai
@@KaiWeissmann Danke, Kai, für diese schnelle Antwort. Ich hoffe, ich finde im Code all die Stellen, an denen eine solche Änderung notwendig wird. Einen schönen Tag noch!
Klasse Video, super erklärt. Allerdings hätte ich noch eine Frage hierzu. Gibt es eine Möglichkeit einer Suchfunktion in der Datenbank? Bei sehr vielen Einträgen ist die Suche eines Datenbankeintrags etwas mühselig. Gleiches wäre für das Lagerhaltungsprogramm ebenfalls sinnvoll. Gruß und bleib gesund.
Hey Hajo! Danke für dein Feedback. Vielleicht hilft dir dieses Video, in dem wir eine Suchfunktion für Listboxen erstellen. - ua-cam.com/video/GkzXUKUxwUs/v-deo.html Lg, Kai
Hallo Kai, vielen Dank für dieses tolle Video.!! Eine Frage aber habe ich: Ich habe in meiner Userform 2 combobox wobei die 2. sich variabel zur 1. verhalten soll. Bei klassischen Dropdown in excel löse ich das ja mit intelligenten Tabellen und der indirekt Funktion. Wie aber hier? Viele Grüße
Hallo Hans, soweit ich dich richtig verstehe, möchtest du abhängige ComboBoxen erstellen. Dazu habe ich hier schonmal ein Video gemacht: ua-cam.com/video/fUtTri4Bdg8/v-deo.html LG Kai
Hallo Kai, vielen Dank für das Video !! super verständlich erklärt und die Möglichkeit der Bearbeitung in einer neuer UserForm ist perfekt :) Ich bin ein kompletter Anfänger in VBA und hätte da noch zwei (wahrscheinlich einfache :D ) Fragen. 1. Die Fenster sind auf deinem video standardmässig mit abgerundeten Ecken. Bei mir sind die einfach eckig. Wie ändere ich denn das ? finde abgerundet deutlich schöner. 2. Ich möchte, dass neue Daten immer bei ID 1 (oder letzte) !oben! hinzugefügt werden. Wie wäre denn der code der Befüllung dafür zu ändern ? * Die Einblendung der Tasten ist genial ! Schöne Grüße Oleg
Abgerundete Ecken sind ab Windows 11 Standard. Dazu gibt es keine eigenen Einstellungen. Daten an beliebiger Stelle einfügen geht am besten mit einer intelligenten Tabelle. Dazu kommt demnächst ein Video, in dem ich auch zeige wie du neue Zeilen/Datensätze an beliebiger Stelle einfügen kannst. Kurzinfo: Listrows.add 1 Aber dazu eben dann ausführlich im nächsten Video mehr. Lg, Kai
Sehr gut Arbeit dank viel mal. eine Frage: was passiert wenn man der Tabelle Shpersonal zu Tabelle ändern. bei mir kommt eine Fehler Meldung und ich kann nicht neue Datai eingeben.
Ein sehr schönes Video und alles, wie immer, verständlich erklärt. Beim umsetzen mit meine eigene Userform bekomme ich allerdings immer einen Laufzeitfehler und den Hinweis "Die Methode Value für das Objekt Range ist fehlgeschlagen. Hast Du hier eventuell einen Hinweis für mich. Vielen Dank und VG Matthias
Hallo Kai, sehr schön erklärt dein Video schön zum mitmachen 👌 hab nur ein Problem: Erstelle die vbas immer auf Windows und nutze sie dann aber auf Mac excel - und da ist ein Problem mit RowSource kannst du mir da helfen? Besten Dank Gruß Andreas
Zum Befüllen von Listboxen habe ich ein Video mit den unterschiedlichen Methoden: ua-cam.com/video/1EHq_JLHKlI/v-deo.html Hoffe das hilft dir weiter. Lg, Kai
Hallo Kai, wie immer tolle Videos. Hab bis 37:35 alles mitgemacht. Bekomme aber dann nach F5 - Die Fehlermeldung "Laufzeitfehler '9': Index außerhalb des gültigen Bereichs. Private Sub UserForm_Initialize() 'ID befüllen TextBoxID.Value = worksheetfunction.max(shpersonal.Columns(1)) + 1 'ComboBoxen befüllen ComboBoxStandort.List = shverweise.ListObjects("tblStandort").DataBodyRange.Value ComboBoxStandort.ListIndex = 0 ComboBoxAbteilung.List = shverweise.ListObjects("tblAbteilung").DataBodyRange.Value ComboBoxAbteilung.ListIndex = 0 'OptionButtonVollzeit auswählen optionButtonVollzeit.Value = True End Sub Ich find den Fehler nicht. Komme hier nicht mehr weiter. Was hab ich falsch gemacht.
Geh mal deine UserForm_Initialize mit F8 Zeile für Zeile durch. Sobald der Fehler kommt, weißt du in welcher Zeile der Fehler ist und vielleicht erkennst du den Fehler dann
@@SanceZZ82 Danke für die Hilfe. Hab ich getestet: Bleibt bei dieser Zeile "ComboBoxStandort.List = shverweise.ListObjects("tblStandort").DataBodyRange.Value" stehen. Hier öffnet sich die Fehlermeldung. "Laufzeitfehler '9': Index außerhalb des gültigen Bereichs". Ich kann aber nichts falsches erkennen, die Zeile ist identisch, wie sie es Kai geschrieben hatte.
@@SanceZZ82 Ja, dass stimmt auch überein. Das Problem gibt es, nachdem vorher die UserformNeu exportiert wurde, dann die UserformNeu in UserformBearbeiten umbenannt, dann die UserformNeu wieder importiert wurde.
Habe soeben den Fehler gefunden. Im Tabellenblatt "Verweise" hab ich Nameensmanager nachgesehen, und hatte ich Tabelle1, Tabelle2, tblStandort und tblMarketing. Hab dann die beiden tbl gelöscht, die Tabelle 1+2 konnte man nicht löschen, dann habe ich die beiden Tabellen mit "Bearbeiten" diese zu den "tbl" umbenannt. Jetzt funktioniert es. Und jetzt kann ich wieder fortsetzen ! Super. Learning by doing.
Hallo Kai, danke (!!) für deine ausführliche Anleitung, welche ich für mein Projekt umsetzen konnte. Nun möchte ich zusätzlich einen Filterfeld einsetzen (wie in deinem Video "Listbox suche"). Hier wird aber die Listbox anders befüllt und beim Ausführen des Codes bleibt mein Programm immer beim Listbox leeren, im Befehl Me.ListboxName.Clear hängen. Wie müsste der Code aussehen, wenn ich aufbauend auf diesem Video einen Filter setzen möchte? Hast du noch ein auf diese Video aufbauende Anleitung? Vielen Dank im voraus!
Hallo Kai. Ich hoffe es geht dir gut und dass du ein guten Start in das neues Jahr hast. Ich habe das Problem, dass in eine Zeile des Formulars werden Zahlen mit Dezimalzahlen eingetragen und wenn diese in die Zeile der Tabelle gespeichert sind, ist die Komma nicht erkannt und damit wird es in die Tabelle nicht berechnet, bzw. es gibt mir ein Fehler. Das Problem habe ich auch mit "/" fürs Datum. Irgendwie die Symbole die in das Formular eingetragen sind, werden in die Tabelle nicht erkannt und damit wird die Information als falsch erkannt, je nach der jeweiligen Formate je Spalte. Wenn ich die Information direkt in der Tabelle eintrage, habe ich diese Probleme mit den Symbolen nicht. Weißt du warum passiert so was mit dem Formular? Das Problem hat mich heute verrückt gemacht. Vielen Dank im Voraus. LG aus Laufenburg
Das kommt wohl daher, dass aus der Textbox die Zahlen als Text übergeben werden. Arbeite am besten hier mit Format: z.B. A1.Value = Format (WERT, "##,##0.00") Hoffe das hilft dir.
@@KaiWeissmann Hallo Kai. Vielen lieben Dank für deine Antwort. Für Zahlen hat es mich geholfen, da ist etwas ausversehen hatte. Leider habe ich das Problem noch mit das Datum. Ich danke dir vielmals, dass du dir die Zeit genommen hast, um mich zu antworten. Das ist richtig nett! Ganz viele Grüße aus Laufenburg
Hey habe eine Kurze Frage, und zwar zu deinem Speicher Button. Ich habe eine Intillegente Tabelle generiert. Wenn ich aber deinen Button Speicher Code benutze schreibt er den Wert unter die Tabelle und nicht wie es sein sollte in die erste leere Spalte. Vllt kann mir hier jemand weiterhelfen :)
Hallo Kai, nach dem ausführen vom Doppelklick und nachdem das Bearbeitungsfenster geschlossen wurde, dreht sich der Windows-Mauszeiger ununterbrochen (Loading Indicator) bis man mit der Maus wieder über die Listbox fährt. Weißt du woran es liegt? Ist auch in deinem Video zu sehen an Stelle @56:51
Wenn ich den Markos ausführe und einen "Neuen" Eintrag einfügen möchte, bekomme ich eine Fehlermeldung (Laufzeitfehler) und excel stürzt ab. Habe zwar einige Anpassungen durchgeführt aber funktioniert leider immer noch nicht
Tolles Video - danke dafür. Habe festgestellt, wenn die Personaltabelle leer ist, bekommt man den Laufzeitfehler 1004. Sobald ich nur eine Spalte befülle, funktioniert alles. Wie könnte man diesen Fehler abfangen bzw. wie funktioniert das, wenn die Tabelle leer ist. Danke für die Rückmeldung. Gruß Volker
Hallo, freut mich, dass dir das Video gefällt! Den Fehler kannst du abfangen, indem du mit der If-Bedingung prüfst, ob die Zellen in der Tabelle befüllt sind. Falls nicht, dann überspringst du den fehlerhaften Codeteil. LG Kai
Hallo Kai, ich hab das jetzt mal nachgebaut und irgendwie sagt mir mein Excel 2016 dass bei der Userform Bearbeiten die Variable "neueAktuelleZeile" nicht definiert ist. Kann es möglich sein, dass ich noch etwas freischalten muss für die Public Variablen???
Hallo Kai erstmal danke für das super Video das mir sehr geholfen hat! Ich hab ein kleines Problem und finde nirgends eine Lösung: Meine Exceltabelle und die Listbox übernehmen nach dem Bearbeiten die neuen Werte, die userform leider nicht. Beispiel: ich ändere den Namen von Lisa auf Lisatest. Die Tabelle und die Listbox passen sich an. Ich klicke auf die Zeile um das 'test' zu entfernen und es steht weiterhin nur 'Lisa' im Namen. Hast du eine Vermutung wo dieser alter Wert herkommen könnte? Ich wäre sehr froh über eine Antwort. Viele Grüße
Du kannst dir die fertige Anwendung hier Downloaden: vbatrainer.de/eingabemaske-mit-datenbank/ Und den Code vergleichen. Ich hoffe das hilft dir. Lg, Kai
Hallo Kai, was für ein tolles Thema, suche ich schon sehr lange nach.echt Weltklasse. Herzlichen Dank für die Arbeit. Funktioniert alles echt toll so wie es soll, aber Ich kann etwas so überhaupt nicht nachvollziehen, heißt ich verstehe es nicht. Es geht um die Aktualisierung der Listbox: Der Code zum Aktualisieren der Listbox wird mit dem Button neu durch den Call Befehl ausgeführt, wieso funktioniert die Aktualisierung aber, wenn ich in einer anderen Userform den Button Speichern drücke, wo dementsprechend kein Code existiert. Ich würde den Code dort platzieren, was meines erachtens Logisch ist. lg Gerhard
Hallo Gerhard, ich habe es in diesem Video so gehalten, dass alles was die ListBox betrifft, in der ursprünglichen UserForm gespeichert ist. Du kannst es auch in den Speichern-Button der anderen UserForm machen, das vergrößert allerdings den Code. Hoffe die Erklärung hilft dir weiter. LG Kai
Guten Abend Herr Weissmann, vielen Dank für das Video, habe soweit alles hinbekommen. Leider funktionieren die Formeln im Tabellenblatt nicht mehr, wenn man in die Textbox der UserForm ein Datum schreibt. Habe schon mit CDate versucht, aber funktioniert leider nicht. Könnten Sie mir sagen, wie ich den Code anpassen muss? LG
Guten Tag Herr Weissmann, mal wieder ein hilfreiches Video, Super Klasse und Danke dafür. Ich versuche dadurch zu lernen und es in meinen Projekten umzusetzen. Ich stehe aber vor einem Problem: Bei 43:05 werden ja die einzelnen Zellen "Befüllt", u.a. mit dem Ergebnis der OptionButton.(hier Vollzeit oder Teilzeit). Ich habe aber 3 OptionButton (als Groubname zusammengefasst) Wie muss ich dann die .cells Anweisung schreiben, wenn ich 1, 2 oder 3 als Ergebnis haben möchte? Vielen Dank im voraus
Sehr cool! Wie würde es sich verhalten wenn die man eine Liste mit 52 Datensätze anstatt der 11 im Video hat? Ist es dann möglich in den Datensätzen zu scrollen? Oder könnte man diese Funktion einbauen?
mal wieder ein super cooles Video zum Lernen.. Weiter so :) ich würde gerne wissen wie ich die zu bearbeitende Zeile (den Wert) in eine Globale variable übergeben kann, damit ich diese über ein Sub in einem anderen Modul zum Speichern der Daten verwenden kann. ? LG Christian
hierzu habe ich nochmal eine Frage, die mich schon länger beschäftigt: Bei dem Sheet Verweise sagst du ja, daß sich diese auch immer aktualisiert 😳 das tut sie aber nicht. Angenommen, du speicherst einen neuen Mitarbeiter für Berlin - dort gibt es aber nun eine neue Abteilung "XY" - diese Abteilung wird im Sheet Personal ja gespeichert, taucht aber dann beim Befüllen der Comboboxen nicht auf, weil die ja aus dem Sheet Verweise kommt - richtig? Könnte man diesen Eintrag dann auch automatisieren? Ich frage deswegen, weil in meiner Anwendung der Eintrag "Empfänger" immer wieder mal einen neuen Wert hinzubekommt
Du könntest mit einer If-Bedingung abfragen, ob der Wert in Verweise bereits vorhanden ist. Wenn nicht, dann diesen dort hinzufügen. Ich hoffe das hilft dir weiter.
Bei mir kommt bei 36:52 der Fehler " Laufzeitfehler'1004' die Max-Eigenschaft des worksheetFunction-Objektes kann nicht zugeordnet werden." Was kann ich dagegenmachen?
auch wenn das Video schon älter ist eine Frage dazu. Wenn die Liste in shpersonal bis auf die Überschriften leer ist bekommt man beim Aufruf des Forms nur Laufzeitfehler 1004. Liegt ja wohl an der Resize -1, kann man das irgendwie lösen das man mit einer leeren Datenbank beginnen kann. Bringt es Gefahren mit sich wenn das -1 bei Resize einfach weg fliegt. dann wäre ja die Range nur unten mit ner leeren Zeile das sollte ja nicht schlimm sein oder?
Du könntest den ersten Eintrag in der Liste händisch hinzufügen, dann sollte das Problem nicht auftreten. Du könntest es auch mit einer If Bedingung abfangen. Wenn Liste Leer dann ohne Resize -1, ansonsten mit Resize -1 Ich hoffe das hilft dir weiter.
super Video(s) Eine Frage zu den Optionsschaltflächen: Ich habe Ausgabe oder Einnahme als Optionen wie mache ich das beim Speichern, wenn die Ausgabe in Spalte 9 bzw. dann (bei Option Einnahme) die Spalte 10 ausgefüllt werden soll
Super Video, hab aber noch eine Frage. Ich wollte beim listboxbefuellen mit der .Sort Methode die Tabelle sortieren vor dem erneuten befuellen der Listbox, leider hab ich irgendeinen Fehler, kannst Du mir helfen ? Dim rng As Range Set rng = shPersonal.Range("A1").CurrentRegion 'Set rng = rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Sort(Key1:="C2", Order1:=xlAscending)
Hallo Kai Ich möchte eine Eingabemaske für DVD/Blu-ray (7 Spalten) kann aber keine finden habe es auch schon mit VBA probiert komm aber auf keinen grünen Zweig.
Hallo Kai, sehr interessante Videos! Habe schon einige Sachen von dir getestet, super... Hätte auch mal eine Frage die schon ein anderer User gestellt hat, aber irgendwie komme ich auch damit nicht so ganz zu recht: "Hallo Kai, wir würde das eigentlich aussehen, wenn die UserFormNeu oder UserFromBearbeiten auf eine intelligente Tabelle zugreifen würde, wie Du Sie zum Beispiel in deinem Tutorial "Datenbank erstellen mit Eingabemaske" hinterlegt hast. Dim tbl As ListObject set tbl = shPersonal.ListObjects(1) Set tbl = tbl Offset(1, 0).Resize.Count -1) und in er With Anweisung von rng auf tbl ändern funktioniert nicht - wie geht das?" Vielleicht kannst du das Ganze noch mal kurz kommentieren?
Hallo Michael, freut mich, dass dir das Video gefällt! Du sprichst die intelligente Tabelle dann am besten über tbl.Range oder .DataBodyRange an, wenn du sie befüllen willst. Hoffe das hilft dir weiter. LG Kai
Hey könntest du bitte einmal erklären wie man automatisch einen Verteiler in seinen Kontakten erstellen kann? Also, dass ich als Beispiel 4 Personen mit einer Mail in eine exceltabelle schreibe, auf übertragen klicke und dann den Verteiler XX in meinen Kontakten habe? Am besten noch, dass wenn ich dort eine Person ändere, er automatisch den alten Verteiler überschreibt 😊
Moin..... wie kann ich mir bestimme Bereiche aus einer intelligenten Tabelle anzeigen lassen? Zum Beispiel (inkl. "Überschrift/Bezeichnung) A4 bis D(Ende) und dann wieder ab I4 bis L(Ende) ??? Ist das möglich? VG Mario.... PS Danke für die Videos.....die konnten mir schon sehr weiterhelfen!!!! Sehr qualitativ!
Hallo, hab mir gerade ein Video angesehen bei dem es um eine Datenbank geht. sehe mich nicht in der Lage selbst eine nachzumachen. Dazu 2 Fragen, erstens kann man auch Foto einbinden, bzw. würdest du eine solche auf Bedarf erstellen (für mich ) ? Wie kann ich dich direkt erreichen? Gruß Rupert
du kannst dir die fertige Anwendung hier herunterladen: vbatrainer.de/eingabemaske-mit-datenbank/ Bezüglich Zusammenarbeit schaue gerne auf meine Website: www.vbatrainer.de
Ich biete aktuell keine individuellen VBA-Programmierungen an. Wenn du selbst eine Anwendung entwickeln möchtest, schaue dir gerne meinen Onlinekurs an: vbatrainer.de/onlinekurs/
Bei der Fehlermeldung kannst du auf Debuggen klicken und kommst üblicherweise in die fehlerhafe Codezeile. Hier kannst du dann mit der Fehlersuche beginnen. Ich habe bei mir eben die Vorlage getestet und keine Probleme festgestellt. Eventuell musst du deine Sicherheitseinstellungen anpassen, damit du extern erstellte Makros zulassen kannst - Detail dazu findest du hier: vbatrainer.de/makros-zulassen/
Sehr gut erklärt. Wie macht man es denn, wenn einem Mitarbeiter eine bestimmte id zugeordnet ist das diese bei der Auswahl des Mitarbeiters automatisch in der Form zugeordnet wird.
Eigentlich wird die entsprechende ID dem Mitarbeiter zugeordnet. Lade dir nötigenfalls gerne die kostenlose Vorlage zum Video herunter, und vergleiche den Code: vbatrainer.de/eingabemaske-mit-datenbank/
Ja, bei jedem Eintrag (Anlegen) wird eine fortlaufende ID vergeben. Beim bearbeiten wird die ID aber beibehalten. Also ist jedem Mitarbeiter eine bestimmte ID zugeordnet.
@@KaiWeissmann bei mir waren die IDs bereits vorgegeben. Es würde bei mir also Sinn machen im Reiter "verweise" neben dem Namen eine Spalte ID zu haben und in diesem Zusammenhang würde es Sinn machen aus dem Textfeld Name bzw Nachname eine Combobox zu machen und wenn ich z.b. max Müller auswähle das dann automatisch die zugeordnete ID in die Maske übernommen wird.
Tolles Video. Aber Vorsicht: wenn der letzte Eintrag bzw. Datensatz unten gelöscht wird, dann wird die ID von dem letzten Eintrag neu vergeben! Zum Beispiel, wenn der letzte mit der ID 11 gelöscht wird, dann wird die ID 11 beim Anlegen eines neuen Datensatzes wieder vergeben.
Hallo, ich habe dieses Tabelle ähnlich gemacht mit Problemen, seit diesem Kurs habe ich meine Bug´s eleminiert. Nur eines will mich nicht gelingen, dass die Tabelle in der listbox und Excel nach unten bewegt und der aktuellste Eintrag immer die Erste Datenzeile ist. Leere Zeile oben einfügen geht, aber dann kann ich die Daten nicht rein bringen und die Listbox verhält sich bei der Darstellung sonderbar (die Datensätze verschwinden bis auf einen. Sollte jemand eine Idee habe, wäre ich dankbar. LG Michael
Ich empfehle dir dafür die Arbeit mit intelligenten Tabellen. Schaue dir dazu gerne mein Video an: ua-cam.com/video/ey3xPAHNO2g/v-deo.html Ich hoffe das hilft dir weiter.
Hallo Kai. Coole Video. Bei mir gibt es eine Fehlermeldung "Laufzeitfehler 1004, Anwendungs- oder Objektdefinierter Fehler". Beim Debugg wird mir der Code gelb markiert. Kannst du mir einen Tipp geben, wie ich dieses Problem lösen kann? Die Fehlermeldung kommt bei der UserForm Bearbeiten. Danke dir, Gruess Matthias Code: [ Private Sub UserForm_Activate() 'Daten laden With tb_Datenbank 'Kunden-ID txt_KundenID.Value = .Cells(p_aktuelleZeile, 2).Value 'Kunden-ID End With End Sub ]
Wieso werden hier eigentlich normale tabellen mit intelligenten gemischt? Der Code mit xlup etc wäre bei einer intelligenten Tabelle gar nicht notwendig oder sehe ich da was falsch?
Hallo Kai, vielen Dank für das Video !!es hilft sehr und die videos sind sehr verständlich und erklären alles fast von selbst :) ich hatte eine fragen zu den wie kann ich das datum in die zeile einfugen ich hab mir zwei andere videos von dir angeschaut , leider kriege ich es nicht hin, wenn ich es so versuche bekomme ich in der Zeile das zu sehen "=@jetzt()" With shboard neueZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(neueZeile, 1).Value = TextBoxid.Value .Cells(neueZeile, 4).Value = "=JETZT()" ich mocht pro zeile automatich das datum haben wenn er die daten aus der userform in die tabele schreibt vialen dank
Das aktuelle Datum erhältst du über Now. Ich verwende dazu auch gerne die Format Funktion, um das Datum entsprechend zu formatieren. z.B.: .Cells(neueZeile, 4).Value = Format(Now, "dd.mm.yyyy") Hoffe das hilft dir. Lg, Kai
Hallo Kai ich hätte vielleicht noch eine Idee welche man in diese Userform einbauen kann. Was hälst du von einer sortier oder Filterfunktion? Ich würde dir mein Projekt gerne mal zeigen. Hättest du Interesse daran das zu sehen?
Zum Thema ListBox sortieren habe ich bereits ein Video: ua-cam.com/video/II5GOy7xlos/v-deo.html Und ListBox Suche: ua-cam.com/video/GkzXUKUxwUs/v-deo.html Ich hoffe das hilft dir weiter.
Hallo, leider fehlerhaft. Wenn ich alle Einträge lösche, kann ich weder einen neuen User anlegen, noch die Userform aufrufen. Er versucht dann die Userform mit den vorhandenen zu öffnen, was aber anscheinend nicht funktioniert, weil keine Einträge vorhanden sind.
@@KaiWeissmann Das stimmt, erstmal danke dafür. Ich bin noch am lernen ;) aber wieso muss man das denn machen? Gibt es denn nicht eine einfache Codelösung? lg
Rowsource in Verbindung mit intelligenten Tabellen ist leider ne Katastrophe. Daher hast du wahrscheinlich deine Daten in Haupttabelle auch nicht als Tabelle formatiert?!
Ich habe mit der Verbindung von RowSource und intelligenten Tabellen bisher keine schlechten Erfahrungen gemacht, habe allerdings noch nicht soviel Erfahrung. Was für Schwierigkeiten sind bei dir aufgetreten?
Wieder mal ein tolles Video. Ich hab in die Userform noch eine Suchfunktion eingebaut, die auch soweit funktioniert. (Suchen in listbox(mit additem) Ich hab nur folgendes Problem: Wenn ich einen Eintrag suche, und dann auf bearbeiten klicke, kommen Immer die Daten des ersten Eintrags (kleinste is der gesamten Liste ohne suche). Wenn ich ohne die Suche irgendeinen Eintrag bearbeiten möchte funktioniert alles wie es soll. Ich hoffe ich hab mich verständlich ausgedrückt. Vielleicht hat jemand einen Tip.
Hallo Florian, Hast du dein Problem gelöst? Und wenn ja wie? Ich scheitere gerade dabei überhaupt eine Suchfunktion zu integrieren. Wäre für eine Lösung dankbar. Gruß Hannes
@@hannesklotz7075 hallo Hannes. Ich hab das Problem zwar hinbekommen, aber es fünktioniert seeeehr langsam. Ich möchte es nochmal umstellen. Wenn ich eine Lösung habe meld ich mich bei dir.
@@floh255 hallo Florian. Könntest du mir schonmal deine erste Lösung geben, dass ich wenigstens irgendeine Suche habe auch wenn sie langsam ist. Ich wäre dir sehr dankbar. ☺️
Leider bekomme ich bei "Bearbeiten" einen Laufzeitfehler Nr.9 angezeigt und den Hinweis "Index außerhalb des gültigen Bereichs" Gehe ich auf Debuggen zeigt er mir gelb unterlegt die Zeile "frm.aktuelleZeile = ListBoxMitglieder.ListIndex + 2" (Personal heist bei mir Mitglieder, da es für einen Verein gedacht ist). Habe auch nach längerem Suchen und vergleichen den Fehler nicht gefunden.
Hallo Bernhard! Vielleicht hilft es dir, die kostenlose Vorlage herunterzuladen und mit deinem Code zu vergleichen? Vorlage zum Video: vbatrainer.de/eingabemaske-mit-datenbank/ Lg, Kai
Hey Kai, gestern habe ich bereits mit Hilfe deines Videos eine Navigation mit Hamburger, sowie Verwaltungsseite erstellt 🤩 Nun bin ich dabei Mithilfe "Eingabemaske mit Datenbank" meine eigene Kundendatei zu erstellen. Hier komme ich leider gerade nicht weiter 😢 Könntest du mir bitte helfen 🙏 UserForm Personal habe ich erstellt, das funktioniert soweit. Bei Makro zuweisen "Strg q" bekomme ich immer eine Fehlermeldung. Habe auch einen Button in meiner Tabelle "Kundendaten" eingefügt (und gruppiert) auf den ich klicken möchte um auf meine Datenbank zu gelangen, wo ich quasi meine neuen Kunden anlegen, bearbeiten und löschen kann. Ich bekomme den "Laufzeitfehler 438" - Objekt unterstützt diese Eigenschaft oder Methode nicht Im Modul hab ich hinterlegt: Sub UserFormKundendatenAufrufen() UserFormKundendaten.Show End Sub (habe auch alle Namen, Tabellen etc im MouseMoce etc auf meine Bedürfnisse angepasst) Schau mir nun schon seit 2h alle deine Videos durch und komme einfach nicht auf den Fehler/Problem. Sämtliches einlesen in die Vba führt zu einem neuen Laufzeitfehler 🙈 Könntest du mir hier bitte bitte kurz unter die Arme greifen? Ich danke dir! 🙏 LG aus Salzburg Nicki 👋
Kann mir bitte jemand helfen ?!!! Bei mir gibt die Textbox einen falschen Bezug auf ein anderes Tabellenblatt wieder. er soll sich auf ShDatenbank beziehen und macht es einfach nicht...verrückterweise nur ab und zu mal....ich bin überfordert ! : Private Sub UserForm_Initialize() ' Zellbereich einlesen Dim rng As Range Dim L As Long Set rng = ShDatenbank.Range("B4").CurrentRegion Set rng = rng.Offset(3, 0).Resize(rng.Rows.Count - 1) ' Listbox befüllen With ListBoxDaten
Sub DatenSpeichern() Dim DatenbankTabelle As Worksheet Dim EingabeMaske As Worksheet Dim letzteZeile As Long Set DatenbankTabelle = ThisWorkbook.Sheets("Datenbank") ' Namen des Tabellenblatts anpassen Set EingabeMaske = ThisWorkbook.Sheets("Eingabemaske") ' Namen des Tabellenblatts anpassen letzteZeile = DatenbankTabelle.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Finde die nächste leere Zeile in der Datenbanktabelle With DatenbankTabelle .Cells(letzteZeile, 1).Value = EingabeMaske.Range("NameFeld").Value ' Namen des Eingabefelds anpassen .Cells(letzteZeile, 2).Value = EingabeMaske.Range("AlterFeld").Value ' Namen des Eingabefelds anpassen ' Weitere Felder entsprechend übertragen End With MsgBox "Daten gespeichert!", vbInformation EingabeMaske.Cells.ClearContents ' Leert die Eingabefelder nach dem Speichern End Sub
Ein suuuper Video, sehr anschaulich und informativ!!! Kann es sein, dass der o.g. Link zu dem YgiKa9.gif nicht korrekt ist? Ich sehe nur einen dunklen Bildschirm... Vielen lieben Dank für Deine Mühe!! Grüße Arnd Jünemann
In der Mitte des dunkeln Bildschirms sollte ein kleiner weißer Punkt zu sehen sein. Eventuell musst du ein bisschen reinzoomen. Diesen per Rechtsklick anklicken und herunterladen. Lg, Kai
Also, ich mache ja schon seit Jahren auch recht (OK chaosmäßige aber funktionierende) komplexe Excel-Kalkulationen. Konnte bei diesen Ergüssen mit viel Gebastel bis heute VBA weitestgehend vermeiden. Irgendwann geht das aber nicht mehr und man nimmt sich der Sache dann doch mal an. Nach unzähligen Blogs und Vlogs und Anfänger-Tutorials bin ich nun bei Kai Weissmann gelandet. Und meiner persönlichen Meinung nach ist er der Beste. Hochauflösende Videos, sehr gute Vertonung, informativ animiert, eine ruhige, unglaublich angenehme Vermittlung seines Wissens. Absolut motivierend tiefer in die Materie einzusteigen. Der Spaß ist ja letztendlich, wenn am Ende ein gewünschtes Resultat erscheint und man seine Mühen belohnt bekommt. So ne Art Erfolg halt. OK zugegeben, als Einsteiger freut man sich über kleine Erfolge, dann schaut man solch ein Video und bekommt drastisch vermittelt, dass man eigentlich noch gar nichts kann 🙂. Ist mir ein Rätsel, wie man aus dem Stegreif sooo schnell, sicher und fehlerfrei programmieren kann und dabei alles noch lückenlos beschreibt. Mir fehlt ja noch ne Menge Wissen zum grundlegenden Aufbau solcher Programmierungen - also sozusagen der Urschleim, den die meisten UA-camr gar nicht mehr auf dem Schirm haben, weil es für sie wie unbewusstes Zähneputzen ist. ABSOLUTER RESPEKT !!! DAS nenne ich mal professionell.👌💪👍👍👍
Sehr gut erklärt, es fehlt natürlich noch eine Funktion um doppelte Datensätze zu vermeiden.
Macht richtig Spaß zuzuhören...und lernt nebenbei !👍
Das freut mich!
Dieses Video und die daraus entstandene Excel-Datei ist perfekt. Ich habe nicht nur sehr viel gelernt über Excel-VBA, sondern konnte Step by Step alles nachvollziehen und sogar bereits anwenden. Vielen lieben Dank für Deine Mühe 👍👍👍
Vielen Dank für deinen netten Kommentar.
Es freut mich sehr, dass dir meine Videos gefallen.
Ich wünsche dir weiterhin viel Erfolg bei deinen Projekten.
Vielen Dank endlich ein richtig gut erklärtes Video welches man auch nachvollziehen kann. Jetzt fehlt nur eines, wie man in dieser bestehenden Listbox nach mehreren Spalten suchen kann, so wie in dem Video: "Tabelle ganz einfach durchsuchen mit der Suchfunktion". Das wäre sehr interessant denn ich habe versucht es mit dem Video: "Suchfunktion für Listbox" nachträglich einzubinden doch ich habe immer wieder Fehler gemacht und trete auf der Stelle.
VG und bleiben Sie so denn die Tutorials sind spitze!!
Hey Verrückter Bastler!
Danke für dein Feedback.
Grundsätzlich sollte eine Kombination der Komponenten möglich sein.
Jedoch hängt das auch oft mit der Methode zusammen, mit der wir die Listbox befüllen.
Sschau dir dazu mein Video "Listbox befüllen" gerne an, in dem ich die Methoden und Unterschiede erkläre: ua-cam.com/video/1EHq_JLHKlI/v-deo.html
Hoffe das hilft dir weiter.
Lg, Kai
Vielen Dank für deine Videos, deine verständliche Erklärung und deine ruhige Art. Super Themen welche Du immer aussuchst!
Hey Martin!
Sehr gerne - Danke für dein Feedback!
Lg, Kai
Ja krass… ich kann mich erinnern, dass ich so eine Idee in die Kommentare eines anderen Videos von Dir geschrieben habe… VIELEN DANK!!! Genial 🤩
Hey Ralf, ja, tatsächlich basieren die meisten Videos auf Kommentaren von euch :) Vielen Dank dafür! LG Kai
Ich liebe Deine Tutorials! EInfach klasse......😎
Danke Thomas :)
Wie immer verständlich auf den Punkt gebracht. Vielen Dank.
Vielen Dank Peter!
Du erklärst das echt super. Hab bisher noch nie mit vba gearbeitet und hat alles auf Anhieb geklappt wie du es erklärt hast. 👍
Hab jetzt noch aus einem anderen tutorial von dir versucht eine Suchfunktion in die gleiche listbox zu erstellen aber scheitere kläglich. 😂
Vielen Dank für deinen netten Kommentar.
Es freut mich, dass du dich durch mich an dein erstes VBA Projekt wagst.
Lass dich von Fehlermeldungen und Rückschlägen nicht davon abbringen, dein Projekt zu verwirklichen.
Oft sind es Tippfehler die zu Fehlermeldungen führen.
Schaue dir am besten mein Video mit den 5 Tipps für Einsteiger an: ua-cam.com/video/0aYBM8paMZU/v-deo.html
Viel Erfolg bei deinem Projekt.
@@KaiWeissmann Es hat geklappt. ^^ Danke für die ganzen hilfreichen Videos. Musste zwar von der row. Source zum befüllen wechseln auf die add item Alternative aus einem anderen Video von dir. Aber dann hat es mit der suchfunktion geklappt 🤭✌️vielen dank noch mal.
Und wieder großen Dank für das Video!
Mich würde bei diesem Thema auch sehr interessieren wie beim 'click event' verhindert werden kann, dass doppelte Einträge angelegt werden. Sprich es soll eine Prüfung erfolgen, ob der Eintrag bereits vorhanden ist.
Wie immer super Video und sehr verständlich erklärt.
Könntest du vielleicht mal ein Video machen, in dem man ein Datum mittles Anklicken und Auswählen in eine Eingabemaske einfügt, anstatt es komplett in ein Textfeld zu schreiben?
Vielen DAnk für deine tollen Videos - weiter so!
Hey BUFU!
Vielen Dank für dein Feedback und den Videovorschlag!
Ich nehme das gerne in die Ideensammlung mit auf.
Lg, Kai
Hey danke, ich hab sehr viel gelernt, durch Dein Video...
Hey Horst!
Vielen Dank für dein Feedback!
Lg, Kai
Super Video. Vielen Dank dafür. Auch die Aktion mit dem with hat mir sehr geholfen. 🎉
Das freut mich sehr!
Viel Erfolg bei deinem Projekt.
Wieder ein sehr gutes Video, vielen Dank!
Immer wieder gerne!
So macht Lernen echt Spaß, klasse erklärt, vielen Dank 🙏🏻
Das freut mich sehr!
Vielen Dank, das hilft mir sehr weiter, gut erklärt. 😊
Sehr gerne!
Es freut mich, dass dir das Video gefällt.
Wieder sehr viel gelernt und von dir super erklärt 👍
Hey Red Ox!
Freut mich!
Lg, Kai
Echt interessant. Danke!
Freut mich, dass es dir gefällt!
Hallo Kai, tolle Videos, mit deren Hilfe ich schon viele Projekte erfolgreich umgesetzt habe. Nun habe ich dieses Video nachgebaut; aber mit einer intelligenten Tabelle. Dabei habe ich mich auch an Deinem Video "UserForm Daten in Tabelle schreiben" orientiert. Aber beim Anlegen eines neuen Datensatzes mit der .ListRows.Add-Methode bekomme ich immer einen Laufzeitfehler "Die Methode Add für das Objekt ListRows ist fehlgeschlagen". Und im Netz habe ich keine brauchbare Lösung gefunden.
Moin Heiner! Das Problem liegt in der Methode zum Einlesen in die Listbox. Dasselbe Problem hatte ich auch. Lässt sich lösen, wenn du die Listbox mit einer Range oder einem Array befüllst (siehe Kais Video zum Befüllen von Listboxen). 😉
Super ! - 👌👌👌👍🏾
Hallo, Kai!
Geschafft! SPIT-ZEN-VIDEO!!!
Hat totalen Spaß gemacht, das Projekt nachzuvollziehen und ab und zu durch "eigenständig kreative Fummelei" die notwendigen Anpassungen an meine Datenbank (=intelligente Tabelle) vorzunehmen.
Als "ganz besonders" empfand ich den "Trick" mit der "Property-Let-Prozedur" und dem, was damit zusammenhängt (also Definieren von neuen Eigenschaften eines Objektes, Parameterübergabe etc.).
Wäre es vielleicht eine gute Idee, zu dieser Thematik ein eigenständiges Video zu erstellen?
Ich werde noch versuchen, dieses Tool erweitern, und zwar dadurch, dass ich alternativ zum Löschen noch das Archivieren des gewählten Datensatzes (= Speichern auf anderem Worksheet in anderer intelligenter Tabelle) anbiete.
Dir nochmal den herzlichsten Dank!
Achim!
Hey Paul-Peter Pan!
Es freut mich, dass du die Anwendung gleich deinen eigenen bedürfnissen entsprechend umgesetzt hast.
Danke für den Tipp mit dem eigenständigen Video. Ich nehme das gerne in die Ideensammlung mit auf.
Lg, Kai
Mega geiles Tutorial! Thanks
Sehr gerne!
Es freut mich, dass dir das Video gefällt.
Danke!
Sehr gerne :)
Top erklärt! Gleich abonniert!
Vielen Dank für dein Lob und dein Abo.
Viel Erfolg beim VBA Lernen.
LG Kai
Super 👍👊👍
Danke!
Hallo Kai,
meine Frage ist, wenn ich die Datenbank auf MS Teams lege und meine Mitarbeiter dort eintragungen machen, wird die ID dann angepasst?
also Mitarbeiter 1 fängt morgens mit der 5 an und Mitarbeiter 2 ebenfalls. wie wird das synchronisiert?
gibt es dafür lösungen?
Viele Grüße
Hey Live World!
Das könntest du z.B. mit einer Access Verknüpfung lösen, so dass mehrere Anwender zeitgleich Eintragungen machen können.
Lg, Kai
Hallo Kai,
mal wieder einfach ein tolles Video. Freue mich jedes Mal was neues über VBA zu lernen. Meine Frage : sobald man die Werte von der UserForm in Tabelle eingefügt werden, habe ich folgendes Problem, die Zeilen Höhe werden zum vorherigen leider nichts angepasst. Muss dann jedes Mal die Zeilen Manuel anpassen.
Hättest du hierfür eine Lösung, sowie bei deinem Eingabeformular Video ?
LG Alex
Wie immer: Super Beitrag. Leider funktioniert der Link zu dem 1x1 Bild nicht (mehr).
Hallo Kai, erst ein Mal ein prima Video, gut und verständlich erklärt. Ich habe für mein Projekt "Haushaltsbuch mit Excel VBA" angewendet, doch ich musste feststellen, dass der Neueintrag nicht in meine intelligente Tabelle übernommen wird, sondern alles außerhalb der intelligenten Tabelle eingetragen wird. Hast du vielleicht eine Idee? Wir sprechen ja nur das Tabellenblatt und nicht die intelligente Tabelle auf dem Tabellenblatt an.
LG Stine
Warum funktioniert das eigentlich nicht, wenn man den Tabellenbereich in dem Blatt "Personal" als intelligente Tabelle markiert? Dann gibt es einen Run-Time-Error beim hinzufügen einer Zeile.
Hallo Kai,
sehr gut erklärtes Video, mal wieder ;-) allerdings hatte ich mich erst gefragt wieso du deine Haupttabelle nicht in eine intelligente Tabelle formatiert hast. Nun weiss ich es, es geht irgendwie nicht. Mein Excel stürzt jedesmal ab sobald ich aus der Userform etwas in die intelligente Tabelle speichern möchte.... hast du dafür einen Lösungsansatz???
Ich schau mir nur noch deine Videos über Excel VBA an, es sind die Besten. Eine kurze Frage, wie setze ich [@Variable] ein um im TextBody einer E-Mail variabel zu sein ??
Klasse Video.... Wie all deine Videos.... Einfach nur Top!!!
Mich würde auch interessieren, wie man über eine oder mehrere TextBoxen suchen kann und das Such-Ergebnis bearbeiten kann. Mit Me.Listbox funktioniert es leider nicht!
Hey Alexander!
Vielen Dank für dein Feedback und den Videovorschlag!
Ich nehme das gerne in die Ideensammlung mit auf.
Lg, Kai
Tolle Video, und wie immer alles nachvollziehbar! Super!
Ist es möglich wenn man beim bearbeiten speichert klick, die ausgewählte Zeile in der Listbox wieder zu makieren?
Allerbest... super gemacht (-: wie immer :-), Respekt!
ich baue es gerade für unsere Firma nach und frage mich was kann ich machen, wenn jemand in mehreren Abteilungen arbeitet? Spätere Suchergebnisse nach Abteilungen führen zu nicht korrekten Ergebnissen...? Doppelt anlegen führt zu zwei ID's für einen AN
Hallo Thomas, vielen Dank für deinen Kommentar!
Evtl. könntest du das über eine Spalte "Abteilung 2" lösen.
Hoffe das hilft dir weiter.
LG Kai
Vielen Dank für dein gutes Beispiel. Ich hätte eine Frage .Ist es möglich, als erstes, den letzten Datensatz zu sehen? Vielen Dank
Das geht natürlich.
Du könntest mit einer intelligenten Tabelle arbeiten, und den neuen Datensatz immer oben hinzufügen.
Siehe dazu mein aktuelles Video zum Thema intelligente Tabellen: ua-cam.com/video/ey3xPAHNO2g/v-deo.html
Lg, Kai
Hey Kai. Super Videos, super erklärt. 👍 Du hast nicht zufällig irgendwo einen schicken Urlaubsplan herumliegen…?😁
Den Urlaubsplan habe ich bereits in die Video-Ideensammlung aufgenommen.
Ein so umfangreiches Tool ist aber derzeit nicht geplant.
@@KaiWeissmann schade auch. 😁 Aber danke.
Hallo Kai, wir würde das eigentlich aussehen, wenn die UserFormPersonal auf eine intelligente Tabelle zugreifen würde, wie Du Sie zum Beispiel in deinem Tutorial "Datenbank erstellen mit Eingabemaske" hinterlegt hast.
Dim tbl As ListObject
set tbl = shPersonal.ListObjects(1)
Set tbl = tbl Offset(1, 0).Resize.Count -1)
und in er With Anweisung von rng auf tbl ändern funktioniert nicht - wie geht das?
Hi Kai, ist es möglich in die Eingabemaske ein Suchfeld zu integrieren? Bei langen Tabellen wäre das sehr komfortabel.
Ja, das geht und habe ich in diesem Video gezeigt: ua-cam.com/video/GkzXUKUxwUs/v-deo.html
LG Kai
Hallo Kai!
Super Video. Wieder was dazugelernt.
Frage zur UserformBearbeiten: Welchen Code muss man dort für ein eingefügtes Drehfeld/SpinButton verwenden, um die Zeilen des Tabellenblattes umzublättern? Wäre für mich eine sinnvolle Addition, wenn man mehrere Datensätze ändern will/muss.
Danke
Hallo Kai, Das ist ein sehr umfangreiches Video, aus dem ich einiges umsetzen konnte. Danke dafür.
Aber eine Frage habe ich dennoch, ich habe eine Datenbank, in der in einigen Spalten Formeln stehen. Mit der gezeigten Methode bekomme ich sie nicht in die nächste Zeile übernommen. Hast du für solch einen Fall auch schon ein Video gemacht? Wenn nicht, währe das sicher auch ein Video wert. VG
Das sollte mit einer Intelligenten Tabelle funktionieren.
Siehe dazu mein Video: ua-cam.com/video/ey3xPAHNO2g/v-deo.html
Guten Morgen, Kai!
Ich habe dieses Video jetzt zweimal aufmerksamst gesehen und nachverfolgt und wie andere hier im Kommentarbereich auch dasselbe Problem:
Ich habe als Grundlage eine Datenbank, die ich als intelligente Tabelle formatiert habe. Du hast nur aus Deinen Verweistabellen intelligente Tabellen gemacht, die Datenbank selbst aber als "einfache" Tabelle belassen.
Das ist der Grund dafür, dass es Probleme beim Ansprechen und Bearbeiten der Datenbanktabelle gibt.
Könntest Du - bitte - diesem Video eine kurze Erweiterung zufügen (oder hier im Kommentarbereich dazu eine "Fußnote" hinterlassen), wodurch klar wird, welche Codeänderungen notwendig werden, wenn man die Datenbank als intelligente Tabelle formatiert hat? Möglicherweise hat es ja einen trefflichen Grund, weshalb Du hier auf eine intelligente Tabelle verzichtest. Den zu erfahren(,) wäre sicherlich auch wichtig.
Hintergrundinfo:
Ich habe mit Hilfe Deines Videos "Datenbank erstellen mit Eingabemaske in Excel VBA" (dort arbeitest Du für die Datenbankoperationen nicht mit einer Userform, sondern mit einem Extra-Sheet) alle entsprechenden Vorarbeiten getroffen, die auch wunderbar funktionieren. Nun würde ich gerne statt mit einem Extrasheet mit einer Userform arbeiten, bekomme aber Fehlermeldungen, weil ich ja dort (wie Du auch) die Datenbank als intelligente Tabelle formatiert habe.
Mir ist klar, dass Du unmöglich alle Anfragen, die sich unter Deinen Videos befinden, beantworten kannst und willst. Vielleicht gibt es hier eine Ausnahme deshalb, weil ich ja nicht der einzige bin, der dieses Problem hat.
Beste Grüße
Achim
Hey Paul!
Danke für dein Kommentar.
Eine Intelligente Tabelle anzusprechen geht ja relativ einfach mit .Listobject
Also eine Neue Zeile mit ListRows.Add hinzufügen, dann der Variablen zuweisen (rows.count - headerrowrange) und befüllen
Hoffe das hilft dir weiter.
Lg, Kai
@@KaiWeissmann Danke, Kai, für diese schnelle Antwort. Ich hoffe, ich finde im Code all die Stellen, an denen eine solche Änderung notwendig wird. Einen schönen Tag noch!
Klasse Video, super erklärt.
Allerdings hätte ich noch eine Frage hierzu. Gibt es eine Möglichkeit einer Suchfunktion in der Datenbank? Bei sehr vielen Einträgen ist die Suche eines Datenbankeintrags etwas mühselig. Gleiches wäre für das Lagerhaltungsprogramm ebenfalls sinnvoll.
Gruß und bleib gesund.
Hey Hajo!
Danke für dein Feedback.
Vielleicht hilft dir dieses Video, in dem wir eine Suchfunktion für Listboxen erstellen. - ua-cam.com/video/GkzXUKUxwUs/v-deo.html
Lg, Kai
Hallo Kai, vielen Dank für dieses tolle Video.!! Eine Frage aber habe ich:
Ich habe in meiner Userform 2 combobox wobei die 2. sich variabel zur 1. verhalten soll. Bei klassischen Dropdown in excel löse ich das ja mit intelligenten Tabellen und der indirekt Funktion. Wie aber hier? Viele Grüße
Hallo Hans, soweit ich dich richtig verstehe, möchtest du abhängige ComboBoxen erstellen. Dazu habe ich hier schonmal ein Video gemacht: ua-cam.com/video/fUtTri4Bdg8/v-deo.html
LG Kai
@@KaiWeissmann genau das war’s. Vielen Dank :)
Hallo Kai,
vielen Dank für das Video !! super verständlich erklärt und die Möglichkeit der Bearbeitung in einer neuer UserForm ist perfekt :)
Ich bin ein kompletter Anfänger in VBA und hätte da noch zwei (wahrscheinlich einfache :D ) Fragen. 1. Die Fenster sind auf deinem video standardmässig mit abgerundeten Ecken. Bei mir sind die einfach eckig. Wie ändere ich denn das ? finde abgerundet deutlich schöner. 2. Ich möchte, dass neue Daten immer bei ID 1 (oder letzte) !oben! hinzugefügt werden. Wie wäre denn der code der Befüllung dafür zu ändern ?
* Die Einblendung der Tasten ist genial !
Schöne Grüße
Oleg
Abgerundete Ecken sind ab Windows 11 Standard. Dazu gibt es keine eigenen Einstellungen.
Daten an beliebiger Stelle einfügen geht am besten mit einer intelligenten Tabelle.
Dazu kommt demnächst ein Video, in dem ich auch zeige wie du neue Zeilen/Datensätze an beliebiger Stelle einfügen kannst.
Kurzinfo: Listrows.add 1
Aber dazu eben dann ausführlich im nächsten Video mehr.
Lg, Kai
Hier also der entsprechende Link zum neuen Video: ua-cam.com/video/ey3xPAHNO2g/v-deo.html
@@KaiWeissmann Dankeschön !
Sehr gut Arbeit dank viel mal. eine Frage: was passiert wenn man der Tabelle Shpersonal zu Tabelle ändern. bei mir kommt eine Fehler Meldung und ich kann nicht neue Datai eingeben.
Ein sehr schönes Video und alles, wie immer, verständlich erklärt. Beim umsetzen mit meine eigene Userform bekomme ich allerdings immer einen Laufzeitfehler und den Hinweis "Die Methode Value für das Objekt Range ist fehlgeschlagen. Hast Du hier eventuell einen Hinweis für mich. Vielen Dank und VG Matthias
Hallo, hattest du eine Lösung gefunden? Habe gleiches Problem
Hallo Kai,
sehr schön erklärt dein Video schön zum mitmachen 👌 hab nur ein Problem:
Erstelle die vbas immer auf Windows und nutze sie dann aber auf Mac excel - und da ist ein Problem mit RowSource kannst du mir da helfen?
Besten Dank
Gruß Andreas
Zum Befüllen von Listboxen habe ich ein Video mit den unterschiedlichen Methoden: ua-cam.com/video/1EHq_JLHKlI/v-deo.html
Hoffe das hilft dir weiter.
Lg, Kai
Hallo Kai, wie immer tolle Videos. Hab bis 37:35 alles mitgemacht. Bekomme aber dann nach F5 - Die Fehlermeldung "Laufzeitfehler '9': Index außerhalb des gültigen Bereichs.
Private Sub UserForm_Initialize()
'ID befüllen
TextBoxID.Value = worksheetfunction.max(shpersonal.Columns(1)) + 1
'ComboBoxen befüllen
ComboBoxStandort.List = shverweise.ListObjects("tblStandort").DataBodyRange.Value
ComboBoxStandort.ListIndex = 0
ComboBoxAbteilung.List = shverweise.ListObjects("tblAbteilung").DataBodyRange.Value
ComboBoxAbteilung.ListIndex = 0
'OptionButtonVollzeit auswählen
optionButtonVollzeit.Value = True
End Sub
Ich find den Fehler nicht. Komme hier nicht mehr weiter. Was hab ich falsch gemacht.
Geh mal deine UserForm_Initialize mit F8 Zeile für Zeile durch. Sobald der Fehler kommt, weißt du in welcher Zeile der Fehler ist und vielleicht erkennst du den Fehler dann
@@SanceZZ82 Danke für die Hilfe. Hab ich getestet:
Bleibt bei dieser Zeile "ComboBoxStandort.List = shverweise.ListObjects("tblStandort").DataBodyRange.Value"
stehen. Hier öffnet sich die Fehlermeldung. "Laufzeitfehler '9': Index außerhalb des gültigen Bereichs".
Ich kann aber nichts falsches erkennen, die Zeile ist identisch, wie sie es Kai geschrieben hatte.
@@bmbinder Ok. Stimmt der Codename des Tabellenblattes? Dort müsste ja dann anstatt Tabelle2 shverweise stehen.
@@SanceZZ82 Ja, dass stimmt auch überein. Das Problem gibt es, nachdem vorher die UserformNeu exportiert wurde, dann die UserformNeu in UserformBearbeiten umbenannt, dann die UserformNeu wieder importiert wurde.
Habe soeben den Fehler gefunden. Im Tabellenblatt "Verweise" hab ich Nameensmanager nachgesehen, und hatte ich Tabelle1, Tabelle2, tblStandort und tblMarketing. Hab dann die beiden tbl gelöscht, die Tabelle 1+2 konnte man nicht löschen, dann habe ich die beiden Tabellen mit "Bearbeiten" diese zu den "tbl" umbenannt.
Jetzt funktioniert es. Und jetzt kann ich wieder fortsetzen ! Super. Learning by doing.
Hallo Kai, danke (!!) für deine ausführliche Anleitung, welche ich für mein Projekt umsetzen konnte. Nun möchte ich zusätzlich einen Filterfeld einsetzen (wie in deinem Video "Listbox suche"). Hier wird aber die Listbox anders befüllt und beim Ausführen des Codes bleibt mein Programm immer beim Listbox leeren, im Befehl Me.ListboxName.Clear hängen. Wie müsste der Code aussehen, wenn ich aufbauend auf diesem Video einen Filter setzen möchte? Hast du noch ein auf diese Video aufbauende Anleitung? Vielen Dank im voraus!
Hallo Kai.
Ich hoffe es geht dir gut und dass du ein guten Start in das neues Jahr hast.
Ich habe das Problem, dass in eine Zeile des Formulars werden Zahlen mit Dezimalzahlen eingetragen und wenn diese in die Zeile der Tabelle gespeichert sind, ist die Komma nicht erkannt und damit wird es in die Tabelle nicht berechnet, bzw. es gibt mir ein Fehler.
Das Problem habe ich auch mit "/" fürs Datum.
Irgendwie die Symbole die in das Formular eingetragen sind, werden in die Tabelle nicht erkannt und damit wird die Information als falsch erkannt, je nach der jeweiligen Formate je Spalte.
Wenn ich die Information direkt in der Tabelle eintrage, habe ich diese Probleme mit den Symbolen nicht.
Weißt du warum passiert so was mit dem Formular?
Das Problem hat mich heute verrückt gemacht.
Vielen Dank im Voraus.
LG aus Laufenburg
Das kommt wohl daher, dass aus der Textbox die Zahlen als Text übergeben werden.
Arbeite am besten hier mit Format:
z.B. A1.Value = Format (WERT, "##,##0.00")
Hoffe das hilft dir.
@@KaiWeissmann Hallo Kai.
Vielen lieben Dank für deine Antwort.
Für Zahlen hat es mich geholfen, da ist etwas ausversehen hatte. Leider habe ich das Problem noch mit das Datum.
Ich danke dir vielmals, dass du dir die Zeit genommen hast, um mich zu antworten.
Das ist richtig nett!
Ganz viele Grüße aus Laufenburg
Hey habe eine Kurze Frage, und zwar zu deinem Speicher Button. Ich habe eine Intillegente Tabelle generiert. Wenn ich aber deinen Button Speicher Code benutze schreibt er den Wert unter die Tabelle und nicht wie es sein sollte in die erste leere Spalte. Vllt kann mir hier jemand weiterhelfen :)
Hallo Kai,
nach dem ausführen vom Doppelklick und nachdem das Bearbeitungsfenster geschlossen wurde, dreht sich der Windows-Mauszeiger ununterbrochen (Loading Indicator) bis man mit der Maus wieder über die Listbox fährt. Weißt du woran es liegt? Ist auch in deinem Video zu sehen an Stelle @56:51
Wenn ich den Markos ausführe und einen "Neuen" Eintrag einfügen möchte, bekomme ich eine Fehlermeldung (Laufzeitfehler) und excel stürzt ab. Habe zwar einige Anpassungen durchgeführt aber funktioniert leider immer noch nicht
Tolles Video - danke dafür. Habe festgestellt, wenn die Personaltabelle leer ist, bekommt man den Laufzeitfehler 1004. Sobald ich nur eine Spalte befülle, funktioniert alles. Wie könnte man diesen Fehler abfangen bzw. wie funktioniert das, wenn die Tabelle leer ist. Danke für die Rückmeldung. Gruß Volker
Hallo, freut mich, dass dir das Video gefällt! Den Fehler kannst du abfangen, indem du mit der If-Bedingung prüfst, ob die Zellen in der Tabelle befüllt sind. Falls nicht, dann überspringst du den fehlerhaften Codeteil. LG Kai
Hallo Kai,
ich hab das jetzt mal nachgebaut und irgendwie sagt mir mein Excel 2016 dass bei der Userform Bearbeiten die Variable "neueAktuelleZeile" nicht definiert ist. Kann es möglich sein, dass ich noch etwas freischalten muss für die Public Variablen???
Hallo Kai erstmal danke für das super Video das mir sehr geholfen hat!
Ich hab ein kleines Problem und finde nirgends eine Lösung:
Meine Exceltabelle und die Listbox übernehmen nach dem Bearbeiten die neuen Werte, die userform leider nicht.
Beispiel: ich ändere den Namen von Lisa auf Lisatest. Die Tabelle und die Listbox passen sich an. Ich klicke auf die Zeile um das 'test' zu entfernen und es steht weiterhin nur 'Lisa' im Namen. Hast du eine Vermutung wo dieser alter Wert herkommen könnte?
Ich wäre sehr froh über eine Antwort.
Viele Grüße
Du kannst dir die fertige Anwendung hier Downloaden: vbatrainer.de/eingabemaske-mit-datenbank/
Und den Code vergleichen.
Ich hoffe das hilft dir.
Lg, Kai
Super, aber mir fehlt nach den Löschen das neue Sortieren/Aktualisieren der IDs.
Hallo Kai, was für ein tolles Thema, suche ich schon sehr lange nach.echt Weltklasse.
Herzlichen Dank für die Arbeit.
Funktioniert alles echt toll so wie es soll, aber
Ich kann etwas so überhaupt nicht nachvollziehen, heißt ich verstehe es nicht.
Es geht um die Aktualisierung der Listbox:
Der Code zum Aktualisieren der Listbox wird mit dem Button neu durch den Call Befehl ausgeführt,
wieso funktioniert die Aktualisierung aber, wenn ich in einer anderen Userform den Button Speichern drücke,
wo dementsprechend kein Code existiert.
Ich würde den Code dort platzieren, was meines erachtens Logisch ist.
lg Gerhard
Hallo Gerhard, ich habe es in diesem Video so gehalten, dass alles was die ListBox betrifft, in der ursprünglichen UserForm gespeichert ist. Du kannst es auch in den Speichern-Button der anderen UserForm machen, das vergrößert allerdings den Code. Hoffe die Erklärung hilft dir weiter. LG Kai
Hey Kai,
Ich habe eine Fehlermeldung bekommen und kann es nicht lösen
Laufzeitfehler '9':
Index außerhalb des gültigen Bereichs
Wie kann ich es lösen?
Lade dir am besten die kostenlose Vorlage herunter: Vorlage zum Video: vbatrainer.de/eingabemaske-mit-datenbank/
Und vergleiche den Code.
@@KaiWeissmann danke hatte mich nur vertippt :)
Guten Abend Herr Weissmann,
vielen Dank für das Video, habe soweit alles hinbekommen.
Leider funktionieren die Formeln im Tabellenblatt nicht mehr, wenn man in die Textbox der UserForm ein Datum schreibt. Habe schon mit CDate versucht, aber funktioniert leider nicht. Könnten Sie mir sagen, wie ich den Code anpassen muss?
LG
Super Video und ein ganz toller Kanal! Eine Frage: Wie kann ich eine so erstellte ListBox in z.B. Spalte 2 nach Alphabet aufsteigend sortieren?
siehe dazu mein Video Listbox sortieren: ua-cam.com/video/II5GOy7xlos/v-deo.html
@@KaiWeissmann Danke Kai, das habe ich mir bereits angeschaut, leider bekomme ich es nicht hin, dass es auch sortiert.
Guten Tag Herr Weissmann, mal wieder ein hilfreiches Video, Super Klasse und Danke dafür. Ich versuche dadurch zu lernen und es in meinen Projekten umzusetzen. Ich stehe aber vor einem Problem: Bei 43:05 werden ja die einzelnen Zellen "Befüllt", u.a. mit dem Ergebnis der OptionButton.(hier Vollzeit oder Teilzeit). Ich habe aber 3 OptionButton (als Groubname zusammengefasst) Wie muss ich dann die .cells Anweisung schreiben, wenn ich 1, 2 oder 3 als Ergebnis haben möchte? Vielen Dank im voraus
Sehr cool! Wie würde es sich verhalten wenn die man eine Liste mit 52 Datensätze anstatt der 11 im Video hat? Ist es dann möglich in den Datensätzen zu scrollen? Oder könnte man diese Funktion einbauen?
Schau dir mal sein Video "Scrollfunktion Listbox an"
Super! Danke euch, das hilft mir sehr für mein Projekt! 🙂
Hallo Kai, wie kann ich in deiner Beispieldatei eine Textbox mit Überwachung für Listbox suchen einbauen?
mal wieder ein super cooles Video zum Lernen.. Weiter so :) ich würde gerne wissen wie ich die zu bearbeitende Zeile (den Wert) in eine Globale variable übergeben kann, damit ich diese über ein Sub in einem anderen Modul zum Speichern der Daten verwenden kann. ? LG Christian
hierzu habe ich nochmal eine Frage, die mich schon länger beschäftigt:
Bei dem Sheet Verweise sagst du ja, daß sich diese auch immer aktualisiert 😳
das tut sie aber nicht.
Angenommen, du speicherst einen neuen Mitarbeiter für Berlin - dort gibt es aber nun eine neue Abteilung "XY" - diese Abteilung wird im Sheet Personal ja gespeichert, taucht aber dann beim Befüllen der Comboboxen nicht auf, weil die ja aus dem Sheet Verweise kommt - richtig?
Könnte man diesen Eintrag dann auch automatisieren?
Ich frage deswegen, weil in meiner Anwendung der Eintrag "Empfänger" immer wieder mal einen neuen Wert hinzubekommt
Du könntest mit einer If-Bedingung abfragen, ob der Wert in Verweise bereits vorhanden ist.
Wenn nicht, dann diesen dort hinzufügen.
Ich hoffe das hilft dir weiter.
Bei mir kommt bei 36:52 der Fehler " Laufzeitfehler'1004' die Max-Eigenschaft des worksheetFunction-Objektes kann nicht zugeordnet werden." Was kann ich dagegenmachen?
auch wenn das Video schon älter ist eine Frage dazu. Wenn die Liste in shpersonal bis auf die Überschriften leer ist bekommt man beim Aufruf des Forms nur Laufzeitfehler 1004. Liegt ja wohl an der Resize -1, kann man das irgendwie lösen das man mit einer leeren Datenbank beginnen kann. Bringt es Gefahren mit sich wenn das -1 bei Resize einfach weg fliegt. dann wäre ja die Range nur unten mit ner leeren Zeile das sollte ja nicht schlimm sein oder?
Du könntest den ersten Eintrag in der Liste händisch hinzufügen, dann sollte das Problem nicht auftreten.
Du könntest es auch mit einer If Bedingung abfangen.
Wenn Liste Leer dann ohne Resize -1, ansonsten mit Resize -1
Ich hoffe das hilft dir weiter.
@@KaiWeissmann danke für die Antwort das hilft mir weiter
super Video(s)
Eine Frage zu den Optionsschaltflächen:
Ich habe Ausgabe oder Einnahme als Optionen
wie mache ich das beim Speichern, wenn die Ausgabe in Spalte 9 bzw. dann (bei Option Einnahme) die Spalte 10 ausgefüllt werden soll
Spontan würde ich das mit einer If Bedingung verknüpfen.
If Option 1 =True dann Spalte 9
Else Spalte 10
ich hoffe das hilft dir weiter.
@@KaiWeissmann ja, danke 😊🍻
Top Video? Kann ich auch mehrere unterschiedlich Verweise einbetten. LG
wenn ich auf bearbeiten gehe dan wird mir der Vorname in TextboxNachname angezeigt
Was habe ich falsch gemacht ?
Super Video, hab aber noch eine Frage.
Ich wollte beim listboxbefuellen mit der .Sort Methode die Tabelle sortieren vor dem erneuten befuellen der Listbox, leider hab ich irgendeinen Fehler, kannst Du mir helfen ?
Dim rng As Range
Set rng = shPersonal.Range("A1").CurrentRegion
'Set rng = rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Sort(Key1:="C2", Order1:=xlAscending)
Das sortieren einer Listbox zeige ich hier: ua-cam.com/video/II5GOy7xlos/v-deo.html
Ich hoffe das hilft dir weiter
Hallo Kai
Ich möchte eine Eingabemaske für DVD/Blu-ray (7 Spalten) kann aber keine finden habe es auch schon mit VBA probiert komm aber auf keinen grünen Zweig.
Hallo Kai, sehr interessante Videos! Habe schon einige Sachen von dir getestet, super...
Hätte auch mal eine Frage die schon ein anderer User gestellt hat, aber irgendwie komme ich auch damit nicht so ganz zu recht:
"Hallo Kai, wir würde das eigentlich aussehen, wenn die UserFormNeu oder UserFromBearbeiten auf eine intelligente Tabelle zugreifen würde, wie Du Sie zum Beispiel in deinem Tutorial "Datenbank erstellen mit Eingabemaske" hinterlegt hast.
Dim tbl As ListObject
set tbl = shPersonal.ListObjects(1)
Set tbl = tbl Offset(1, 0).Resize.Count -1)
und in er With Anweisung von rng auf tbl ändern funktioniert nicht - wie geht das?"
Vielleicht kannst du das Ganze noch mal kurz kommentieren?
Hallo Michael, freut mich, dass dir das Video gefällt! Du sprichst die intelligente Tabelle dann am besten über tbl.Range oder .DataBodyRange an, wenn du sie befüllen willst. Hoffe das hilft dir weiter. LG Kai
Hey könntest du bitte einmal erklären wie man automatisch einen Verteiler in seinen Kontakten erstellen kann? Also, dass ich als Beispiel 4 Personen mit einer Mail in eine exceltabelle schreibe, auf übertragen klicke und dann den Verteiler XX in meinen Kontakten habe? Am besten noch, dass wenn ich dort eine Person ändere, er automatisch den alten Verteiler überschreibt 😊
Moin.....
wie kann ich mir bestimme Bereiche aus einer intelligenten Tabelle anzeigen lassen?
Zum Beispiel (inkl. "Überschrift/Bezeichnung) A4 bis D(Ende) und dann wieder ab I4 bis L(Ende) ???
Ist das möglich?
VG
Mario....
PS
Danke für die Videos.....die konnten mir schon sehr weiterhelfen!!!! Sehr qualitativ!
Hallo, hab mir gerade ein Video angesehen bei dem es um eine Datenbank geht. sehe mich nicht in der Lage selbst eine nachzumachen. Dazu 2 Fragen, erstens kann man auch Foto einbinden, bzw. würdest du eine solche auf Bedarf erstellen (für mich ) ? Wie kann ich dich direkt erreichen? Gruß Rupert
du kannst dir die fertige Anwendung hier herunterladen: vbatrainer.de/eingabemaske-mit-datenbank/
Bezüglich Zusammenarbeit schaue gerne auf meine Website: www.vbatrainer.de
kann ich auch das komplette pack
mit eingebauter Suchfunktion kaufen ?
danke
Ich biete aktuell keine individuellen VBA-Programmierungen an.
Wenn du selbst eine Anwendung entwickeln möchtest, schaue dir gerne meinen Onlinekurs an: vbatrainer.de/onlinekurs/
wenn ich die Vorlage öffne
kommt die Meldung Laufzeitfehler
eigenschaftswert row source konnte nicht gesetzt werden
was mache ich falsch
danke
Bei der Fehlermeldung kannst du auf Debuggen klicken und kommst üblicherweise in die fehlerhafe Codezeile.
Hier kannst du dann mit der Fehlersuche beginnen.
Ich habe bei mir eben die Vorlage getestet und keine Probleme festgestellt.
Eventuell musst du deine Sicherheitseinstellungen anpassen, damit du extern erstellte Makros zulassen kannst - Detail dazu findest du hier: vbatrainer.de/makros-zulassen/
Ich habe die Datei runtergeladen.
Leider lässt sich schon beim ersten Button in der Tabelle die Userform nicht öffnen und ein Fehler wird angezeigt.
Hallo Hannes!
Hast du die Makros aktiviert?
Welcher Fehler wird angezeigt?
Grundsätzlich funktioniert die Anwendung einwandfrei.
Lg, Kai
Danke für deine Bemühung, hab’s jetzt doch hinbekommen. Lg
Sehr gut erklärt. Wie macht man es denn, wenn einem Mitarbeiter eine bestimmte id zugeordnet ist das diese bei der Auswahl des Mitarbeiters automatisch in der Form zugeordnet wird.
Eigentlich wird die entsprechende ID dem Mitarbeiter zugeordnet.
Lade dir nötigenfalls gerne die kostenlose Vorlage zum Video herunter, und vergleiche den Code:
vbatrainer.de/eingabemaske-mit-datenbank/
@@KaiWeissmann also so wie ich das Video verstanden habe wird bei jedem Eintrag eine neue ID generiert (fortlaufend) aber ich schau es mir mal an :)
Ja, bei jedem Eintrag (Anlegen) wird eine fortlaufende ID vergeben.
Beim bearbeiten wird die ID aber beibehalten.
Also ist jedem Mitarbeiter eine bestimmte ID zugeordnet.
@@KaiWeissmann bei mir waren die IDs bereits vorgegeben. Es würde bei mir also Sinn machen im Reiter "verweise" neben dem Namen eine Spalte ID zu haben und in diesem Zusammenhang würde es Sinn machen aus dem Textfeld Name bzw Nachname eine Combobox zu machen und wenn ich z.b. max Müller auswähle das dann automatisch die zugeordnete ID in die Maske übernommen wird.
Du kannst die Anwendung natürlich deinen Bedürfnissen entsprechend anpassen!
Tolles Video.
Aber Vorsicht: wenn der letzte Eintrag bzw. Datensatz unten gelöscht wird, dann wird die ID von dem letzten Eintrag neu vergeben!
Zum Beispiel, wenn der letzte mit der ID 11 gelöscht wird, dann wird die ID 11 beim Anlegen eines neuen Datensatzes wieder vergeben.
Hallo, ich habe dieses Tabelle ähnlich gemacht mit Problemen, seit diesem Kurs habe ich meine Bug´s eleminiert. Nur eines will mich nicht gelingen, dass die Tabelle in der listbox und Excel nach unten bewegt und der aktuellste Eintrag immer die Erste Datenzeile ist. Leere Zeile oben einfügen geht, aber dann kann ich die Daten nicht rein bringen und die Listbox verhält sich bei der Darstellung sonderbar (die Datensätze verschwinden bis auf einen.
Sollte jemand eine Idee habe, wäre ich dankbar.
LG Michael
Ich empfehle dir dafür die Arbeit mit intelligenten Tabellen.
Schaue dir dazu gerne mein Video an: ua-cam.com/video/ey3xPAHNO2g/v-deo.html
Ich hoffe das hilft dir weiter.
Hallo Kai. Coole Video. Bei mir gibt es eine Fehlermeldung "Laufzeitfehler 1004, Anwendungs- oder Objektdefinierter Fehler". Beim Debugg wird mir der Code gelb markiert.
Kannst du mir einen Tipp geben, wie ich dieses Problem lösen kann? Die Fehlermeldung kommt bei der UserForm Bearbeiten. Danke dir, Gruess Matthias
Code:
[
Private Sub UserForm_Activate()
'Daten laden
With tb_Datenbank
'Kunden-ID
txt_KundenID.Value = .Cells(p_aktuelleZeile, 2).Value 'Kunden-ID
End With
End Sub
]
Wieso werden hier eigentlich normale tabellen mit intelligenten gemischt? Der Code mit xlup etc wäre bei einer intelligenten Tabelle gar nicht notwendig oder sehe ich da was falsch?
Hallo Kai,
vielen Dank für das Video !!es hilft sehr und die videos sind sehr verständlich und erklären alles fast von selbst :)
ich hatte eine fragen zu den wie kann ich das datum in die zeile einfugen
ich hab mir zwei andere videos von dir angeschaut , leider kriege ich es nicht hin,
wenn ich es so versuche bekomme ich in der Zeile das zu sehen "=@jetzt()"
With shboard
neueZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(neueZeile, 1).Value = TextBoxid.Value
.Cells(neueZeile, 4).Value = "=JETZT()"
ich mocht pro zeile automatich das datum haben wenn er die daten aus der userform in die tabele schreibt
vialen dank
Das aktuelle Datum erhältst du über Now.
Ich verwende dazu auch gerne die Format Funktion, um das Datum entsprechend zu formatieren.
z.B.: .Cells(neueZeile, 4).Value = Format(Now, "dd.mm.yyyy")
Hoffe das hilft dir.
Lg, Kai
@@KaiWeissmann vielen dank fur deine ratschlag das hat funktioniert
Hallo Kai ich hätte vielleicht noch eine Idee welche man in diese Userform einbauen kann. Was hälst du von einer sortier oder Filterfunktion? Ich würde dir mein Projekt gerne mal zeigen. Hättest du Interesse daran das zu sehen?
Zum Thema ListBox sortieren habe ich bereits ein Video: ua-cam.com/video/II5GOy7xlos/v-deo.html
Und ListBox Suche: ua-cam.com/video/GkzXUKUxwUs/v-deo.html
Ich hoffe das hilft dir weiter.
Hallo Kai,
leider finde ich den download-link für das Beispiel nicht. Versteckt der sich etwa?
Hier der Link zur Vorlage zum Video: vbatrainer.de/eingabemaske-mit-datenbank/
Ist etwas schwer zu finden in der Videobeschreibung.
@@KaiWeissmann Dankeschön!
Hallo, leider fehlerhaft. Wenn ich alle Einträge lösche, kann ich weder einen neuen User anlegen, noch die Userform aufrufen. Er versucht dann die Userform mit den vorhandenen zu öffnen, was aber anscheinend nicht funktioniert, weil keine Einträge vorhanden sind.
Versuche einmal den ersten Eintrag händisch in die Tabelle einzutragen.
Dann sollte die Userform auch wieder aufrufbar sein.
@@KaiWeissmann Das stimmt, erstmal danke dafür. Ich bin noch am lernen ;) aber wieso muss man das denn machen? Gibt es denn nicht eine einfache Codelösung? lg
Userform EintragBearbeiten bei Eingabemaske geht leider nicht ! Laufzeitfehler 1004!
Rowsource in Verbindung mit intelligenten Tabellen ist leider ne Katastrophe. Daher hast du wahrscheinlich deine Daten in Haupttabelle auch nicht als Tabelle formatiert?!
Ich habe mit der Verbindung von RowSource und intelligenten Tabellen bisher keine schlechten Erfahrungen gemacht, habe allerdings noch nicht soviel Erfahrung. Was für Schwierigkeiten sind bei dir aufgetreten?
Wieder mal ein tolles Video.
Ich hab in die Userform noch eine Suchfunktion eingebaut, die auch soweit funktioniert. (Suchen in listbox(mit additem)
Ich hab nur folgendes Problem:
Wenn ich einen Eintrag suche, und dann auf bearbeiten klicke, kommen Immer die Daten des ersten Eintrags (kleinste is der gesamten Liste ohne suche).
Wenn ich ohne die Suche irgendeinen Eintrag bearbeiten möchte funktioniert alles wie es soll.
Ich hoffe ich hab mich verständlich ausgedrückt.
Vielleicht hat jemand einen Tip.
Hallo Florian,
Hast du dein Problem gelöst?
Und wenn ja wie? Ich scheitere gerade dabei überhaupt eine Suchfunktion zu integrieren.
Wäre für eine Lösung dankbar.
Gruß Hannes
@@hannesklotz7075 hallo Hannes.
Ich hab das Problem zwar hinbekommen, aber es fünktioniert seeeehr langsam.
Ich möchte es nochmal umstellen.
Wenn ich eine Lösung habe meld ich mich bei dir.
Danke!
@@floh255 hallo Florian.
Könntest du mir schonmal deine erste Lösung geben, dass ich wenigstens irgendeine Suche habe auch wenn sie langsam ist.
Ich wäre dir sehr dankbar. ☺️
@@hannesklotz7075 wie kann ich dich denn erreichen damit ich dir was schicke?
Test
Leider bekomme ich bei "Bearbeiten" einen Laufzeitfehler Nr.9 angezeigt und den Hinweis "Index außerhalb des gültigen Bereichs"
Gehe ich auf Debuggen zeigt er mir gelb unterlegt die Zeile "frm.aktuelleZeile = ListBoxMitglieder.ListIndex + 2" (Personal heist bei mir Mitglieder, da es für einen Verein gedacht ist).
Habe auch nach längerem Suchen und vergleichen den Fehler nicht gefunden.
Hallo Bernhard!
Vielleicht hilft es dir, die kostenlose Vorlage herunterzuladen und mit deinem Code zu vergleichen?
Vorlage zum Video: vbatrainer.de/eingabemaske-mit-datenbank/
Lg, Kai
Hey Kai,
gestern habe ich bereits mit Hilfe deines Videos eine Navigation mit Hamburger, sowie Verwaltungsseite erstellt 🤩
Nun bin ich dabei Mithilfe "Eingabemaske mit Datenbank" meine eigene Kundendatei zu erstellen. Hier komme ich leider gerade nicht weiter 😢
Könntest du mir bitte helfen 🙏
UserForm Personal habe ich erstellt, das funktioniert soweit.
Bei Makro zuweisen "Strg q" bekomme ich immer eine Fehlermeldung.
Habe auch einen Button in meiner Tabelle "Kundendaten" eingefügt (und gruppiert) auf den ich klicken möchte um auf meine Datenbank zu gelangen, wo ich quasi meine neuen Kunden anlegen, bearbeiten und löschen kann.
Ich bekomme den "Laufzeitfehler 438" - Objekt unterstützt diese Eigenschaft oder Methode nicht
Im Modul hab ich hinterlegt:
Sub UserFormKundendatenAufrufen()
UserFormKundendaten.Show
End Sub
(habe auch alle Namen, Tabellen etc im MouseMoce etc auf meine Bedürfnisse angepasst)
Schau mir nun schon seit 2h alle deine Videos durch und komme einfach nicht auf den Fehler/Problem. Sämtliches einlesen in die Vba führt zu einem neuen Laufzeitfehler 🙈
Könntest du mir hier bitte bitte kurz unter die Arme greifen?
Ich danke dir! 🙏
LG aus Salzburg
Nicki 👋
Hallo Nicki, hast Du schon mal dein Problem gelöst?
LG
@@ymohamed3154 Nein leider...
@@KartenDesign_Nicki_Hess Ich bekomme leider die gleiche Fehlermeldung. Hoffe Kai uns weiter helfen bzw. antworten kann
Kann mir bitte jemand helfen ?!!! Bei mir gibt die Textbox einen falschen Bezug auf ein anderes Tabellenblatt wieder. er soll sich auf ShDatenbank beziehen und macht es einfach nicht...verrückterweise nur ab und zu mal....ich bin überfordert ! :
Private Sub UserForm_Initialize()
' Zellbereich einlesen
Dim rng As Range
Dim L As Long
Set rng = ShDatenbank.Range("B4").CurrentRegion
Set rng = rng.Offset(3, 0).Resize(rng.Rows.Count - 1)
' Listbox befüllen
With ListBoxDaten
.RowSource = rng.Address(external:=Trues)
.ColumnCount = rng.Columns.Count 'Sapltenanzahl festlegen
.ColumnWidths = "100;1;35;35;40;40;30;60;100;80;70;95;0;0;65;90;0;0;0;00;45;55;0;0;0;0;0;50;0;0;65;60;70"
.ColumnHeads = True
.ListIndex = 0
End With
End Sub
Sub DatenSpeichern()
Dim DatenbankTabelle As Worksheet
Dim EingabeMaske As Worksheet
Dim letzteZeile As Long
Set DatenbankTabelle = ThisWorkbook.Sheets("Datenbank") ' Namen des Tabellenblatts anpassen
Set EingabeMaske = ThisWorkbook.Sheets("Eingabemaske") ' Namen des Tabellenblatts anpassen
letzteZeile = DatenbankTabelle.Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Finde die nächste leere Zeile in der Datenbanktabelle
With DatenbankTabelle
.Cells(letzteZeile, 1).Value = EingabeMaske.Range("NameFeld").Value ' Namen des Eingabefelds anpassen
.Cells(letzteZeile, 2).Value = EingabeMaske.Range("AlterFeld").Value ' Namen des Eingabefelds anpassen
' Weitere Felder entsprechend übertragen
End With
MsgBox "Daten gespeichert!", vbInformation
EingabeMaske.Cells.ClearContents ' Leert die Eingabefelder nach dem Speichern
End Sub
Ein suuuper Video, sehr anschaulich und informativ!!!
Kann es sein, dass der o.g. Link zu dem YgiKa9.gif nicht korrekt ist? Ich sehe nur einen dunklen Bildschirm...
Vielen lieben Dank für Deine Mühe!!
Grüße
Arnd Jünemann
In der Mitte des dunkeln Bildschirms sollte ein kleiner weißer Punkt zu sehen sein.
Eventuell musst du ein bisschen reinzoomen. Diesen per Rechtsklick anklicken und herunterladen.
Lg, Kai
@@KaiWeissmann Herzlichen Dank, den kleinen Punkt hatten meine alten "Rentneraugen" gestern Abend nicht gesehen!!!