Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Vielen Dank Michael Craiss - Probleme VBA

47 views
Skip to first unread message

Martha Schuldis-Espinosa

unread,
Jun 18, 2002, 12:34:51 PM6/18/02
to
!!!!
ich bin Newsgroup-Anfänger und habe etwas Anlaufschwierigkeiten. So kann
ich jetzt die Re's zu meinem posting (Probleme bei der VBA-Codierung v.
11.06.02) nicht mehr in der Auflistung finden. Deshalb auf diese Art!
!!!!

Hallo Michael,

danke für Deine Hilfe!

Problem 2: erledigt!
mit: userform.listbox1.RowSource=""
genial!

Hiermit hat sich auch Problem 3 erledigt!
Verstehe zwar noch nicht WARUM, aber es klappt jetzt.

Zu Deinem Code habe ich trotzdem eine Frage:
TextBox1_KeyDown(byval keycode as MSFORMS.ReturnInteger)

MSFORMS bezieht sich auf was? Oder muss da der Name der UserForm hin?
ReturnInteger: h.d. dass ein Integer-Wert zurückgegeben wird, also bei Enter
13?
Muss ich keycode definieren?
Jedenfalls bekomme ich Fehlermeldung mit der ich nichts anfangen kann.

NEU - NEU - NEU
Neue Probleme, vielleicht kannst Du mir dabei helfen:

NEU 1
Ich habe eine textBox verwendet, in der in Abhängigkeit von einer Eingabe
Infos ausgegeben werden. Damit der Benutzer nicht manipulieren kann, habe
ich textBox.enabled = false gesetzt.
Funktioniert, Info-Anzeige ist nur schlecht lesbar (wegen grau)
In Abhängigkeit ebenfalls meiner Eingabe füllt sich auch eine Listbox. Auch
diese habe ich mit ListBox.enabled = false geschützt. Nur hier sind die
Einträge gut lesbar (in schwarz).
Diese Tatsache beeinflusst zwar nicht den korrekten Ablauf des Programmes,
nur ästhetisches Problem.
Warum reagieren textBox und ListBox unterschiedlich?


NEU 2
In der Excel-Tabelle werden Datensätze gelöscht, zunächst nur logisch, da
diese zu bestimmten Auswertungen noch herangezogen werden, aber nicht mehr
abgeändert werden sollen.
Dazu habe ich in einer Spalte eine Kennzeichnung vorgesehen.

Der Benutzer muss über die Schaltfläche "Daten löschen" bestätigen, dass die
in der Listbox aufgeführten Berichte (logisch - für den Benutzer allerdings
unrelevant) gelöscht werden sollen.Die Berichte habe ich zuvor aus der
Tabelle herausgefiltert.
Gibt es eine geniale Routine, über die ich diese gefilterten Sätze (die in
der Listbox erscheinen) als gelöscht kennzeichnen kann? Wie muss ich das
machen?

NEU 3
Bei Datenänderungen an bestehenden Sätzen, wie geht man besser vor:
a) Suche die entsprechende Zeile und überschreibe sie mit dem geänderten
Satz? oder
b) lösche (physisch) den alten Satz und schreibe den geänderten Datensatz
als neuen hintenan?

Danke.

Gruß Martha


----- Original Message -----
From: Michael Craiss <mcr...@web.de>
Newsgroups: microsoft.public.de.excel
Sent: Tuesday, June 11, 2002 10:40 PM
Subject: Re: Probleme bei der VBA-Codierung


> Hallo Martha,
>
> > 1. Frage:
> > Mit welchem Befehl oder welcher Routine kann ich in einem Formular alle
> > Kontrollkästchen oder Optionsfelder auf einmal zurücksetzen (=false)?
> > Ich habe die Steuerelemente einzeln zurückgesetzt, entsprechend lang ist
> > mein Code. Gibt es da etwas Professionelleres?
>
> Zu Frage1:
> siehe Antwort von Hajo
>
> > 2. Frage:
> > frmLoeschen.ListBox1.clear
> > Ich möchte im Listenfeld die Einträge löschen.
> > Funktioniert nicht!
> > Fehlermeldung: Nicht näher bezeichneter Fehler (Laufzeitfehler)
> > Die Einträge des Listenfeldes kommen aus einem gefilterten
Tabellenblatt.
> > Meine Interpretation: Listenfeld ist an Daten gebunden und Clear
> > funktioniert deshalb nicht. Aber wie kann ich dann die Listbox leeren?
>
> Die Listbox kann nur mit Clear gelöscht werden, wenn Sie nicht 'gebunden'
> ist.
> D.h. entweder mußt Du die RowSource-Eigenschaft leer lassen und die Daten
> per AddItem hinzufügen, (dann funktioniert auch .Clear),
> oder Du benutzt .RowSource, dann kannst Du die Listbox mit .RowSource=""
> löschen. Um Sie später wieder zu füllen, kannst Du RowSource wieder
angeben.
>
> > 3. Frage:
> > Textfeld-Eingabe auf einem Formular:
> > Es wird ein Name über ein Textfeld auf einem Formular eingegeben und
> > entsprechende Daten werden daraufhin aus einem Tabellenblatt angezeigt.
> > Realisierung über Textfeld_AfterUpdate.
> > Aber: AfterUpdate-Ereignis funktioniert in meinem Code nur, wenn ich
> > tatsächlich eine Eingabe getätigt habe. Wenn ich jedoch nur die
> > Return-Taste betätige, ohne Eingabe, springt mir der Cursor auf das
> nächste
> > Textfeld, in dem ich Daten aus der Tabelle anzeigen möchte.
> > Wo liegt das Problem?
>
> Wenn Dein Eingabefeld keine MultiLine-Textbox ist, springt der Fokus beim
> Drücken der Eingabetaste immer zum nächsten Steuerelement. Dann wäre es
> vielleicht besser, das Ereignis Exit zu benutzen.
> Wenn Du jedoch auf das Drücken der Eingabetaste reagieren willst, kannst
Du
> das Ereignis KeyDown nehmen.
> Beim Drücken der Eingabetaste ist keycode=13. Vorteil: Du kannst
> verhindern, dass der Focus zum nächsten Steuerelement wechselt, wenn Du am
> Ende der KeyDown-Prozedur keycode=0 setzt. Etwa so:
>
> Private Sub Textbox1_KeyDown(byval keycode as ..........)
>
> If keycode=13 then
> ...
> ...
> keycode=0
> End If
>
> End Sub
>
> Alles klar? Ansonsten bitte nochmal melden!
>
> Gruß
> Michael
>
>

0 new messages