Unglaublich. Man kommt sich wie ein Anfänger vor. Das muss ich erst einmal verinnerlichen und dann produktiv umsetzen! Vielen Dank für die tollen Videos!
@Peter-ze1djАй бұрын
Warum benutzt Du rngData.Cells(i, 1) = rngData.Cells(i, 1) + 10 nicht Tabelle1.Cells(i, 1) = Tabelle1.Cells(i, 1) + 10?
Kai, ein absoluter Hammerbeitrag ab sofort werde ich das Arbeiten mit Array nutzen ... vielen Dank
@KaiWeissmann Жыл бұрын
Viel Erfolg!
@bugsbunny43292 жыл бұрын
Super,wie immer...herzlichen Dank für deine Mühe...
@KaiWeissmann2 жыл бұрын
Hey Bugs Bunny! Sehr gerne! Lg, Kai
@nachmacher822 жыл бұрын
Vielen Dank für das tolle Video.
@KaiWeissmann2 жыл бұрын
Sehr gerne :)
@Froli-ze1qp3 жыл бұрын
Super hilfreich!! Danke für das sehr gute Video.
@KaiWeissmann3 жыл бұрын
Danke für das Feedback :)
@richardpanther21533 жыл бұрын
Dankeschön! Seitdem ich deine Lernvideos für Excel VBA gefunden habe steigt meine Lernkurve steil an. Die englischsprachigen Lernvideos und Internettipps sind doch erheblich mühsamer. Jetzt kann ich meine "Jugendsünden" in meinen Makros endlich überarbeiten und professioneller gestalten. Supi
@KaiWeissmann3 жыл бұрын
Hallo Richard, vielen Dank für deinen netten Kommentar und viel Spaß beim Überarbeiten der Makros! LG Kai
@andreasrudolph73853 жыл бұрын
Du hast immer eine interessante Themenauswahl und ich lerne aus deinen Tipps jedes mal was dazu. Super!
@KaiWeissmann3 жыл бұрын
Hallo Andreas, vielen Dank für dein Feedback. Es freut mich sehr, dass dir die Themenauswahl gefällt :)
@Zeta_Reticulum3 жыл бұрын
Ich dachte immer ich hab mich schone einigermaßen in die VBA Geschichte eingearbeitet. Aber deine Videos zeigen mir das es noch viel zu lernen gibt... habe gleich geabot xD Danke, super erklärt 👍
@KaiWeissmann3 жыл бұрын
Freut mich, dass du aus den Videos noch etwas mitnehmen kannst Zeta :)
@ThisIsScorefun2 жыл бұрын
Super erklärt - Danke ! Mit (mehrspaltigen) Arrays stehe ich noch ein bisserl auf Kriegsfuß...Dein Video hat mir sehr geholfen, es besser zu verstehen
@KaiWeissmann2 жыл бұрын
Hey Roger, ja, die Arbeit mit Arrays ist anfangs etwas schwierig. Es lohnt sich aber, weil sie einfach so viel schneller sind. LG Kai
@leroix64222 жыл бұрын
Tolles Video!! Sehr informativ. Mache grad ein Fernstudium zum geprüften Programmierer und deine Videos sind eine super Ergänzung für mich zum lernen :) keep up the good work
@KaiWeissmann2 жыл бұрын
Hey Leroix! Danke für dein Feedback! Alles Gute beim Studium! Lg, Kai
@SvenSchulteHillen6 ай бұрын
Super gut. Klar und echt hilfreich. danke
@KaiWeissmann6 ай бұрын
Vielen Dank für dein Lob! Alles Gute bei deinen Projekten.
@gerhardgrensemann27873 жыл бұрын
Hallo, Ich hab bisher mit Arrays nur meine Listbox befüllt, und das Thema etwas vernachlässigt. es lohnt sich wie ich sehe da etwas genauer draufzuschauen...... Wiedermal ein Super Video thx Hier mal ein Bsp. wie ich ein Array bis jetzt nutze: Dim intlRow as Integer, Arr With tbl_Daten intiRow = .Cells(Rows.Count, 1).End(xlUp).Row Arr = .Range(A3:C" & intlRow) With Me.lst_Daten .ColumnCount = 3 .ColumnWidths = "50;60;20" .List = Arr end With end With
@KaiWeissmann3 жыл бұрын
Hallo Gerhard, vielen Dank für deinen Kommentar und vorallem für deinen Beispielcode, der sicher einigen helfen kann! LG Kai
@JS-rn8tb2 жыл бұрын
Vielen Dank! Du bist ein echter VBA-Profi. Das merkt man daran, wie gut, einfach und schnell du es mit den schwierigen Arrays erklärt hast. Viele wagen dieses Wort nicht in den Mund zu nehmen. Ich habe das Gefühl gehabt, als wärst du der Excel-Entwickler. Komm gibs zu, du arbeitest bei Microsoft ;) Spaß! Also, dankeschön nochmal:)
@KaiWeissmann2 жыл бұрын
Da hast du mich erwischt 😅 Danke für deinen Kommentar!
@ronnykrause63713 жыл бұрын
Moin sehr gut erklärt gefält mit gut vielen dank
@KaiWeissmann3 жыл бұрын
Hi Ronny, vielen Dank für dein Feedback :)
@vitez198812 жыл бұрын
Top Video 💪🏽
@KaiWeissmann2 жыл бұрын
Danke dir :)
@DerRumo2 жыл бұрын
Sehr schöne Demonstration. Ich habe das auch feststellen müssen bei einer umfangreicheren Aufgabe. Da habe ich fast alles auf Array-Bearbeitung umgestellt bis auf eine Sache. Da bin ich mir leider nicht sicher, ob ich das so ohne weiteres in Arrays lösen kann, aber ich werde mal schauen, ob es doch irgendwie mit meinen Kenntnissen, die ich seit dem letzten Mal, dass ich an dem Projekt gearbeitet habe, erworben habe. Knackpunkt war damals glaube ich das Sortieren der Werte im Array, aber vielleicht brauche ich das gar nicht, wenn es im Array so viel schneller geht, dass ich einfach jedes Mal alle Werte durchgehen kann anstatt nur bestimmte.
@KaiWeissmann2 жыл бұрын
Freut mich, dass es dir gefällt! Ansonsten kannst du natürlich auch im Array sortieren. LG Kai
@vornamenachname22602 жыл бұрын
Ich schreibe mehrdimensionale Arrays einfach in ein leeres Tabellenblatt. Da wird dann sortiert und wieder eingelesen. Ist schnell programmiert und lässt sich gut kontrollieren.
@ThomasBurger-tp7pj8 ай бұрын
Hallo Kai Super Sache :-). Kann ich auch Formatierungen über das Array verändern? z.B. die Zellenhintergrundfarbe?
2 жыл бұрын
Hallo, alles schön erklärt! Aber wäre die Range -Methode nicht viel schneller, wenn man mit application.ScreenUpdating=false das Refreshen der Tabelle zur Makro-Laufzeit ausschaltet?
@KaiWeissmann2 жыл бұрын
Hallo Björn, freut mich, dass dir die Erklärungen gefallen. Meines Wissens nach bleibt der Array gerade bei großen Datenmengen wesentlich schneller. LG Kai
@MrStefanFrick Жыл бұрын
Vielen Dank für die Schritt für Schritt Erklärungen. Mich würde interessieren wie ich für den Array-Bereich die Funktion Trim anwenden kann. Ich habe regelmäßig Listen bei denen die Trim Funktion in Range ca. 5 s bis hin zu 3 Minuten dauert.
@stevewichmann51482 жыл бұрын
Super, das kann ich gut gebrauchen :) Eine Frage hätte ich an dich. Könntest du mal ein Video über Multithread machen? Ich weiß, VBA kann das ja nicht nativ, aber es ist über ne API anscheinend doch möglich :)
@KaiWeissmann2 жыл бұрын
Freut mich, dass dir das Video gefällt. Ich nehme das Thema mal auf. Falls das noch mehr Leute interessiert, mache ich dazu ein Video. LG Kai
@GeniusAtWork-s7f8 ай бұрын
Hallo, habe ich bei mir getestet. Leider erhalte ich in meiner Zieltabelle nicht alle Daten (Spalte A (Datum)) ist teilweise leer. Beim Array Transponieren tritt ein Fehler auf?. Die SQL Lösung finde ich interessant. Gibt es dafür noch Beispiele (Update, Delete, insert?). Ferner auch ein Video für die Arraybearbeitung? Würde diesen Ansatz gerne vervollständigen - sehr schnell. Helmut
@vitez198812 жыл бұрын
Kleiner Tipp, Strg + h, dann ist man auch sofort beim Ersetzen 😉
@KaiWeissmann2 жыл бұрын
Super, danke für den Tipp!
@Tedrayn2 жыл бұрын
Hallo Kai Ich bin immer wieder auf diversen Kanelen unterwegs um mein Wissen über die VBA Thematik zu erweitern. Die Gestaltung und Themenauswahl deiner Viedeos sind sehr ansprechen! Gerade zu den Arrays, giebt es doch einiges zu erzählen. Mich würde z.B interessieren wie ein befülltes Array sortiert werden kann…? Vielen Dank nochmals für deine Videos! Gruss Trick
@KaiWeissmann2 жыл бұрын
Hallo Trick, freut mich, dass dir meine Videos gefallen und danke für deine Videoidee! LG Kai
@djaeger1978 Жыл бұрын
Wo ist mein Kommentar hin? Egal, dickes Danke für Deinen Kanal, dem ich beruflich und privat nun schon einige Zeit (ver)folge. Ohne Deine tollen Videos wären meine Projekte nicht da, so sie jetzt stehen. Deine enstpannte Didaktik und netten Nebenerklärungen, wie der Editor und Zusatzfunktionen Anwendung finden, machen den Lernprozess sehr angenehm. Nun meine Frage: im Video erklärst Du, wie man das Array neben die Ursprungstabelle platziert, was als usecase Fragezeichen hinterlässt. Wie gelingt es, im Array manipulierte Spalten passend in die Urspungsrange/Tabelle zu schreiben? ich habe mal gehört, dass Excel dann im Prinzip nur 1x rechnet und nicht wie beim Auslesen via Schleifen jedesmal Rechenlast erzeugt wird. LG Daniel
@User85306 Жыл бұрын
Top! Hat mir extrem geholfen, vielen Dank! Ich konnte den Range auch ohne ReDim an den Array übergeben. Einfach: Arr=Range.Value. Hat das Nachteile, wenn ich es so mache? Die Dimensionierung des Arrays war dadurch identisch und nicht etwa maximal oder deutlich grösser.
@luckymr749 ай бұрын
Meine bisherige Lösung war die Berechnung und Bildschirm-Aktualisierung während der Ausführung abzuschalten. Das brachte auch etwas an Geschwindigkeit 'Am Anfang Application.Calculation = xlCalculationManual Application.ScreenUpdating = False eigentliches Skript 'Am Ende Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True
@NiceDevil Жыл бұрын
Hey Kai, dieser Tipp mit der Range ist natürlich Gold wert wenn man ihn richtig einsetzen kann. Könntest du das ggf auch einmal zeigen, sofern es überhaupt geht, wie man genausowas in Word für nen excel sheet machen kann? Also ich hab ne userform mit ner combobox in Word und die soll mit allen werten von einem excelsheet von der Range a1:a45 befüllt werden. Daran hab ich mir heute 3h Zähne ausgebissen (auch ChatGPT hat’s net gelöst) und bin dann wieder beim for next loop anstatt for each loop gelandet :/ Sonst natürlich besten Dank mal wieder!🎉
@stephanieknuth5703 Жыл бұрын
Hallo Kai, das Video ist super (wie all deine Videos) kannst du nochmal erklären warum die Ausgabe des Timers mit 0,3 Sekunden als langsamer bezeichnet wird als 2,7 Sekunden. Ich bin verwirrt :) Liebe Grüße
@joeberchtold9392 Жыл бұрын
Hallo Kai. Super Videos :) 😌 Ist es nicht so, dass bei, vorallem grossen Arrays, von Excel viel mehr Speicher zur Verfügung gestellt bzw.reserviert werden muss? Ich habe ein grösseres Projekt, wo möglich, alle Range Anweisungen durch Arrays ersetzt. Nun habe ich das Gefühl, dass Excel vermehrt "keine Rückmeldung" meldet. Die einzelnen Prozeduren laufen jedoch wesentlich schneller. Danke für die Tipps.
@PascalIttermann Жыл бұрын
Hi - wieder ein supper Video. Mal ne Frage - Variant verbraucht ja mehr speicher als eine String. Wenn man das Array als String definiert, dann funktioniert aber die zeille arr = rngData.Value nicht mehr. Wenn man nun beides verbinden will (Schnelligkeit und Speicherbedarf) Wäre es dann ratsam mit arr-Variant = rngData.Value alles in die Variable zu laden und dann per Schleife in ein arr-String zu überspielen und zum schluss mit Erase arr-Variant die Variant wieder zu löschen und mit der arr-string weiter zu arbeiten. Oder würde das vom Speicher her nichts bringen weil die arr-Variant bereits einmal dimensioniert wurde?
@ThegrayBall2 жыл бұрын
Hallo Kai, danke dir fürs Video. Das war super erklärt! Vor allem das Befüllen das Arrays was eine super Info für mich. Kann es sein, dass der Datentyp Range ganz schön kompliziert ist? Ich komm mit dem Datentypen einfach nicht klar. Der Datentyp Date ist genau so schlimm finde ich ^^'. Habe noch einen schönen Tag .). LG
@KaiWeissmann2 жыл бұрын
Ja, Date und Range dauern etwas länger, bis man sich damit auskennt :) LG Kai
@haraldmau95032 жыл бұрын
Hallo Kai möchte einzelne Programme die du ins Netz gestellt hast verbinden schreibe mich an ďas ich das besser erklären kann
@KaiWeissmann2 жыл бұрын
Hallo Harald, freut mich, dass dir meine Videos gefallen. Aktuell biete ich eine Zusammenarbeit im Rahmen meiner Coachings an. Falls dich das interessiert, dann schau gerne hier vorbei: vbatrainer.de/coaching/ LG Kai
@kiritokazugaya58712 жыл бұрын
Schönes Video, sehr verständlich alles! Ich arbeite sehr viel mit Formeln/Zellenbezügen und hauptsächlich der Zielwertsuche. Diese habe ich bisher immer in meinem Makro mit Range ausgeführt. Die Daten sind mitlerweile sehr viel geworden (ca. 7000 Zeilen) und es dauert dann schonmal 10 Minuten, um alles runter zu rechnen. Soweit ich es verstanden habe übernimmt ein Array jedoch nur die Werte, die für den Benutzer zu sehen sind und arbeitet nicht mit Formeln, da es ja Zahlenwerte sind. Gibt es trotzdem eine Möglichkeit mein Programm schneller zu machen, egal ob mit oder ohne Array? "ScreenUpdating = False" hab ich schon drin. :)
@KaiWeissmann2 жыл бұрын
Hallo Kirito, freu mich, dass dir das Video gefällt. Du könntest dein Programm schneller machen, wenn du die Formeln durch VBA Code ersetzt. Die Ergebnisse der Berechnung speicherst du dann im Array und fügst das Array auf das Tabellenblatt ein. LG Kai
@TheWolke07072 жыл бұрын
Hallo Kai, tolles Video und sehr effektiv. Es müsste doch auch möglich sein, eine komplette Spalte einer intelligenten Tabelle über den Namen in ein Array zu schreiben, oder? zB: ReDim arr("intelligenteTabelle[Spalte1]) Oder sieht das dann anders aus?
@KaiWeissmann2 жыл бұрын
Hallo Volker, freut mich, dass dir das Video gefällt! Du kannst eine Range in einen Array einlesen über Dim arr as Variant arr = Range("intTabelle[Spalte1]") LG Kai
@PortaliusDe3 жыл бұрын
Hallo Kai, danke für deine Videos. Besonders das Thema, wie kann ich die Berechnung beschleunigen, war für mich sehr interessant. Ich konnte dies auch zum Teil umsetzen, leider habe ich aber ein Problem, welches ich bisher nicht lösen konnte. In meinem Array sind auch Formeln enthalten. Diese lassen sich aber nicht einfach in einem "Rutsch" in eine Range schreiben. Kennst du dafür eine Lösung? Danke & Grüße
@yeahnick42602 жыл бұрын
Ich habe die Microsoft Liste auch gedownloadet. habe (fast) den selben Code wie du, aber bei mir gibt Ubound an exakt dieser Stelle 9:31 den Wert 700 her und nicht 701. Der einzige Unterschied den wir haben ist, dass meine Range Variable ab Zeile 2 bis "last" arbeitet. Also: Dim arr as Variant Dim Bereich as Range LastX = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row LastY = Tabelle1.Cells(1, 1).End(xlToRight).Column set Bereich = ( Cells(2, 1) , Cells( LastX , LastY) ) Redim arr ( 2 to lastX , 1 to LastY ) arr = Bereich.Value Debug.print LastX = 701 Debug.print Ubound(arr, 1) = 700 Warum ist das so?
@Treti18 Жыл бұрын
Du hast im Array eine Zeile weniger, da du ab Zeile 2 eingelesen hast.
@holgerhessling94812 жыл бұрын
Sehr gutes Video zum Thema - so wie alle Deine Videos sehr sehenswert sind. Ich selbst nutze die hier vorgestellte Technik seit jeher. Datenmanipulationen auf einem Tabellenblatt werden über den ‚Umweg‘ mit dem Array ‚rasend‘ schnell. Aber wenn die Datenmenge nur groß genug ist, wird auch Excel merklich lange beschäftigt. In meinem Fall kopiere ich ein 2D-Array mit etwas mehr als 15.000.000 Zellen auf ein Tabellenblatt. Da rührt sich Excel einige Sekunden lang gar nicht mehr. With ThisWorkbook.Sheets(cMESDaten) .Range("A3").Resize(UBound(vaAusgabeArray, 1) + 1, UBound(vaAusgabeArray, 2) + 1).Value = vaAusgabeArray End With Hast Du vielleicht einen Tipp, wie das beschleunigt werden kann? Gruß Holger
@KaiWeissmann2 жыл бұрын
Hallo Holger, freut mich, dass dir das Video gefällt. In deinem Codeausschnitt sehe ich keine Verbesserungsmöglichkeit. Bei vielen Einträgen braucht Excel einfach ein bisschen Zeit. Evtl. kannst du dem Benutzer das aber mit einem Fortschrittsbalken zeigen (erkläre ich hier: kzbin.info/www/bejne/hJq8ZmiCqtJ7aZo). Ich hoffe das hilft dir weiter. LG Kai
@holgerhessling94812 жыл бұрын
@@KaiWeissmann Vielen Dank für Deine rasche Antwort. Die Idee mit dem Fortschrittsbalken funktioniert an dieser Stelle leider nicht, denn der Kopiervorgang bremst/blockiert Excel selbst aus und man verliert die Kontrolle. Man muß einfach abwarten, bis die Sanduhr wieder verschwindet ;-)
@falco10203012 жыл бұрын
Mich würde nun der Hintergrund interessieren. Wieso ist diese Methode schneller ?
@KaiWeissmann2 жыл бұрын
Der Array wird nur im Arbeitsspeicher gespeichert. Änderungen auf dem Tabellenblatt sind immer recht aufwändig für den Computer
@falco10203012 жыл бұрын
@@KaiWeissmann perfekt danke dir :) gibt es denn schon das video was ich letztens gewünscht habe mit den tabellenköpfen direkt ansprechen bei intelligenten Tabellen?
@KaiWeissmann2 жыл бұрын
@@falco1020301 ein Video zu intelligenten Tabellen gibt es noch nicht. Videos werden bei mir ein paar Monate im voraus geplant. Du kannst hier mal reingucken: kzbin.info/www/bejne/i5-9XqV8ndNgnck&ab_channel=KaiWeissmann Bei 56:50 zeige ich, wie du Tabellenheader einer intelligenten Tabelle ansprechen kannst
@LebenWerden2 жыл бұрын
Gibt es VBA Vererbung?
@KaiWeissmann2 жыл бұрын
Klassen können einmal vererben in VBA
@LebenWerden2 жыл бұрын
@@KaiWeissmannGilt das auch für selbsterstellte Klasen?
@yeahnick42602 жыл бұрын
Hi Kai, warum machen die meisten Leute auf KZbin ein Array als Variant Datentyp? Reicht String nicht?? LG
@ungetuemer2 жыл бұрын
Schätze die Flexibilität des Variant! 😁
@stefankroemer Жыл бұрын
Naja.. natürlich kopierst du das Array in einen anderen Bereich, ansonsten würdest du deine formatierte Tabelle zerstören. Und wenn Formeln in der Tabelle stehen, werden auch diese durch die Werte ersetzt. Daher ist das lediglich nett..
@KaiWeissmann Жыл бұрын
Vielen Dank für dein Kommentar. Natürlich kommt es immer auch auf den Anwendungsfall an.