Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1024to1028
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

Daten > Gültigkeit (mit VBA)

Daten > Gültigkeit (mit VBA)
25.11.2008 15:53:00
Peter
Hallo zusammen,
ich hab' ein Problem mit Daten - Gültigkeit.
In einer meiner Mappen habe ich für einen Bereich (B3:B400) eine Gültigkeit definiert: Zugelassen wird eine Liste und die passenden Daten werden über einen Namen referenziert (=Namen)
Nun passiert es aus (mir) unverständlichen Gründen dass manchmal in den Zellen rechts die Drop-Down-Pfeile nicht angezeigt werden.
Daher habe ich einen Button in die Tabelle gesetzt und wollte dadurch ermöglichen, den Bereich wieder mit den gewünschten Daten und dem Drop-Down-Pfeil zu versehen.
Das versuche ich so:
Dim lngVonZeile As Long
Dim lngBisZeile As Long
lngVonZeile = 3
lngBisZeile = Worksheets("kupStammdaten").Range("B65536").End(xlUp).Row
ActiveWorkbook.Names.Add Name:="Namen", RefersTo:="=kupStammdaten!$B$" & lngVonZeile & ":$B$" & lngBisZeile
lngVonZeile = 4
lngBisZeile = Worksheets("Eingang").Range("B65536").End(xlUp).Row
With Worksheets("Eingang").Range("C" & lngVonZeile & ":C" & lngBisZeile).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= xlBetween, Formula1:="=Namen"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Beim Ablauf des Makros haut mir Excel in der Zeile mit .Add auf die Finger.
Der Bereich "Namen" ist in einer anderen Tabelle definiert.
Habt Ihr eine Idee was ich hier falsch mache?
Vielen Dank für Eure Hilfe und herzliche Grüße
Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Daten > Gültigkeit (mit VBA)
25.11.2008 17:44:00
fcs
Hallo Peter,
das Problem mit den Namen kann ich unter Excel 2003 nicht nachvollziehen.
Die Drop-Down-Pfeile können verloren gehen, wenn man Zellen ohne entsprechende Datengültigkeit in die Spalte kopiert. Hier dann besser mit Einfügen-Werte arbeiten.
An deiner Stelle würde ich die Datengültigkeit für die komplette Spalte C setzen und dann für die Zeilen 1 bis 3 wieder löschen.
Schaut per Makro dann wie wie folgt aus, wobei ich bei der Ermittlung der Zellbereiche lieber mit Cells arbeite, als mit der etwas abendteuerlichen Variante die Zelladressen aus Spaltenbuchstabe und Zeilennummern zusammenzubasteln.
Gruß
Franz

Option Explicit
Sub aaTest()
Dim lngVonZeile As Long
Dim lngBisZeile As Long
Dim wksStamm As Worksheet
Dim wksEingang As Worksheet
Set wksStamm = Worksheets("kupStammdaten")
Set wksEingang = Worksheets("Eingang")
lngVonZeile = 3
With wksStamm
lngBisZeile = .Cells(.Rows.Count, 2).End(xlUp).Row 'Letzte Zeile Spalte B
ActiveWorkbook.Names.Add Name:="Namen", RefersTo:="='" & .Name & "'!" _
& .Range(.Cells(lngVonZeile, 2), .Cells(lngBisZeile, 2)).Address(ReferenceStyle:=xlA1)
End With
With wksEingang
lngVonZeile = 4
lngBisZeile = .Cells(.Rows.Count, 2).End(xlUp).Row 'Letzte Zeile Spalte C
'Datengültigkeit Spalte C setzen
With .Columns(3).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlEqual, _
Formula1:="=Namen"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
'Datengültigkeit Spalte C Zeilen 1 bis 3 wieder löschen
With .Range(.Cells(1, 3), .Cells(lngVonZeile - 1, 3)).Validation
.Delete
End With
End With
End Sub


Anzeige
AW: Daten > Gültigkeit (mit VBA)
26.11.2008 11:06:20
Peter
Hallo Franz,
vielen Dank für Deine ausführliche Beschäftigung mit meinem Problem.
Ich probiere es mal mit Deiner Version - eine weitere Rückmeldung kommt.
Viele Grüße
Peter
AW: Daten > Gültigkeit (mit VBA)
26.11.2008 11:18:00
Peter
Hallo Franz,
hier die zweite Rückmeldung ...
Auch hier bleibt er in der Zeile
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlEqual, Formula1:="=Namen"
hängen.
Die Fehlermeldung ist die gleiche wie bei meinem ersten Versuch: 1004 - Anwendung- oder objektorientierter Fehler.
Hast Du noch eine Idee?
Vielen Dank schnmal und viele Grüße
Peter
AW: Daten > Gültigkeit (mit VBA)
26.11.2008 11:32:27
Peter
Hallo Franz
und hier die dritte Rückmeldung - jetzt geht's
Vor den Block mit ... with wksEingang
habe ich die Zeilen
Application.ScreenUpdating = False
Worksheets("kupStammdaten").Select
gesetzt.
Und nach dem Block habe ich das ganze wieder zurückgebogen.
Es scheint Probleme zu geben wenn ich den benannten Bereich per VBA zuordnen will, gleichzeitig jedoch eine andere Tabelle aktiv ist als die, in der dieser Bereich steht.
Viele Grüße
Peter
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige