Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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
Inhaltsverzeichnis

UserForm Erklärung

UserForm Erklärung
01.08.2014 06:55:35
Regne
Guten Morgen,
Hier nochmal mein Problem von gestern. Ich probiere es mal mit einem Bild und einer Erklärung dazu. Hier erstmal das Bild https://www.herber.de/bbs/user/91822.jpg
So nun die Erklärung.
Wenn speichern gedrückt wird soll er die letzte Zeile in der Tabelle raussuchen.
TextBox25,TextBox26 und ComboBox19 bleiben in jeder Zeile gleich.
Nun soll er überprüfen ob in Combobox1 was steht und dann prüfen ob Textbox1 und Combobox7 und Combobox13 und TextBox19 auch ausgefüllt sind.
Wenn er das überprüft hat soll er die nächste Zeile überprüfen und übertragen. Immer wenn in der ersten ComboBox was steht sollen die anderen Bereiche überprüft werden und dann sollen die ausgefüllten Bereiche in die Tabelle übernommen werden.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm Erklärung
01.08.2014 08:01:27
Beverly
Hi,
deine Beschreibung ist nicht ganz eindeutig. Ich nehme an, dass in dem Fall, wenn der Inhalt der ComboBox1 in Spalte A gefunden wird, die Daten in die betreffenden Zeile übernommen werden sollen und wenn de r Inhalt nicht gefunden wird, dann in die erste freie Zeile (weshalb sonst die letzte Zeile ermitteln?).
Private Sub CommandButton1_Click()
Dim lngZeile As Long
Dim rngZelle As Range
Dim lngLetzte As Long
If ComboBox1 Then
If TextBox1  "" And combobox7  "" And combobox13  "" And TextBox19  "" Then
Set rngZelle = Columns(1).Find(ComboBox1, lookat:=xlWhole)
If Not rngZelle Is Nothing Then
Cells(rngZelle.Row, 2) = TextBox1
Cells(rngZelle.Row, 3) = ComBoox7
Cells(rngZelle.Row, 4) = ComBox13
Cells(rngZelle.Row, 5) = TextBox19
Else
lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Cells(lngLetzte + 1, 2) = TextBox1
Cells(lngLetzte + 1, 3) = ComBoox7
Cells(lngLetzte + 1, 4) = ComBox13
Cells(lngLetzte + 1, 5) = TextBox19
End If
End If
End If
Set rngZelle = Nothing
End Sub


Anzeige
AW: UserForm Erklärung
01.08.2014 08:21:06
Regne
Also es sollte die erste freie Zeile natürlich sein...
Jedoch gibt es keine Schleifen Funktion welche Zeile für Zeile überprüft ob was eingetragen ist oder nicht?

AW: UserForm Erklärung
01.08.2014 09:00:29
Beverly
Ich verstehe leider dein Anliegen nicht - was soll Zeile für Zeile geprüft werden ob es vorhanden ist oder nicht? Was mein Code macht, hatte ich im vorhergehenden Beitrag schon geschrieben und da du nicht deine Mappe sondern nur ein Bild (mit dem Excel nichts anfangen kann) hochgeladen hast, war dies die einzige Interpretation, die ich deiner Fragestellung entnehmen konnte.


Anzeige
AW: UserForm Erklärung
01.08.2014 09:11:27
Robert
Hallo Regne...
Sachen gibts, die gibts garnicht!
Schleife über alle Zeilen, um was zu überprüfen? das geht natürlich, ist garnicht mal so schwer.
Es ist immer hilfreich (ohne dir zu nahe treten zu wollen) nicht mit einer Lösungsidee zu kommen oder sogar schon Möglichkeiten zu verwerfen (siehe Zeilenschleife), wenn man das Potential von VBA und Excel noch nicht voll umreißen kann.
Besser ist es, die gewünschte Aktion deutlich zu erklären.
In deinem Fall scheint der Fall ein wenig schwer zu erklären zu sein, deswegen gebe ich Beverly Recht, eine Beispielmappe wäre in dem Fall Gold wert.
Fragen die sich mir stellen?
Welche Zellen sollen auf Welche Werte Welcher Combobox (oder Textbox?) überprüft werden?
Das Bild ist irgendwie wenig hilfreich.
Viele Grüße und nix für ungut
Robert

Anzeige
AW: UserForm Erklärung
01.08.2014 09:33:53
Regne
Also mit dieser Userform sollen Daten erfasst werden, es können alle 6 Zeilen der Userform ausgefüllt werden müssen jedoch nicht. Wenn jetzt die erste Spalte der Comboboxen ausgeüllt ist soll immer überprüft werden ob die zweite Spalte mit den Textboxen und die Combobox in der vierten spalte und die letzte Spalte mit der Textbox in dieser Zeile auch ausgefüllt ist... wenn dort alles ausgefüllt ist sollen die ausgefüllten Bereiche in die Tabelle eingetragen werden wenn was fehlt soll eine Fehlermeldung kommen.
Hier meine Datei wie ich es momentan mache allerdings übernimmt er dort alle Felder und nicht nur die ausgefüllten geschweige denn kommt eine Fehlermeldung.
https://www.herber.de/bbs/user/91801.xls
Vielen Dank für euer Bemühen

Anzeige
AW: UserForm Erklärung
01.08.2014 10:37:16
Robert
Okay.. so langsam kommen wir der Sache näher
Wenn du Überprüfen willst ob alle Felder ausgefüllt sind dann solltest du statt ElseIf (das ja aufhört, wenn eine der Bedingungen stimmt) deine If Klauseln verschachteln.
z.B. so:
If ComboBoxSpalte1  "" Then
If TextBoxSpaltex  "" And ComboBoxSpalteY  "" And ComboBoxSpalteZ  "" Then
'Deine Aktion hier
Else
MsgBox "Bitte überprüfen sie Ihre Eingaben"
End If
End If
Hier werden, sofern in der ersten Combobox was steht, die anderen Eingabefelder überprüft.
Wenn alle einen solchen Eintrag haben, läuft eben dein Code
Wenn eines der Eingabefelder leer ist, gibt es eine Meldung
Wenn die erste Combobox leer ist, passiert gar nichts.
Den Code oben musst du bezüglich der Comboboxbezeichnungen und dem auszuführenden Code wenn all Felder gefüllt sind noch anpassen.
So wie er jetzt da steht, bräuchtest du einen solchen Codeblock für jede Zeile von Eingabefeldern.
Viele Grüße
Robert

Anzeige
AW: UserForm Erklärung
01.08.2014 10:44:32
Regne
Es gibt also nicht die Möglichkeit mit der MSGBox auf die ComboBox1 explizit hinzuweisen?
z.B. ComboboxZ ist leer Bitte ComboBoxz überprüfen...
Und es gibt auch keine Schleife die Zeile für Zeile in der Userform durchläuft?

AW: UserForm Erklärung
01.08.2014 11:26:39
Robert
Hallo,
beides geht.
Das mit der passenden Fehlermeldung ist einfacher als die Schleife.
Für explizite Fehlermeldungen im Code oben statt der universalen MSGbox für jede option eine If Schleife einbauen.
If ComboBoxSpalte1  "" Then
If TextBoxSpaltex  "" And ComboBoxSpalteY  "" And ComboBoxSpalteZ  "" Then
'Deine Aktion hier
Else
If Combobox1  "" Then MsgBox "Combobox1 leer"
If Combobox2  "" Then MsgBox "Combobox2 leer"
If Combobox3  "" Then MsgBox "Combobox3 leer"
End If
End If
Eine schleife über die Controlboxen macht nur Sinn wenn sie entsprechend benannt sind (aufeinanderfolgende nummern) und ist unnötig komplex.
Bei bis zu 3 Zeilen würde ichs vermutlich einfach untereinander schreiben.
Viele Grüße Robert
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige