Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
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
Bereich "Datenbank" vs. Liste
Jörg-HH
Hallo zusammen,
kleiner Hinweis vorweg: Dies ist nicht wirklich ein "Datenbank"-Problem. Meine Datei ist ein Rechenwerk. Die dafür nötigen Daten (Kunden, Lieferanten usw.) beschränken sich auf einige zig oder hundert. Die stehen hier:
In einem Blatt "Datenbank" gibt es einen Bereich, der "Datenbank" heißt. Diesen kann man bekanntlich per Eingabemaske bearbeiten, ohne daß er als Liste deklariert ist, und ohne, daß die aktive Zelle drin stehen muß. Das hatte ich aber bisher nicht genutzt.
Der Bereich war aber gleichzeitig immer auch als Liste deklariert gewesen, und wenn ich da manuell was geändert habe (zB neuen Datensatz hinzu), wurde die Liste erwartungsgemäß auch größer. Daß dabei der Bereich "Datenbank" nicht mit vergrößert wurde, hatte ich mangels Nutzung nie bemerkt.
Nun habe ich Dank Franz' Hilfe in einem anderen Blatt eine Userform erstellt, die verschied. Listboxen enthält und u.a. auch eine Combobox, die eine Vorauswahl trifft - und dazu auf den Bereich Datenbank zugreift - siehe Upload.
Außerdem gibt es jetzt an anderer Stelle einen Button, der bequem die Eingabemaske aufruft, wodurch ich das Feature erstmals nutze. Dadurch fiel mir nun auf: Wenn ich die Liste nicht manuell erweitere, sondern per Maske, dann erweitert sich mit jedem zusätzlichen Datensatz zwar der Bereich "Datenbank" erwartungsgemäß - nicht aber die darüber liegende Liste. Also genau umgekehrt zur manuellen Bearbeitung.
Also dachte ich mir: Was soll da 'ne Liste sein, die sowieso nicht aktualisiert wird - reicht doch, wenn der Bereich "Datenbank" heißt und selbsttätig mitwächst... und hab also die Liste abgeschaltet. Aber irgendwas im Code greift auf diese xl-Liste zu und nicht auf den Bereich "Datenbank", denn nachdem ich das gemacht hatte, konnte ich plötzlich die UF nicht mehr aufrufen. Es kam die Meldung "Index außerhalb des gültigen Bereichs", und markiert wurde dies
Private Sub CommandButton1_Click()
userform1.Show
End Sub
Also hab ich die Liste wieder eingeschaltet. Nur - wenn ich jetzt per Maske Datensätze hinzufüge, stehen sie außerhalb der Liste und werden bei der Vorauswahl nicht erfaßt.
Ich bräuchte also eine von zwei Lösungen:
Entweder der Code kann so umgebaut werden, daß er nicht die xl-Liste benötigt, sondern immer nur auf den veränderlichen Bereich "Datenbank" zugreift...
Oder er bekommt einen Zusatz, daß bei Veränderung von Bereich "Datenbank" die Liste mit verändert wird.
Nun hab ich schon große Mühe, den Code halbwegs zu verstehen - eine Idee, wo ich bei diesem Problem ansetzen sollte, hab ich daher natürlich schon gar nicht :-((
Hat jemand von euch 'n Vorschlag?
Grüße - Jörg
Für die Historie - hiermit gings los - mein Nachhilfeunterricht bei Franz :-)
https://www.herber.de/forum/archiv/1100to1104/t1103068.htm#1103068
und hier haben mir Tino und Daniel weiter auf die Sprünge geholfen
https://www.herber.de/forum/archiv/1104to1108/t1105056.htm#1105056
und hier ist die Beispiel-Datei, mit der man ausprobieren kann, was ich oben beschrieben hab:
https://www.herber.de/bbs/user/64727.xls

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bereich "Datenbank" vs. Liste
27.09.2009 09:38:33
fcs
Hallo Rolf,
da ist noch etwas Datenmül in einer meiner Prozduren für das Userform übergeblieben, der auf das Listen-Objekt zugreift.
Diese Liste wird aber für die Funktionalität nicht benötigt. Da meine ursprüngliche Idee, den Filterstatus zu ermitteln mit dem Listen-Objekt nicht funktionierte. Ich hatte nur vergessen diese Zeilen im Code zu löschen.
Passe die Initialisierungs-Prozedur des UF wie folgt an, dann sollte es Funktionieren. Die Liste kannst du dann in einen normalen Bereich umwandeln. DU muss nur darauf achten, dass in Spalte A keine Zeilen mit Leerzellen vorhanden sind, da im Userform die letzte Zeile mit End(xlDown) ab Zelle A1 ermittelt wird.
Gruß
Franz
Private Sub UserForm_Initialize()
Dim wks As Worksheet, Zeile As Long, objFilter As Filter
Set wks = Worksheets("Datenbank")
'Prüfen, ob in "Datenbank" alle Daten eingeblendet sind.
With wks
If .Cells.Count  .Cells.SpecialCells(xlCellTypeVisible).Count Then
.Rows.Hidden = False
End If
End With
End Sub

Anzeige
Paßt :-)) ....
27.09.2009 11:11:30
Jörg-HH
Moin Franz
danke für die Korrektur. Jetzt haut's hin.
Übrigens mußte ich grinsen - du schreibst in der Anrede "Rolf". So heißt zufällig mein Vater, und der hat von Computern nun so gar keine Ahnung... is ja auch schon über achtzig :-)
Wünsche geruhsames Kreuzchenmachen...
Jörg

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige