Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2013 VBA für Profis

Ganze Zeile auswerten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Durch eine Änderung am Range-Objekt lassen sich beim Klick auf die Anzeige nachträglich auch die gewünschten Informationen aus der Tabelle auslesen.

Transkript

Mit der MsgBox können wir uns ansehen, ich starte das einmal eben mit F5, wenn ich hier auf einen klicke, welche Excel-Zeile gelesen werden soll. Die ist sozusagen jetzt richtig ermittelt. Jetzt muss ich innerhalb der Excel-Zeile, da muss ich das im Moment zur Seite schieben, mehrere Zellen auslesen, die dahinter. Und, das braucht jetzt noch ein bisschen Vorarbeit, hier irgendwo hinschreiben. Also wenn ich hier erstmal abbreche, dann würde ich hier aus der Toolsammlung zum Beispiel erstmal einen Frame, ein Rahmenobjekt hinlegen, das ist dies mit "xyz". Das hat nämlich den Vorteil, dass es einfach nett aussieht und diesen Bereich schön umfasst. Ich klicke mal außerhalb, dann sehen Sie, da ist so ein bisschen versenkter Rahmen zu sehen normalerweise. Und das Ganze kriegt deswegen das Präfix frm, frame. Rahmen. Und Details. Die Caption können Sie entsprechend mit Details beschriften. Wenn ich das gleich mit Return bestätige, da oben steht es drin. Und darin, innerhalb dieses Rahmens, habe ich ein ganz schlichtes Label. Also hier irgendwie nach Herzenslust ein Viereck aufziehen. Und das ist dann lblDetails. Dessen Inhalt ist herzlich wurscht, der wird sich nämlich noch ändern. Ich schreibe schonmal vorläufig rein: "Weitere Details..." und mache es aus Gewohnheit hier nicht Opaque, undurchsichtig, sondern Transparent, sodass Farbänderungen hier auch da durchschlagen würden. Es soll auch nicht so ganz dunkel sein, also in ForeColor wechsle ich vielleicht mal auf ein mittleres Grau. Und ab jetzt kann ich da hineinschreiben, und zwar von diesem Ereignis aus. Also anstatt hier die Zeilennummer anzuzeigen, die Zeile habe ich in rngDetails in der Hand, kann ich jetzt dort was hineinschreiben. Ich mache das ganz gern mit einer Variable: Dim strDetails As String, wo ich erstmal sammeln kann, was ich brauche. Zum Beispiel erstmal schreiben; das, was ich auslesen will, ist die zweite Spalte, nämlich die mit der Firmenbezeichnung. Die steht zwar schon in der Liste, aber die kann man da ruhig nochmal nennen. Und dann sehen Sie, dass Sie es gleich mehr oder weniger kopieren. Davon ist es von rngDetails aus der Cells-Auflistung wir habe es jetzt ja mit einer Zeile zu tun. Ich kann also einfach von links aus loszählen. Cells(1) ist die erste Spalte und die Firmenbezeichnung steht in der 2. Spalte, also Cells(2). auch Cells sind eine 1-basierte Auflistung. Und davon hätte ich jetzt gern den Value. Und da können wir schonmal einen Zeilenumbruch dahinter schreiben, vbcrlf. Und das werde ich jetzt direkt kopieren. Allerdings muss man hier aufpassen, natürlich die bisherigen Inhalte von strDetails beibehalten. Und ich will den Vornamen und den Nachnamen, und zwar möglichst in der richtigen Reihenfolge haben. Ich schreibe sie erstmal einfach so rein, damit Sie sehen, dass es funktioniert. Das funktioniert aber natürlich erst dann, wenn ich auch Me.lblDetails.Caption = strDetails einmal zuweise, was da alles drinsteht. Und jetzt mit F5, steht im Moment noch "Weitere Details..." drin. Und wenn ich hier so einen anklicke, steht hier das, was ich eben ausgewählt habe, Cells(2), Cells(3) Und da kann ich jetzt, damit es in der richtigen Reihenfolge steht, da soll dann Roland Reich stehen, mich bedienen und einfach gucken, dass ich das schön mache. Also diese Zeile können wir ein paarmal kopieren. Da muss ich jetzt nur im Kopf haben, ich werde mir das dahinter schreiben, dass das der Nachname ist und deswegen hier keinen Umbruch kriegt, sondern mit Abstand ein Leerzeichen. Und mit Hochkomma kann ich ja Kommentare einleiten. Da gehe ich jetzt also einfach hin und notiere mir kurz, was da drin steht. Der Vorname, und da muss jetzt mal eben nachgucken, Straße, Postleitzahl, Ort, Land. Kann ich also schonmal, Straße, Postleitzahl, Ort, Land. Den müssen wir nochmal kopieren. Sie sehen, das ist keine intellektuelle Herausforderung, sondern schlichte Fleißarbeit. Und jetzt überlege ich mir, Nachname, Vorname, nein die sind überhaupt falsch rum. Ich habe nämlich schon die Nummern gewechselt. Also Vorname, Nachname. 4 und 3 sozusagen falsch rum. Jetzt kommt die 5. Das ist die Straße. Neue Zeile. Die 6 ist die Postleitzahl. Deswegen kommt hier auch wieder nur ein Leerzeichen rein. Und in 7 steht der Ort und das Land kann dann auch wieder, allerdings in 8 natürlich, in eine neue Zeile kommen. So einfach, so schnell. Und wenn wir das jetzt mit F5 testen, sehen Sie; da ist noch eine Zahl übrig, da muss ich nochmal prüfen, also nach dem Nachnamen und vor der Firma, Tatsächlich habe ich mich nicht mit der Nummerierung vertan, sondern, wenn Sie genau gucken, sind hier die ersten 4 Elemente enthalten. Und ein fünftes Element ist in meinem Range gar nicht enthalten. Dann geht Excel automatisch in die nächste Zelle, und die beginnt schon in der Zeile danach. Ich habe also schlicht übersehen im Moment, dass ich diesen Bereich nur auf 4 Spalten begrenzt habe. In Gedanken habe ich mir die ganze Zeile angeguckt. Und dann muss ich das in den VBA-Code entsprechend eintragen. Also Doppelklick hier. Der Trick besteht darin, dass dieser rngDetails jetzt nur 4-spaltig ist. Habe ich ja von Anfang an drauf geachtet. Ich möchte aber ganz gern von dieser richtigen Zeile die ganze Zeile haben, und habe das hier auch eigentlich vorausgesetzt. Deswegen können Sie hier einfach ergänzen: EntireRow, die ganze Zeile. Dieses Rows-Objekt ist so ein bisschen unspezifisch, deswegen klappt hier keine Liste aus, das muss man an der Stelle wissen. Sie könnten auch, wenn Sie das so nicht haben wollen, einfach in der nächsten Zeile schreiben: Set rngDetails = rngDetails.EntireRow, also die gesamte Zeile, dann ist das ein bisschen besser zu ermitteln. Und wenn Sie es jetzt ausführen mit F5, dann sehen Sie tatsächlich, wie erwartet sind da hinten auch die übrigen Elemente mit dran, korrekt. Das funktioniert also wunderbar. Sie können einen beliebigen anklicken und sehen jeweils dessen Details dazu.

Excel 2013 VBA für Profis

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

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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

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

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