Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
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


Hallo Hans,
wenn ich die URLs richtig interpretiere, haben wir im Forum soeben die Zahl von 1 Million Beiträgen überschritten.
Herzlichen Glückwunsch zu dem Erfolg Deines "Babys"!
Gruß
Martin

Hallo Leute,
heute habe ich wieder mal ein einfaches Problem für Euch, an dem ich aber nicht weiter kommen:
Ich möchte die Arbeitsblätter in meiner Arbeitsmappe zählen. Das ist ja kein Problem (ThisWorkbook.sheets.count).
wenn das makro mehr als ein Arbeitsblatt zählt (also das Erge...

Hallo zusammen!
Ich habe da als blutiger Anfänger in VBA zwei Fragen:
1.) Wie kann ich in meiner Tabelle in jeder zweiten Spalte 4 leere Spalten einfügen lassen?
2.) Dann möchte ich unter den Inhalt der ersten fünf Spalten (A-E) den Inhalt der zweiten 5 Spalten (F-J) usw. In der grö...

Guten Morgen!
Ich hätte folgendes Problem: Ich erhalte automatisiert Exceltabellen, bei denen nicht alle Zellen einer Zeile gefüllt werden, wenn dort der Inhalt einer darüberliegenden Zeile stehen sollte. Zur Weiterverarbeitung muss ich aber diese Zellen mit den dazugehörigen Werten füllen....

Hallo,
google spuckt Zu "Excel" und "Häufigkeitslücken" lediglich 3 Treffer aus, die nicht gerade brauchbar für meine Aufgabe sind.
Ich muss für 3 Variablen eine Typisierung mit einer Häufigkeitslücke durchführen.
Hiermit bin ich fast gänzlich überfragt. Mit Quantilen hatte ich das...

Hallo zusammen,
ich habe eine lange Liste, in der in einer Spalte Daten stehen, wo ab und zu vorangehende Nullen nötig sind (mal eine - mal 2...etc.) - und manchmal auch keine.
Wie kann ich diese Zellen formatieren, das die vorangehenden "Nullen" nicht automatisch weggelassen werden?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige