Die Vorschlagslisten in Excel sind perfekt geeignet, um die Eingabe zu beschleunigen. Haben Sie bereits ein paar Datensätze eingegeben, so wird z. B. in der Spalte Ort in der folgenden Abbildung ...

Excel Vorschlagslisten

... gleich ein Vorlag für den Ortnamen unterbreitet, sofern die Liste oberhalb einen eindeutigen Vorschlag liefern kann.

Genau hier, soll das folgende Makro ansetzen. Tatsächlich schlägt Excel erst etwas vor, wenn oberhalb der aktiven Zelle bereits ein solcher Eintrag vorhanden ist.

Der Wunsch soll es nun sein, dass die Funktion der Vorschlagslist sofort, für eine vordefinierte Liste bei einer neuen leeren Kopie des Blattes aktiviert ist.

D. h. Sie starten mit einem leeren Blatt, nur die Spaltenüberschriften (Anrede, Vorname, Nachname, usw.) sind vorhanden und Excel schlägt schon ein paar Orte vor. Soweit zum Ziel der Übung.

Ich nutze für den Start folgendes Beispiel:

Ein Verwaltungsblatt für Spielzeug, dass eine Spalte "Spielzeug" und eine Spalte "Vorfall" hat. In der Spalte Spielzeug, zeigt die Vorschlagsliste sofort einige Vorschläge an (Ball, Holzeisenbahn, Lego, usw.) ohne, dass diese zuvor eingegen werden mussten.

Excel Vorschlagslisten mit Vorschlägen in leeren Listen

Der Trick:

Sie sehen, dass die Liste erst ab der Zeile 50 startet. Die Zeilen 1 bis 49 sind ausgeblendet. Klar, dass sich in den ausgeblendeten Zeilen die Listeneinträge verbergen. Warum 49 Zeilen? Damit Sie genug Platz für Vorschläge der Liste haben.

Wer mehr Vorschläge benötigt nutzt die ersten 200 Zeilen oder auch mehr, um die Vorschlage hineinzubringen. Die Leeren Zellen werden dann mit dem deutschen Apostroph bzw. Hochkommata (') ausgefüllt.

In der nächsten Abbildung sehen Sie die ersten Zeilen eingeblendet:

Excel Vorschlagslisten

Die Spalte G enthält von G1 bis G4 ein paar Einträge (die auch unten in der Liste später sichtbar werden). Ab der Zelle G5 (für die Liste sind derzeit keine weiteren Einträge nötig) bis zur Zelle G49 wird ein Hochkommata eingetragen.

Das Hochkomma hat den Vorteil, dass es selbst nicht angezeigt oder gedruckt wird. Trotzdem ist es ein Eintrag in der Zelle. Damit wird die Liste bis unten zur Zeile 50 nicht unterbrochen und die Vorschlagsliste arbeitet einwandfrei.

Die Zeilen 1 bis 49 werden dann ausgeblendet. In den Zellen G50 und G51 sind ebenfalls Hochkommata enthalten. Wird nun in der Zelle G53 ein Eintrag getätigt, ...

Excel Vorschlagslisten mit Vorschlägen in leeren Listen

 

... ist die Vorschlagsliste bereit mit den ausgeblendeten Werten bestückt.

OK, die Leerzeile kommt durch das Hochkommata und der Eintrag "Spielzeug" ist die Überschrift der Spalte in Zelle G52.

Trotzdem funktioniert das Beispiel. Das soll zunächst die Idee sein.

Was nun hinzukommt, ist dass es für jeden Ort ein eigenes Tabellenblatt gibt. Wird ein Ort hinzugefügt, wird ein leeres Blatt erstellt, auf dem die Vorfälle abgetragen werden können.

Dieses "leere" Blatt wird mit "Vorlage" beschriftet.

Excel Vorschlagslisten

Wird ein neuer Ort hinzukommen, wird das Vorlagenblatt (mit allen Einträgen in den Zeilen 1 bis 49) einfach kopiert und als "K01", "K02", "K03", usw. angeboten.

Damit sind alle Einträge auch in diesen Blättern.

Fertig.

Was aber nun, wenn Sie die Einträge der Vorschlagsliste "Spielzeug" ändert oder einträge hinzukommen? Dann muss man in jede einzelne Tabelle und diese Einträge ergänzen. Das ist sehr aufwändig.

Die Lösung für diesen Fall schafft ein Excel Makro.

Ich lege vor die Tabellenblätter ein Blatt "Listen" an, das eine Hilfsliste für das Spielzeug ... Spalte D ... enthält (zusätzlich noch eine Liste für Vorfälle ... Spalte F ..., dass aber nur als Idee für weitere Vorschlagsfelder).

Excel Vvorschlagslisten

Dann erstelle ich mir über die Entwicklertools ein neue "Schaltfläche" ...

Excel Vorschlagslisten

... die beim Klick ein "Neues" Makro ausführen soll.

Excel Vorschlagslisten

Der Klick auf "Neu" erstellt ein neues Modul in der Excel Arbeitsmappe.

Eexcel Vorschlagslisten

Füllen Sie das Modul mit folgendem Code:

{xtypo_code}Sub Schaltfläche6_Klicken()

    Dim int_anz_tabellenblaetter As Integer
    Dim int_akt_tabellenblatt As Integer
    Dim int_akt_zelle As Integer

    'Ermittelt die Anzahl der Tabellenblaetter
    int_anz_tabellenblaetter = Sheets.Count

    For int_akt_tabellenblatt = 1 To int_anz_tabellenblaetter

        If Sheets(int_akt_tabellenblatt).Name <> "Listen" Then

            'Laeuft die Zeile 1 bis 49 durch

            For int_akt_zelle = 1 To 49

                'Kopiert die Zellen D1 bis D49 aus dem Tabellenblatt "Liste" in
                'die Zellen G1 bis G49 der uebrigen Tabellenblaetter
                If Sheets("Listen").Range("D" & int_akt_zelle) <> "" Then
                    Sheets(int_akt_tabellenblatt).Range("G" & int_akt_zelle) = _
                        Sheets("Listen").Range("D" & int_akt_zelle)
                Else
                    Sheets(int_akt_tabellenblatt).Range("H" & int_akt_zelle) = "'"
                End If

                'Kopiert die Zellen F1 bis F49 aus dem Tabellenblatt "Liste" in
                'die Zellen H1 bis H49 aus dem Tabellenblatt Liste in
                If Sheets("Listen").Range("F" & int_akt_zelle) <> "" Then
                    Sheets(int_akt_tabellenblatt).Range("H" & int_akt_zelle) = _
                        Sheets("Listen").Range("F" & int_akt_zelle)
                Else
                    Sheets(int_akt_tabellenblatt).Range("H" & int_akt_zelle) = "'"
                End If

            Next int_akt_zelle

        End If

    Next int_akt_tabellenblatt

End Sub{/xtypo_code}

Beachten Sie, dass der Name der Prozedur bei mir "Schaltfläche6_Klick" heißt. Bei Ihnen könnte die Schaltfläche die Schaltfläche "3" sein, so kann der Name der Prozedur durchaus abweichen.

Schließen Sie den VBA Editor und klicken sie auf die Schaltlfäche. Damit wird der Code ausgeführt und auf allen Arbeitsblättern, bis auf dem Blatt "Listen" werden die Einträge aus den Zellen "D1 bis D49" des Blattes "Listen" auf die übrigen Blätter der Arbeitsmappe übertragen. Das selbe passiert auch mit den Zellen F1 bis F49, diese werden auf alle Blätter in die Zellen H1 bis H49 übertragen.

Damit wäre auch dieses Problem gelöst. Kommt zukünftig ein Eintrag hinzu, so geben Sie diesen im Blatt "Listen" ein und betätigen die Schaltfläche. Damit werden die Einträge auf allen Listen aktualisiert und Sie können sofort in jeder Liste mit den neuen Einträgen arbeiten.

ENDE DES WORKSHOPS


Neueste Beiträge

wvm7x_