Userform

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Userform
von: Eleni
Geschrieben am: 13.04.2005 09:22:20
Hallo Forum,
Habe ein Excelsheet, in dem verschiedene Angaben gemacht und später ausgewertet werden.
1. Problem: Leider habe ich es irgend wie geschafft (keine Ahnung wie), dass die Copy/Paste-Funktion in diesem Sheet nicht mehr funktioniert. Wie kriege ich das wieder hin?
2. Problem: Neue Daten werden über ein Userform eingegeben, welches über das Button "Neu" aufgerufen wird. Mit Betätigen der OK-Taste sollen die Daten übernommen werden, allerdings soll überprüft werden, ob gewisse Angaben gemacht bzw. korrekt eingetragen wurden. Hierzu soll im Falle eines Fehlers eine MsgBox erscheinen. Tut sie auch, nur übernimmt er dann die Daten mehrfach.
Bsp.: vergisst man die Angabe "A" übernimmt er die übrigen Daten; es erscheint die Msgbox "Bitte A angeben"; man gibt A an und dann wird alles in eine zweite Zeile eingetragen. Wie kann ich das hier besser machen?

Das File ist angehängt:
https://www.herber.de/bbs/user/21077.xls
Danke schon mal im Vorraus. Eleni

Bild

Betrifft: AW: Userform
von: MichaV
Geschrieben am: 13.04.2005 09:40:46
Hi Eleni,
ne MengeCode, was?
Ich hab mal ein paar Gedanken in Deinen Code geschrieben. Deine
https://www.herber.de/bbs/user/21078.xls
Tabelle 1: Private Sub CommandButton3_Click()
Form: Private Sub CommandButton1_Click()

Gruß- Micha
PS: Rückmeldung wäre nett
Bild

Betrifft: AW: Userform
von: Eleni
Geschrieben am: 13.04.2005 10:14:22
Hallo Micha,
Danke, hat super geklappt. Ne Idee, wie ich meine Copy/Paste-Funktion wieder bekomme?

Ciao, Eleni
Bild

Betrifft: AW: Userform
von: MichaV
Geschrieben am: 13.04.2005 10:56:45
Hi Eleni,
ja, das ist doch ein tieferes Problem.
Im SelectionChange- Ereignis vom Tabellenbaltt 1 hast Du Code. Der wird ausgeführt, bevor der Cursor an eine andere Stelle bewegt wird. Darin änderst Du Einträge in anderen Zellen. Damit geht die markierte Zelle "verloren" und es kann nix mehr eingefügt werden. Darum erscheint im Kontextmenü der Punkt "einfügen" in Geisterschrift.
Du kannst das so vermeiden: Schiebe den Code in Selection_Change in eine andere Prozedur und rufe diese Prozedur auf, wenn es wirklich notwendig ist (Taste OK des userform o.ä.). Denn z.Zt. wird er jedesmal verarbeitet, wenn der Cursor bewegt wird, also viel zu oft.
Oder Du fragst in der Selection_Change ab, ob die rechte Maustaste benutzt wurde, wenn ja, wird abgebrochen. Dafür definierst Du z.B. ganz oben
Option Explicit
Public blnRechteMaustaste As Boolean
dann eine Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
blnRechteMaustaste = True
End Sub

und dann in der Selection_Change unter dem DIM- Block
If blnRechteMaustaste Then
blnRechteMaustaste = False
Exit Sub
End If
Das ist zwar nicht optimal (siehe oben), klappt aber.
Hoffe, ich konnte helfen.
Gruß- Micha
Bild

Betrifft: AW: Userform
von: Eleni
Geschrieben am: 13.04.2005 12:06:09
Hallo Micha,
Danke für den Tip, klappt. Geht das auch mit der Tastenkombi Strg+C, und wenn ja, wie?

Ciao, Eleni
Bild

Betrifft: AW: Userform
von: MichaV
Geschrieben am: 14.04.2005 10:09:56
Hi,
vergiss den Schnickschnack mit blnRechteMaustaste, den ich zuletzt geschrieben habe.
War wirklich nicht optimal. Folgende Lösung funzt und gefällt mir auch besser.
Nur 3 Zeilen ändern:
Worksheet_SelectionChange in Worksheet_Change ändern
Application.EnableEvents = False unter dem DIM- Block
Application.EnableEvents = True über End Sub
Damit ist sichergestellt, daß Sub nur ausgeführt wird, wenn sich Zellen wirklich geändert haben. Und somit klappt Copy und Paste ganz normal.
Gruß- Micha
Bild

Betrifft: AW: Userform
von: Eleni
Geschrieben am: 14.04.2005 13:23:34
Hi Micha,
Is ja super! Bin von der Lsg. begeistert.

Danke vielmals, Eleni
Bild

Betrifft: Geschlossen, o.T.
von: Eleni
Geschrieben am: 14.04.2005 13:24:15
o. T.
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Userform"