Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Inhalt Comboboxen werden nicht gelöscht

Inhalt Comboboxen werden nicht gelöscht
29.11.2002 21:10:55
ernst
Hallo - diese Frage habe ich bereits im Spotlight-Forum gestellt, aber leider keine das Problem lösende Antwort erhalten. Deshalb hier ein neuer Versuch:


Hallo und guten Tag,

in einer Anwendung benutze ich in einer Userform neben einigen normalen Text-Eingabefelder auch vier Comboboxen. Nach der Speicherung der Daten wird die Userform für einen neuen Datensatz bereit gestellt.
Alle Felder sollen für die Eingabe der neuen Daten gelöscht werden. Dieses möchte ich mit dem Makro ‚Initial’ durchführen. Während die Text-Felder korrekt gelöscht werden, bleibt der Code bei der zweiten ComboBox hängen mit dem Hinweis ‚Eigenschaft List konnte nicht abgerufen werden. Index des Eigenschaftsfeldes ungültig’.

Was kann da falsch sein? Bitte um Hilfe.


Sub ComboBox11_Change()
Dim c As String
Dim d As String
c = ComboBox11.List(ComboBox11.ListIndex, 0)
d = ComboBox11.List(ComboBox11.ListIndex, 1)
With TextBox33
.Value = c
End With
With TextBox39
.Value = d
End With
End Sub

Sub ComboBox12_Change()
Dim s As String
s = ComboBox12.List(ComboBox12.ListIndex, 0)
With TextBox1
.Value = s
End With
End Sub

Private Sub initial()
Dim tb As Object
Dim cb As Object
For Each tb In UserForm3.Controls
If TypeName(tb) = "TextBox" Then tb.Text = ""
Next tb
For Each cb In UserForm3.Controls
If TypeName(cb) = "ComboBox" Then cb.Text = ""
Next cb
UserForm3.ComboBox12.SetFocus
End Sub

potlight - Forum gestellt, aber keine das Problem lösende Antwort erhalten. Deshalb hier ein neuer Versuch:

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
So sollte es gehen...
29.11.2002 23:26:05
Ralf Sögel
If TypeName(cb) = "ComboBox" Then cb.Clear
Re: So sollte es gehen...
30.11.2002 07:16:39
ernst
Danke Ralf, aber diese Antwort löst leider nicht das Problem.
Ob ich meinen Code benutze oder jetzt Deine Lösung der Code durchläuft nach dem Löschbefehl den 'Change-Makro' und bleibt dort hängen.
Ich muss also eine Möglichkeit finden beim Löschen der alten Eintragung den Durchlauf der 'Change-Geschichte' zu verhindern.

Solltest Du dazu eine Idee haben, wäre ich dankbar.

Gruß Ernst

Re: Inhalt Comboboxen werden nicht gelöscht
30.11.2002 07:31:16
Hajo
Hallo Ernst

vielleicht geht es so

Gruß Hajo

Re: So sollte es gehen...
30.11.2002 09:14:48
M. Kuhn
Moin Ernst,

ich habe eine:

Vor der Löschroutine einfügen:

Application.EnableEvents = False

Nach der Löschroutine einfügen:

Application.EnableEvents = True

MfG Mario

Anzeige
Re: Inhalt Comboboxen werden nicht gelöscht
30.11.2002 09:23:54
ernst
Vielen Dank Hajo,
verzeih' bitte aber Deine erste Löschschleife für die normalen Textfelder war nicht vollständig. Ich dachte schon ich würde alles falsch machen. Nach der kleinen Korrektur ging der Code gut durch bis zu der Combobox11 mit den zwei Textfeldern.
Die normalen Comboboxen (mit nur einem Textfeld!) hat der Code alles prima gelöscht.

Was könnte denn das noch sein??

Gruß Ernst

Re: Nachtrag für HAJO
30.11.2002 09:25:47
Ernst
Hab' noch was vergessen:

Die Fehlermeldung lautet:

Laufzeitfehler '-2147467259(80004005)':
Nicht näher bezeichneter Fehler

Vielleicht hilft Dir das weiter.


Ernst

Re: Inhalt Comboboxen werden nicht gelöscht
30.11.2002 09:36:02
Hajo
Hallo Ernst

Was ist eine Combobox mit zwei Textfeldern???

Gruß Hajo

Anzeige
Re: Nachtrag für HAJO
30.11.2002 09:50:54
Hajo
Hallo Ernst

mein ersten Code habe ich ohne Beispiel gemcht. Ich habe jetzt Dein Beispiel nachgebaut und korrekturen vorgenommen.

Offen ist immer noch was eine Combobox mit zwei Textfeldern ist.

Gruß Hajo

Re: Nachtrag für HAJO
30.11.2002 13:38:27
ernst
Entschuldige Hajo, aber ich musste für ca. 3 Stunden etwas anderes bearbeiten.
Deine Frage:
Offen ist immer noch was eine Combobox mit zwei Textfeldern ist.

OK - ich wußte nicht wie ich das sagen sollte. Ich habe jetzt in einem schlauen Buch nachgeschaut und sehe, dass man das wohl 'mehrspaltiges Listenfeld' oder so ähnlich nennt.
Auf jeden Fall habe ich eine Personal-Liste mit einer Spalte 'Code-Nr.' und einer zweiten Spalte mit einem Funktionsnamen.

In der besagten Userform habe ich eine Combobox, wo ich in dieser Liste suchen kann. Ist der richtige Code bzw. die richtige Funktion gefunden, wird die Code-Nr. in der ersten Textbox und die Funktion in der zweiten Textbox angezeigt.
Sind auf der Userform über die Comboboxen und manuellen Eingaben alle 13 Textboxen gefüllt, werden die Daten in eine Datenbank übertragen.
Nach der Speicherung soll nun der Makro 'initial' wieder alle Felder leeren und für den nächsten Datensatz bereitstellen.

Die Textfelder sind mit den Anweisungen aus Deinem (aber auch aus meinem) Code sauber. Bei den Comboboxen klappt es auch bei den 4 'normalen' Boxen bis auf diese eine mit dem 'mehrspaltigen' - na Du weißt schon.

Aber das muß doch hin zu kriegen sein.

Wenn Du so nicht klar kommst, gestattest Du vielleicht Dir eine Testdatei zu schicken, wo ich das Prinzip nachgestellt habe und wo dieser Fehler auftaucht.


Es wäre nett, wenn Du mir helfen könntest.


Frdl. Grüsse Ernst



Anzeige
Re: Nachtrag für HAJO
30.11.2002 13:45:07
Hajo
Hallo ernst

wie ich in meinem Beitrag geschrieben habe ich Deine Userform nachgebaut. Das Löschen wurde bei mir durch eine CommandButton ausglöst und der Code lief Feherfrei.

Aber schicke mir mal Deine Datei.

Gruß Hajo

Re: Nachtrag für HAJO
30.11.2002 17:26:50
Hajo
Hallo

falls die Problemlösung intressiert.

Ernst hat den Bereich mit .RowSource = "Codes!A2:B" & h
zugewiesen. Soll die Combobox gelöscht werden, muß dies mit einer For Next Schleife passieren. Wie in meinem Code dargestellt.

Gruß Hajo

Re: Inhalt Comboboxen
30.11.2002 17:33:03
Ernst
Vielen Dank Hajo, aber nach dem Einbau Deines Codes
zeigt er in der Combobox11 nicht mehr den Inhalt der beiden Spalten sondern nur noch die erste Spalte. Gleichzeitig werden die beiden Inhalte nicht mehr in die entsprechenden Textboxen übertragen.
Sicherlich fehlt da noch was, weil Du nicht den kompletten Code gekannt hast. Unten habe ich den alten Code mit Deinen Angaben vermischt, wo bei ich vor den alten das Hochkomma gesetzt habe.

Aufgrund meiner nicht kompletten Kenntnisse komme ich ich jetzt nicht mehr klar. Kannst Du da noch einmal korrigierend eingreifen?
Könntest Du dafür evtl. die Testdatei verwenden - dann würde ich es sicher besser verstehen?

Vielen Dank + Gruß Ernst


Sub UserForm3_Initialize()
Dim frm As UserForm
Dim i As Integer
'Dim h As Integer
Dim InI As Integer
Dim InJ As Integer

Dim iMax As Integer
Set frm = UserForm3
Windows("menu.xls").Activate
Sheets("Codes").Activate

frm.ComboBox11.ColumnCount = 2
For InI = 1 To 80
frm.ComboBox11.AddItem Cells(InI, 1)
frm.ComboBox11.List(InJ, 1) = Cells(InI, 3)
InJ = InJ + 1
'ComboBox12.AddItem Cells(InI, 2)
Next InI
'h = ActiveSheet.UsedRange.Rows.Count
'With frm.ComboBox11
'.ColumnCount = 2
'.ColumnHeads = True
'.RowSource = "Codes!A2:B" & h
'.ColumnWidths = "1,5cm;5,5cm"
'End With
'frm.TextBox33.Locked = True
'frm.TextBox39.Locked = True
End Sub


Anzeige
Re: Inhalt Comboboxen
30.11.2002 17:41:59
Ernst
Ich glaube so sieht es besser aus:

Sub UserForm3_Initialize()
Dim frm As UserForm
Dim i As Integer
'Dim h As Integer
 Dim InI As Integer
 Dim InJ As Integer

Dim iMax As Integer
Set frm = UserForm3
Windows("menu.xls").Activate
Sheets("Codes").Activate

frm.ComboBox11.ColumnCount = 2
    For InI = 1 To 17
        frm.ComboBox11.AddItem Cells(InI, 1)
        frm.ComboBox11.List(InJ, 1) = Cells(InI, 3)
        InJ = InJ + 1
        'ComboBox12.AddItem Cells(InI, 2)
    Next InI
'h = ActiveSheet.UsedRange.Rows.Count
 'With frm.ComboBox11
  '.ColumnCount = 2
  '.ColumnHeads = True
  '.RowSource = "Codes!A2:B" & h
  '.ColumnWidths = "1,5cm;5,5cm"
 'End With
frm.TextBox33.Locked = True
frm.TextBox39.Locked = True
End Sub

     Code eingefügt mit Syntaxhighlighter 1.14


Anzeige
Re: Inhalt Comboboxen
30.11.2002 17:44:32
Ernst
Ich glaube so sieht es besser aus:

Sub UserForm3_Initialize()
Dim frm As UserForm
Dim i As Integer
'Dim h As Integer
 Dim InI As Integer
 Dim InJ As Integer

Dim iMax As Integer
Set frm = UserForm3
Windows("menu.xls").Activate
Sheets("Codes").Activate

frm.ComboBox11.ColumnCount = 2
    For InI = 1 To 17
        frm.ComboBox11.AddItem Cells(InI, 1)
        frm.ComboBox11.List(InJ, 1) = Cells(InI, 3)
        InJ = InJ + 1
        'ComboBox12.AddItem Cells(InI, 2)
    Next InI
'h = ActiveSheet.UsedRange.Rows.Count
 'With frm.ComboBox11
  '.ColumnCount = 2
  '.ColumnHeads = True
  '.RowSource = "Codes!A2:B" & h
  '.ColumnWidths = "1,5cm;5,5cm"
 'End With
frm.TextBox33.Locked = True
frm.TextBox39.Locked = True
End Sub

     Code eingefügt mit Syntaxhighlighter 1.14


Anzeige
Re: Inhalt Comboboxen
30.11.2002 17:45:29
Hajo
Hallo Ernst

folgender Code

Ich habe jetzt den Code von der Musterdatei genommen.

Gruß Hajo

Re: Inhalt Comboboxen
30.11.2002 18:01:59
Ernst
Hurra

es ist überstanden!! Jetzt klappt es. Ich hoffe nur, dass Dich diese Sache nicht nur genervt hat.

Nochmals vielen vielen Dank und vielleicht finde ich ja nochmal so eine schwierige Sache.

Frdl. Grüsse und schönen Abend Ernst

Re: Inhalt Comboboxen
01.12.2002 13:34:15
Ernst
Hallo
wie ich schon gesagt habe, läuft jetzt alles durch - auch nach der Übernahme in meinen Original-Code.

So weit - so gut! Möchte ich aber einen zweiten Datensatz bearbeiten muss ich die Userform schliessen und wieder öffnen. Wenn ich dies nicht mache steht mir zwar die Userform zur Verfügung aber in den Comboboxen wird nichts mehr angezeigt. Ich muß also eine neue Initialisierung starten.

Das ist umständlich und geht sicherlich auch anders.

Hat da jemand eine Idee?? Vielleicht Du noch mal HAJO??


Frdl. Grüße Ernst

Anzeige
Re: Inhalt Comboboxen
01.12.2002 13:47:49
Hajo_Zi
Hallo Ernst

das ist das Problem, wenn die Aufagabe nicht komplett eschrieben wird. Du hast immer nur geschrieben Textboxen und Combobox Unhalte lösche. HJetzt liest es sich ja so als ob nur die Textboxen gelöscht werden sollen??

Wie sollten Fragen gestellt werden
http://home.arcor.de/jolorenz/joerglorenz/8_1_0.htm

Gruß Hajo

Re: Inhalt Comboboxen
01.12.2002 15:14:23
Ernst
Hallo Hajo
ich hab's vielleicht so geschrieben, aber es war aus meinem Verständnis her klar, dass nach Erledigung einer Arbeit - sprich Änderung eines Datensatzes - die Userform wieder in 'jungfräulichem' Zustand zur Verfügung stehen würde, wenn ich dann dieses wollte bzw. einen weiteren Datensatz bearbeiten und die Userform nicht schliessen möchte.

Ich habe das Löschen der Comboboxen einmal blockiert und von dem Bild der dann entstehenden Userform ein Screenshot gemacht, den ich Dir ohne Kommentar über die eMail-Adresse schicke.

Da wirst Du sofort sehen, was ich meine. Wenn ich die Textboxen jetzt alle lösche, bleibt der zufällig ausgewählte Text in den Comboboxen stehen und verwirrt nur.

Der Vergleich von Code-Aufzeichnungen anderer Userforms, die bereits im Einsatz sind, haben mir bislang nicht gezeigt, wo der Fehler steckt. Dabei kann ich allerdings nur Tatsachen vergleichen, weil mir das grosse Theorie-Wissen fehlt.

Ich bin jedoch zuversichtlich, dass Du mit Deinen geschulten Augen den Wurm entdeckst.

Vielen Dank vorerst und frdl. Gruß Ernst



Anzeige
Re: Inhalt Comboboxen
01.12.2002 15:19:02
Hajo_Zi
Hallo Ernst

ändere den Code

Gruß Hajo

Re: Inhalt Comboboxen
01.12.2002 15:38:54
Ernst
Hallo Hajo, dass der Wurm allerdings soooooooo klein war, hätte ich nicht gedacht. Ich hätte eigentlich selbst drauf kommen müssen, aber oft sieht man ja vor lauter Bäume usw.

Jetzt gibt es doch noch einen schönen Sonntag.

Danke und frdl. Gruß Ernst

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige