Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Validation Auswahl per VBA

Validation Auswahl per VBA
TomS
Hallo,
ich habe ein Validationfeld mit Typ "Liste" erstellt, Quelle ist ein Bezug (Quelle: =auswahl). Wenn sich der Inhalt des Bezuges ändert steht immer noch die vorige Auswahl im Validationfeld. Kann ich per VBA den ersten Eintrag selektieren oder eine "Aktualisierung" des Inhaltes vollziehen?
Konkret möchte ich zentral die Sprache ändern, aber nach dem Umschalten nicht alle Datenüberprüfungsfelder durchklicken.
Vielen Dank
Tom

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Validation Auswahl per VBA
08.09.2011 13:37:11
Beverly
Hi Tom,
ich nehme an, du änderst die Sprache ebenfalls in einem (anderen) DropDown-Listenfeld? Versuche es mal mit dem folgenden Code im Codemodul des Tabellenblatts

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$1" Then Range("D4:D8") = ""
End Sub

D1 ist die Adresse für die Sprachauswahl und D4:D8 die Zellen mit den abhängigen DropDown-Listenfeldern. Beim Ändern des Eintrags in D1 werden alle Inhalte in D4:D8 gelöscht.


Anzeige
Zellen mit Validation initialisieren
08.09.2011 13:47:08
NoNet
Hallo Tom,
um die Zellen, die sich per Gültigkeitsliste auf einen benannten Bereich beziehen, bei Änderungen in diesem Bereich zu initialisieren (Default-Wert : Erster Eintrag der Liste oder LEER), kannst Du diesen Code in das Tabellenblatt, das die Werte der Liste enthält, kopieren :
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    'Validations-Felder bei Änderung im Bereichsname anpassen
    Dim rngZelle As Range, ws As Worksheet, rngG As Range
    Const strName = "Quelle" 'Der Name, auf den sich die Gültigkeit bezieht
    If Not Intersect(Target, ActiveWorkbook.Names(strName).RefersToRange) Is Nothing Then
        For Each ws In Worksheets
            On Error Resume Next 'Falls Sheet keine Gültigkeiten enthält
            Set rngG = ws.Cells.SpecialCells(xlCellTypeAllValidation)
            If Not rngG Is Nothing Then
                For Each rngZelle In rngG
                    If rngZelle.Validation.Formula1 = "=" & strName Then
                        'Entweder ersten Eintrag der Liste anzeigen :
                        rngZelle.Value = Range(ActiveWorkbook.Names(strName).RefersTo).Cells(1, 1)
                        'oder: Zelle mit Gültigkeit leeren (ohne Inhalt)
                        rngZelle.ClearContents
                    End If
                Next
            End If
        Next
    End If
End Sub
Der Name des benannten Bereiches ist hier "Quelle", das kannst Du im Code anpassen.
Es werden alle Tabellenblätter der Mappe nach Gültigkeits-Bezug auf die Liste durchsucht !
Im o.g. Beispiel werden die entsprechenden Zelle geleert (rngZelle.ClearContents) - diese Zeile kannst Du auskommentieren, damit stattdessen der erste Eintrag der Liste in den Zellen eingetragen wird !
Gruß, NoNet
Exceltreffen 28.-30.10.2011 in Chemnitz
Ein Treffen für alle Excel-Freunde und Besucher deutschsprachiger Excel-Foren.
Alle Infos - Programm - Anmeldung - Teilnehmerliste etc. gibt es auf
http://www.exceltreffen.de/index.php?page=211
Wir freuen uns auf euch...

AW: Validation Auswahl per VBA
TomS

Hi Karin und NoNet,
danke für Eure Anregungen. Da ich sehr fürs "Einfache" bin, werde ich nun eine gemischte Variante von Euren 2 Vorschlägen machen. Ich werde, da es nur 7 Auswahlfelder sind dem Validationfeld immer die erste Position des dementsprechenden Bereiches zuordnen. Kann man ja auch gut mit ner function machen.
Eine Lösung über das Validation-Object an sich (äquiv. z.B. zu Listbox.Listindex()) gibts ja wahrscheinlich nicht.
VG Tom
AW: Validation Auswahl per VBA
Beverly

Hi Tom,
meinst du so etwas:

Range(Application.Substitute(ActiveCell.Validation.Formula1, "=", "")).Cells(2)



Anzeige
AW: Validation Auswahl per VBA
08.09.2011 16:13:55
TomS
Hi Karin und NoNet,
danke für Eure Anregungen. Da ich sehr fürs "Einfache" bin, werde ich nun eine gemischte Variante von Euren 2 Vorschlägen machen. Ich werde, da es nur 7 Auswahlfelder sind dem Validationfeld immer die erste Position des dementsprechenden Bereiches zuordnen. Kann man ja auch gut mit ner function machen.
Eine Lösung über das Validation-Object an sich (äquiv. z.B. zu Listbox.Listindex()) gibts ja wahrscheinlich nicht.
VG Tom
AW: Validation Auswahl per VBA
08.09.2011 17:43:27
Beverly
Hi Tom,
meinst du so etwas:

Range(Application.Substitute(ActiveCell.Validation.Formula1, "=", "")).Cells(2)



Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige