Excel Funktion mit VBA aufrufen (XVERWEIS, SVERWEIS, SUMME, …) | Excel VBA

preview_player
Показать описание
Häufig möchten wir Excel Funktionen wie den XVERWEIS (früher SVERWEIS) oder die SUMMEN-Funktion ebenfalls in VBA nutzen. Damit sparen wir uns viel Zeit, die wir bräuchten, um diese Logiken selbst zu schreiben.

Wie wir Excel Funktionen in unserem VBA Code aufrufen, um die Ergebnisse davon weiter zu nutzen bspw. in einer UserForm oder einer Variable, ohne etwas auf dem Tabellenblatt zu machen, schauen wir uns in diesem Video an.

________

LINK zum Video

________

Timestamps

0:00 Ziel des Videos
0:44 Intelligente Tabelle erstellen
1:34 XVERWEIS (früher SVERWEIS) einfach erklärt
3:35 UserForm mit Auswahlliste
7:55 Textfeld sperren
8:33 ComboBox befüllen mit RowSource
9:08 ComboBox Change Ereignis
10:24 Excel Funktionen mit VBA nutzen
Рекомендации по теме
Комментарии
Автор

Du hast die wunderbare Fähigkeit Sachverhalte super zu erklären. Hoffentlich bleibst Du uns noch lange erhalten !

AstridGunther
Автор

Immer wieder eine Freude durch Deine Videos etwas zu lernen. Vielen Dank und weiter so! 👍🏻

AgentK
Автор

Du bist einfach super mit deinen Erklärungen! Vielen Dank 🤗

tanjazander
Автор

Wie immer tolles Video - vor allem die einfache und verständliche Erklärung macht den Unterschied aus.

Mach weiter so Kai, ich bin längst ein Fan von dir geworden 😅

robertusmaximus
Автор

Sehr gut erklärt, vielen Dank. Vor allem sehr hilfreich. Mach weiter so, super Arbeit!!!

falk
Автор

Wieder einmal ein sehr gelungenes Video und den XVerweis für VBA einfach super erklärt. Durch Deine Videos bin ich erst zu VBA gekommen. Also mach bitte weiter so. 👍

sevastian
Автор

Wie immer super erklärt. Danke und weiter so 👍

Peter_Friesen
Автор

Wieder ein super moderiertes Video! Den kleinen Shortcut eine Shape zu verdoppeln mit Strg + Maus drücken-wegziehen hätte ich gerne mal früher gekannt 😅 vor allem da das scheinbar mit jeder Form in Excel klappt.
Mir ist aufgefallen, dass ich bisher nur 1 mal in vielen vielen Makros eine Worksheetfunction genutzt habe. Du hast als Vorteil beschrieben, dass wir die Logik nicht selber coden müssen, da die Funktion ja schon da ist. Mich hätten im Video noch ein paar weitere konkrete Anwendungsvorteile interessiert, also in welchen typischen Situationen diese Funktionen hilfreich sind.
Wenn ich die Aufgabe gehabt hätte, deine Userform nachzubauen, hätte ich ganz klassisch einen Loop durch jede Zeile der Tabelle gemacht oder über den Autofilter oder .find jeweils gepaart mit .offset die ID ausgelesen. Es gibt oft viele Wege die ans Ziel führen - deshalb interessieren mich dazu auch die spezifischen Vorteile ggü. den Alternativen 😊
Liebe Grüße und bis zum nächsten Video 👍
P.S.: Und das war im Video wieder eine schöne Mechanik, die man super in deutlich komplexeren Userformen/Makros nutzen kann, um z.B. Variablen/Arrays zu dimensionieren!

philipantoni
Автор

Super erklärt, Danke. Wie würde der VBA Code aussehen, wenn der Verweis auf eine geschlossene Datei aussehen würde und nicht auf ein Tabellenblatt der aktiven Datei?

superbabb
Автор

Hallo Kai, ist es möglich eine Exceldatei zu öffnen - dabei soll gleich in einem bestimmten Tabellenblatt geöffnet werden? (egal wie die Datei vorher abgespeichert wurde)

Dino-odrv
Автор

Kool ich wusste noch nicht, dass Formeln auch im Code genutzer werden können. Bisher habe ich höchstens oer Cide Formeln in Zellen eingefügt.

Aber eigentlich müsste diese Foreml doch nur beim Form Init eigefügt werden und nich bei jedem change event oder funktioniert das nicht weil die Berechnung dann nicht angestossen wird beim wechsel?

mglauser
Автор

Hallo und guten Tag,

ich habe mal eine Frage.

Für meine kleine Hobbyzucht von Chilis habe ich mir eine Tabellen Übersicht gebaut.
Dafür habe ich ein System mit fortlaufenden Nummern.

Diese Nummerierung ist in der ersten Spalte. In den darauffolgenden Spalten stehen dann Detaildaten wie Sorte usw.

Pro Nummer können aber mehrere Daten, also mehrere Zeilen vorhanden sein.

Ich möchte nun das bei jedem Eintrag einer neuen Nummer ein neues vorformatiertes Tabellenblatt erzeugt wird das in der die Daten aus den Spalten eingefügt werden. Das aus allen folgenden Zeilen bis ich eine neue Nummer in die erste Spalte trage.

Hast du eventuell bereits Videos mit einer Ähnlichen Problematik gehabt? Ich brauche irgend eine Startpunkt, habe aber keine Idee.

Vielen Dank im Voraus.

papabasti
Автор

Klasse gemacht, Kai! Danke!
Habe aber eine Nachfrage: Du befüllst die Combobox mit Hilfe von ROWSOURCE im Eigenschaftenfenster. Dazu nutzt Du die ZS-Notation E8:E17. Es handelt sich aber bei Deiner Tabelle um eine intelligente Tabelle, die sich ja bei Ergänzungen automatisch erweitert. Was passiert dann mit der E8:E17 - Angabe aus dem Eigenschaftenfenster? Könntest Du dort nicht auch mit dem Namen der intelligenten Tabelle arbeiten? Also so: "tblKunden[KundenID]"?

paul-peterpan
Автор

Super erklärt 👌

Ich hätte da mal ne frage, würdest du ein Video darüber machen wie man sein Code verbessern kann oder anders gesagt, würde ich dir gern mein Excel Projekt schicken, darin wird zb 3x der gleiche ablauf aufgerufen nur mit unterschiedlichen Bedingungen, leider schaffe ich es nicht diese in zb eine eigenen Funktion zu packen um das ganze zu verkleinern und "verschnellern"

Alternativ wäre es mal interessant wenn du zeigst wie man so eine Intelligente Tabelle zb mit Access verknüpft als eine art sicheres backup der "datenbank" 😁

drfailbucket
Автор

Themenvorschlag: Outlook VBA, das richtige Verfahren bei neu eingehenden Mails.

gtainsiderable
Автор

Eigentlich eine Top-Information, hat mich aber 3 Stunden Lebenszeit gekostet, bis ich einen Workaround für eine Limitierung der WorksheetFunction.XLookup gefunden habe (bzw. meine Tochter...):

im Worksheet selbst habe ich die Funktion
";D16)-1));M4:BZ4;M3:BZ3;;1)
benutzt, wobei
DATWERT(LINKS(D16;FINDEN(" ";D16)-1))
aus einem Textfeld ("1.10.2023 - 31.1.2024") das erste Datum raussucht und in einen Datumswert umwandelt.

Wenn man genau die gleiche Funktion in VBA einsetzen will:
WorksheetFunction.XLookup(DateValue(Left(Range("D16"), WorksheetFunction.Find(" ", Range("D16")) - 1)), Range("M4:BZ4"), Range("M3:BZ3"), , 1)

kommt es IMMER zu einem Laufzeitfehler 1004

Erst, wenn man den Wert
DateValue(Left(Range("D16"), WorksheetFunction.Find(" ", Range("D16")) - 1))

in eine Zelle schreibt:
Range("B6") = DateValue(Left(Range("D16"), WorksheetFunction.Find(" ", Range("D16")) - 1))

kann man den Wert mit der WorksheetFunction.XLookup wieder benutzen:
WorksheetFunction.XLookup(Range("B6"), Range("M4:BZ4"), Range("M3:BZ3"), , 1)

=> Bin extrem offen für Erklärungen oder Fehlerbeseitigungen. Ich setze auf dem Rechner Office 365 ein.

HeikoGrethe