Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
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 mit Abhängigkeiten

Userform mit Abhängigkeiten
02.03.2015 09:47:58
Thomas
Hallo,
ich habe ein problem mit meiner Userform. Es ist schwierig wenn man keine Ahnung hat
sich habe dennoch etwas vornimmt. Aber vieleicht hilft mir ja jemand von euch.
Ich habe eine Datenbank welche über eine andere Userform gefüllt wird . Nun möchte ich diese Daten ergänzen und ändern. Dazu habe ich ein Beispielmappe erstellt. Ich glaube da kann man es am besten mit erklären.
https://www.herber.de/bbs/user/96101.xls
Ich benötige eine Combobox und zwei Listboxen welche in Abhängigkeit die Textfelder füllen sollen. Die Combobox soll Sortiert sein und jede ID soll nur einmal vorkommen. Nach Auswahl des Datensatzes sollen die Istdaten
in den Textboxen geschrieben werden. Nun möchte ich die Daten ergänzen ändern und zurück schreiben. Die Abhängikeit mit einer Listbox habe ich schon jedoch die zweite?
Die Combobox geht zwar aber sie wird mit Daten aus Spalte c gefüttert Sie soll aber mit Spalte A gefüttert werden.
Kann sich dies mal jemand anschauen?
Liebe Grüsse Thomas

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform mit Abhängigkeiten
02.03.2015 13:25:45
yummi
Hallo Thomas,
wann du deien listboxen füllen willst weiß ich nicht, aber auf die Werte aus Spalte A kommst du so:
in der initilize des Userforms
die 3 durch die 1 ersetzen

For i = 2 To UBound(arr)                                                ' laufe von Zeile 2 bis  _
Tabellenende
If Application.WorksheetFunction.CountIf(Range(Cells(i, 1), _
Cells(1, 1)), Cells(i, 1).Value) = 1 Then                           ' wenn Wert das erste  _
Mal vorkommt, dann ...
arr(az, 0) = Cells(i, 1).Value                                  ' ... Name in Array  _
einlesen
az = az + 1                                                     ' ... Zähler für  _
Arrayfeld plus 1
End If                                                              ' Ende der Auswertung
Next i
Gruß
yummi

Anzeige
1. Punkt super Userform mit Abhängigkeiten
02.03.2015 13:53:38
Thomas
Super,
Hallo,
besten Dank das passt schon mal,
https://www.herber.de/bbs/user/96109.xls
habe es schon eingearbeitet
Liebe grüsse Thomas

AW: 1. Punkt super Userform mit Abhängigkeiten
02.03.2015 16:03:57
yummi
Hallo Thomas,
ich hab mal ein klein wenig geändert, du kommst mit einfach klicks weiter. Ich hoffe so kommst du erstmal weiter und kriegst es auf deien Bedürfnisse angepasst
https://www.herber.de/bbs/user/96113.xls
Gruß
yummi

3. Punkt erledigt aber noch zwei offen
02.03.2015 20:30:11
Thomas
Hallo yummi
das klappt super, wie hast Du das gemacht ich habe das ganze WE gesucht besten für deine Hilfe
Jedoch sind noch zwei kleine Probleme. Wie bekomme ich es hin das in der Listbox 1 nur jeweils ein eintrag je ID erscheint? Und das zweite Problem wenn in der listbox 2 nur ein eintrag ist dann wird er nicht in die textboxen übernommen bei mehren einträgen in der Listbox 2 geht alles super.
Hast Du oder jemand noch eine Idee?
Lieben dank schon mal für alles,
Thomas

Anzeige
AW: 3. Punkt erledigt aber noch zwei offen
03.03.2015 09:57:36
yummi
Hallo Thomas,
wie habe ich das gemacht? ich habe es programmiert ;-)
Dein Fehler war, du hast 9 Spalten in deienr Listbox angelegt und wolltest aber nur eine Spalte einlesen und dann siehst du nix in der listbox.
Meine Änderungen waren in Cobobox1_change
den Einstellungen für die listboxen
listbox1_click
listbox2_click
zu den 2 kleinen Problemen:
keine doppelten Elemente:

Private Sub ComboBox1_Change()
Dim letztezeile As Long
Dim i As Long
Dim bGef As Boolean
'lade Listbox
letztezeile = Sheets("Daten").Cells(Sheets("Daten").Rows.Count, 1).End(xlUp).Row
For i = 2 To letztezeile
If Sheets("Daten").Cells(i, 1).Value = Me.ComboBox1.Text Then
bGef = False
For j = 0 To Me.ListBox1.ListCount - 1 'alle Listboxelemente durchlaufen
If Me.ListBox1.List(j) = Sheets("Daten").Cells(i, 2).Value Then
bGef = True
Exit For
End If
Next j
If bGef = False Then
Me.ListBox1.AddItem Sheets("Daten").Cells(i, 2).Value
End If
End If
Next i
End Sub
listbox2 auch mit 1 eintrag fehlt noch ein = in der zeile If ListBox2.ListCount > 1 Then

Private Sub ListBox2_Click()
Dim sSearch As String
If ListBox2.ListCount >= 1 Then
sSearch = ListBox2.List(ListBox2.ListIndex, 0)
Set rngID = Columns("C:C").Find(what:=sSearch, lookat:=xlWhole, LookIn:=xlValues)
If Not rngID Is Nothing Then
TextBox1.Text = rngID.Offset(0, 1).Value
TextBox2.Text = rngID.Offset(0, 3).Value
TextBox3.Text = rngID.Offset(0, 4).Value
TextBox4.Text = rngID.Offset(0, 5).Value
TextBox5.Text = rngID.Offset(0, 6).Value
TextBox6.Text = rngID.Offset(0, 7).Value
TextBox7.Text = rngID.Offset(0, 8).Value
TextBox8.Text = rngID.Offset(0, 9).Value
End If
sSearch = ""
End If
ListBox1.Clear
End Sub
Mal so als Tip, schmeiss den debugger an setze breakpoints und gehe mit f8 schrittweise durch den Code, schau was passiert und was in den Variablen drin steht. Dann wirst du es verstehen.
Gruß
yummi

Anzeige
AW: 5. Punkt erledigt aber noch einer offen
03.03.2015 11:40:48
Thomas
Hallo yummi,
Super Tip und noch besser es klappt.Musste nur noch"Dim j As Long" ergänzen.
breakpoints hatte ich noch nicht gekannt aber dadurch habe ich noch viele fehler von mir im code gefunden.
Besten Dank auch für diesen Tipp.
Die UF läuft jetzt. Nun möchte ich noch wegen der besseren Übersicht die Combobox, und die Listboxen drei Spaltig machen ( Spalte A, D und E). habe es mit dem code unten versucht. jedoch hebele ich dann dein Macro aus. Gibt es noch was schöneres? Mit Eigenschaft RowsSource daten!a1:d500 bekomme ich ein Laufzeitfehler.
Private Sub UserForm_Activate()
'Datum und Uhrzeit anzeigen
Dim i As Integer, lz As Integer
Dim arr As Variant
With Sheets(1) ' daten aus blatt Temp (tabelle2) nehmen um combobox1 zu sortieren und doppelte  _
werte auszuchliessen !!! shets1 angeben
lz = .Cells(Rows.Count, 1).End(xlUp).Row
ReDim arr(1 To lz, 1 To 3)
For i = 2 To lz
arr(i - 1, 1) = .Range("A" & i).Value  ' drei spalten in combobox1 zeigen 1. Spalte
arr(i - 1, 2) = .Range("d" & i).Value ' drei spalten in combobox1 zeigen 2. Spalte
arr(i - 1, 3) = .Range("e" & i).Value ' drei spalten in combobox1 zeigen 3. Spalte
Next i
End With
With ComboBox1
.ColumnHeads = True ' überschrift in combobox1 zeigen
.ColumnCount = 3 ' 3 spalten in combobox definieren
.List = arr
End With ' ende für comobox1  !!! nicht sortieren dann bis hier löschen
Label9.Caption = Date
Bol = True
Do Until Bol = False
DoEvents
Label10.Caption = Time
Loop
End Sub

Liebe Grüsse Thomas

Anzeige
AW: 5. Punkt erledigt aber noch einer offen
03.03.2015 13:18:00
yummi
Hallo Thomas,
ich hab dir mal ein Beispiel hochgeladen, ob es ganz so ist wie du das haben willst, weiß ich nicht, aber vlt kommst du damit ja weiter (da du jetzt ja auch den debugger kennengelernt hast ;-) noch ein Tip dazu: geh mal unter ansicht und mach das überwachungsfenster an. dorthin kannst du dir variablen ziehen auch komplexere wie ganze boxen und hast einblick wie der Aufbau der Struktur sit und sogar was in den einzelnen Teilen für Werte enthalten sind)
Listboxen und Überschriften sind ein sehr schwieriges Thema, kannst ja mal nach googlen. ich hab das mit der Überschrift mal über Textlabel realisiert, anpassungen bzgl des Aussehens kannst du ja noch vornehmen.
https://www.herber.de/bbs/user/96126.xls
Gruß
yummi

Anzeige
AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 14:41:04
Thomas
Hallo yummi,
deine tipps sind Klasse ich denke das Überwachungsfenster ist einmächtiges Tool.
Mit den Überschriften und spalten ist auch riesig. Es klappt super so.
jetzt benötige ich eigentlich nur noch eine Möglichkeit den ausgesuchten Datensatz zu löschen am besten mit Rückfrage. Aber ich bin ehrlich habe deshalb noch nicht selbst gegoogelt. Hast Du dafür ein standartmodul?
Liebe grüsse Thomas
und nochmal vielen vielen Dank.

AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 14:53:48
yummi
Hallo Tho0mas,
nein ich habe kein Standardmodul :-)
ich würde es aber so machen:
1. globale Variable dim zeile as long anlegen
2. in UserForm_Initialize() zeile = 0 setzen
3. in Private Sub ListBox2_Click() hinter If Not rngID Is Nothing Then
zeile = rngID.row
4.

Private Sub CommandButton6_Click()
dim str as String
if zeile  0 then
str = "A" & zeile & ":H" & zeile
Sheets("Daten").Range(str).Delete Shift:=xlUp
end if
End Sub

so sollte es gehen, hab ich jetzt aber nicht getestet.
Gruß
yummi

Anzeige
AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 15:06:29
Thomas
Hallo yummi
Oh man bist du schnell,
es kommt noch ein Fehler in If zeile 0 Then und das Wort zeile wird markiert?
aber leider schreibt er nicht mehr?
schaust du noch mal?
Und besten Dank für deine Geduld.
Liebe grüsse Thomas

AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 15:06:49
Thomas
Hallo yummi
Oh man bist du schnell,
es kommt noch ein Fehler in If zeile 0 Then und das Wort zeile wird markiert?
aber leider schreibt er nicht mehr?
schaust du noch mal?
Und besten Dank für deine Geduld.
Liebe grüsse Thomas

AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 15:43:11
yummi
Hallo Thomas,
1. globale Variable dim zeile as long anlegen hast du wohl vergessen? ;-)
wenn du im vba editor auf deine userform klickst und dort in den code gehst, ganz nach oben in den globalen Bereich (wo du schon
Dim rngFind As Range
Dim rngID As Range
Dim Bol As Boolean
definiert hast, da musst du auch zeile definieren und nicht in den einzelnen funktionen selber, da sie sonst nur die Gültigkeit innerhalb der Funktion haben, du willst aber den Wert, den du in listbox2_Click bestimmt hast ja in commandButton6_Click verwenden, deshalb global. Ich hoffe du hast es verstanden.
Gruß
yummi

Anzeige
AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 16:47:40
Thomas
Hallo yummi,
bitte nicht aufgeben dies ist mein erstes eigenes Projekt mit null Ahnung.
Habe ich mir auch schon gedacht und habe beide Eintragungen versucht.
Siehe unten bekomme dann zwar keine Fehlermeldung mehr aber der Datensatz wird nicht gelöscht?
Option Explicit
Dim rngFind As Range
Dim rngID As Range
Dim Bol As Boolean
Dim zeile As Long
Private Sub CommandButton7_Click()
Dim str As String
Dim zeile As Long
'end
habe leider noch eine Frage
bekommt man in der schliessen aktion noch die möglichkeit des  abbrechen rein?
Habe im Netz schon einiges gefunden aber nichts passt in diesem Code? Bitte nicht lachen er ist  _
durch probieren enstanden und funktioniert bis  aufs abbrechen ganz gut.

Private Sub CommandButton5_Click()
If ComboBox1.Text = "" Then
'UserForm schließen
Bol = False
Unload UserForm1
Exit Sub
Else
If MsgBox("Den angezeigten Datensatz speichern Achtung sonst Drückst Du nein wird alles  _
verworfen und Du hast alles umsonst gemacht Simpi?", 36, "Sicherheitsabfrage") = vbYes Then
'CommandButton3_Click
If Not rngID Is Nothing Then
'rngID.Value = ComboBox1.Text
rngID.Offset(0, -2).Value = TextBox1.Text
rngID.Offset(0, -1).Value = TextBox2.Text
rngID.Offset(0, 0).Value = TextBox3.Text
rngID.Offset(0, 1).Value = TextBox4.Text
rngID.Offset(0, 2).Value = TextBox5.Text
rngID.Offset(0, 3).Value = TextBox6.Text
rngID.Offset(0, 4).Value = TextBox7.Text
rngID.Offset(0, 5).Value = TextBox8.Text
Else
rngFind.Value = ComboBox1.Text
rngFind.Offset(0, -2).Value = TextBox1.Text
rngFind.Offset(0, -1).Value = TextBox2.Text
rngFind.Offset(0, 0).Value = TextBox3.Text
rngFind.Offset(0, 1).Value = TextBox4.Text
rngFind.Offset(0, 2).Value = TextBox5.Text
rngFind.Offset(0, 3).Value = TextBox6.Text
rngFind.Offset(0, 4).Value = TextBox7.Text
rngFind.Offset(0, 5).Value = TextBox8.Text
End If
End If
Bol = False
Unload UserForm1
End If
End Sub

PS.: Bitte nicht aufgeben ich schaffe es nicht allein.
Lieben lieben Dank Thomas der nervige

Anzeige
AW: 7. Punkt erledigt aber noch einer offen?
03.03.2015 17:05:55
yummi
Hallo Thomas,
kann jetzt leider nicht mehr gucken, da ich sonst hier nicht mehr weg komme (morgen wieder)
schliessen kannst du mit eienr msgbox abfragen und den Rückgabewert auswerten, google mal gibt viel beispiele.
lad dann mal dein aktuelllen stand hoch, wenn du nicht weiter kommst und ich schau morgen mal ;-)
probier ein wenig. ,mit dem debugger schritt für schritt durchgehen und schauen was passiert und was du erwartest. Du schaffst das, aber ich unterstütze dich gern weiter
bis morgen
yummi

AW: 7. Punkt erledigt aber noch einer offen?
04.03.2015 02:44:56
Thomas
Hallo yummi,
ich wünsch Dir erstmal ein ruhigen Tag.
Ich habe das gerade mit dem Zeilen löschen hinbekommen. Habe irgend was aus dem netz zusammengebastelt. aber es geht.
Es bleiben für mich noch die Fragen offen wie bekommt man den "Abbrechen" Butten hin?
Die zweite frage ist wie kann man innerhalb einer userform leichte rechenaufgaben durchführen. ( Ich glaub mit google kriege ich dies noch hin)
Beide Sachen habe ich schon gegoogelt aber sieht noch nicht so gut aus. Ich mache morgen weiter. Bin hunde müde. Anbei ist noch eine interessante Sache. Die Kundenkartei. hier habe ich schon stunden verbracht ich suche eine möglichkeit auszuschliessen das man doppelte dateneinträge machen kann. Wenn ich dies nicht löse kann ich diese Datei einstampfen. Hast du eine Idee? Ich habe schon an ein Butten gedoktort der sollte eine neue Nummer erzeugen, prüfen ob Spalte D,E,F gleich sind dann eine fehlermeldung bringen und wenn alles ok ist die daten in die datenbank schreiben. Nun ja wie Du siehst hat es nicht geklappt. Schaust Du Dir dies mal an?

Die Datei https://www.herber.de/bbs/user/96136.xlsm wurde aus Datenschutzgründen gelöscht


Libe Grüsse Thomas

Anzeige
AW: 7. Punkt erledigt aber noch einer offen?
04.03.2015 10:15:35
yummi
Hallo Thomas,
sieht gut aus deine Maske ;-)
Das ist jetzt aber ein anderes Projekt oder hast du es so stark umgewandelt?
Ich hab dir mal eine FindeEintrag Funnktion gebastelt, schau dir mal an, ob Du damit klarkommst.
Eine Abfrage für den Abbrechen Button habe ich dir auch mal eingebaut, kannst du bei Bedarf ja noch anpassen.
https://www.herber.de/bbs/user/96142.xlsm
Ich hoffe, du kommst damit erstmal wieder ein wenig weiter ;-)
Gruß
yummi

AW: 7. Punkt erledigt aber noch einer offen?
04.03.2015 11:10:13
Thomas
Hallo yummi,
das ist COOL,bekommst Du dies auch mit drei spalten hin ( Spalte F zusätzlich)? Hier wäre eine grössere Sicherheit gegeben.
Denn hier sind doppelte eingaben Tötlich für mich da ich die Kundenummer weiterverarbeite, deshalb die Eingabemaske. Das sind jeweils nur Bausteine aus einem riesen projekt. PS Die Grund Maske ist natürlich aus dem Netz ich versuche Sie nur seit tagen für mich anzupassen. Dein Vorschlag ist ein weiterer Meilenstein. Weist Du was ich hier noch nicht brauchen kann? das sind Kundennummern ohne Kunden deshalb habe ich schon mal die eine Prüfung bei eingaben eingebaut . Habe schon viel getestet aber ich glaube das geht nicht mit Stückeln da muss man richtig an den butten neue "Kundenummer anlegen" ran. Deshalb habe ich gedacht ob es leichter ist beim speichern die leeren zeilen zu löschen wenn nur in Spalte a ein Wert steht. Da habe ich schon einiges zu im netz gefunden aber vieleicht hast Du ja eine Idee auf Lager.
Liebe grüsse Thomas

AW: 7. Punkt erledigt aber noch einer offen?
04.03.2015 11:43:43
yummi
Hallo Thomas,
ich hab dir die FindeEintrag extra so gestaltet, dass du sie universell einsetzen kannst ;-)
z.b. so:

if FindeEintrag("Name1", "B")  0 then   ' oder if FindeEintrag("Name1",  _
WandleZahlInBuchstaben(2))  0 then
if FindeEintrag("Vorname1", "C")  0 then
if FindeEintrag("Strasse", "D")  0 then
if FindeEintrag("Stadt", "E")  0 then
if FindeEintrag("WasImmerDuWillst", "F")  0 then
u.s.w
'Dann dein code der nach allen Überprüfungen greifen soll
end if
end if
end if
end if
end if
oder halt so wie im Code in einer Schleife, die du ja auch beliebig erweitern kannst. Du hast mit der Funktion schon alle Möglichkeiten zu prüfen.
Mit den leeren Feldern mach das doch so:
Neuen Datensatz anlegen anklicken stellt leere Maske zur Verfügung (hast du ja schon) nur das Anlegen der Kundennummer würde ich jetzt noch nicht machen.
Du füllst dann deine Maske aus
Bei Klick auf Abbrechen kommt die Abfrage ob das so gewollt ist und wenn ja beachtest du die Eingaben nicht weiter und verwirfst sie (deshalb noch keine Kundennummer bei Anlegen erzeugen)
Bei Klick auf Speichern überprüfst du zuerst ob die Pflichtfelder gefüllt sind (z.B. if Me.TextBox1.Text = "" then Fehlermeldung)
Anschliessend wenn alles so weit gefüllt ist überprüfst Du die einzelnen Felder mit FindEintrag, ob Sie schon vorhanden sind. Wenn ja Fehlermeldung sonst Kundenummer anlegen und speichern.
Ist alles kein Hexenwerk und zum großen Teil hast du es ja schon.
Mach den gesamten Vorgang immer für ein Feld und teste ob es so wie gewollt funzt, dann guck was du ändern müsstest um ein anderes Feld zu prüfen und schon kannst du schnell mit copy und paste und den kleinen Änderungen, die du für das neue Feld erkannt hast, das ganze erweitern ;-)
Ich kann dir immer nur wieder raten nutze den debugger und schau dir an was die Variablen bei jedem Schritt machen, welche Werte sie haben, dann verstehst du das ganze und es fällt dir leichter es so zu ändern wie du es haben willst.
Probier mal und wenn du nicht weiter kommst, dann frag
Gruß
yummi

grossen extra Dank an yummi
04.03.2015 13:30:18
Thomas
Hallo yummi,
damit komme ich weiter. Dann mache ich mich mal ran.
Besten Dank für deine tipps. Ich werde es genauso angehen.
Einiges weiss ich ja schon aber mit dein tips verstehe ich auch was ich tue das spart am ende viel Zeit.
LIEBE Grüsse Thomas

grossen extra Dank an yummi
04.03.2015 15:31:23
Thomas
Hallo yummi,
damit komme ich weiter. Dann mache ich mich mal ran.
Besten Dank für deine tipps. Ich werde es genauso angehen.
Einiges weiss ich ja schon aber mit dein tips verstehe ich auch was ich tue das spart am ende viel Zeit.
LIEBE Grüsse Thomas

AW: grossen extra Dank an yummi
05.03.2015 08:09:53
Thomas
Hallo,
die abfrage ob der Datensatz schon vorhanden ist klappt super. Jedoch habe ich jetzt das Problem das ich den datensatz auch nicht mer ändern kann. Ich hätte zwei Ideen dafür. Das Macro soll fragen " Achtung dieser Datensatz existiert schon möchtest Du die Änderungen dennoch durchführen?" Die zweite Idee wäre den Anwender aufzufordern " Achtung dieser Datensatz exsistiert schon wenn Sie die Änderungen dennoch durchführen möchten aktivieren Sie das Kontrollkästien" und dann abbruch. Hier müsste dann aber beachtet werden das der Haken im Kontrollkästien nach der Änderung wieder entfern werden muss. Platz für den Haken im Kontrollkästien hätte ich in Spalte B.( Falls man dafür eine Spalte brauch. Tip sucht man im Code nach "neu angelegt" gelangt man schnell zur entsprechenden Stelle ( glaube ich jedenfalls).
Die zweite Idee wäre für mich die bessere.
Lieben dank schon mal
Thomas
Der Ausgangcode:
Private Sub cmd_Daten_uebernehmen_Click()
' Grundlage: Herber, 058499
Dim i% ' textfelder 1 und 2 müssen ausgefüllt sein
Dim bGef As Boolean
Dim sSearch As String
Dim Mldg As String
Dim Stil As VbMsgBoxStyle
Dim Titel As String
Dim Ergebnis As VbMsgBoxResult
Dim rng As Range
Dim intcounter As Integer
For i = 2 To 3 ' textfelder 1 und 2 müssen ausgefüllt sein
'Frage: soll Textbox 1 und 2 oder 2 und 3 gefüllt sein?
'Jetzt wird 2 und 3 geprüft (siehe for Schleife, du kannst aber auch 1,2, und 3 prüfen, nur  _
die for Schleife anpassen)
If Me.Controls("TextBox" & CStr(i)).Text = "" Then ' textfelder 1 und 2 müssen ausgefüllt  _
sein
MsgBox "Alle Felder ausfüllen!" ' textfelder 1 und 2 müssen ausgefüllt sein
Exit Sub ' textfelder 1 und 2 müssen ausgefüllt sein
End If ' textfelder 1 und 2 müssen ausgefüllt sein
Next i ' textfelder 1 und 2 müssen ausgefüllt sein
bGef = False
For i = 2 To 3
If FindEintrag(Me.Controls("Textbox" & CStr(i)).Text, WandleZahlInBuchstaben(i + 2))  0  _
Then
bGef = True
End If
Next i
If bGef = True Then ' doppelte suchen verwende hier Vorname und Nachname, wen ndu was anderes  _
prüfen wilslt einfach Übergabeparameter ändern, kannst du an anderer Stelle auch verwenden bei Bedarf
MsgBox "Der Name '" & TextBox3.Value & " " & TextBox2.Text & "'ist schon vorhanden!" '  _
doppelte suchen
Else
'den Teil habe ich (noch) nicht angefasst
sSearch = ListBox1.Text
If sSearch = "" Then Exit Sub
sSearch = ListBox1.Text
If sSearch = "" Then Exit Sub
If sSearch = "Kd-Nr" Then
Mldg = "Es wurde kein Kunde aus der Liste angewählt oder" _
& " neu angelegt." & Chr(10) & Chr(10) _
& "Es kann keine Datenübernahme vorgenommen werden."
Stil = vbOKOnly + vbInformation
Titel = "Dateneingabekontrolle"
Ergebnis = MsgBox(Mldg, Stil, Titel)
Exit Sub
End If
'so wie oben machen, obwohl das hast du ja schon geprüft
'If FindEintrag Then ' Doppelte ausschliessen
'    MsgBox "Der Name '" & Me.TextBox2.Value & " " & TextBox3 & "'ist schon vorhanden!"
'    Exit Sub
'End If
Set rng = ActiveSheet.Columns("A:A").Find( _
What:=sSearch, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows)
If rng Is Nothing Then
Exit Sub
End If
For intcounter = 1 To 51
Cells(rng.Row, intcounter + 2).Value = Controls("TextBox" & intcounter).Text
Next
Mldg = "Die Eintragungen wurden in die Datenbank übernommen."
Stil = vbOKOnly + vbInformation
Titel = "Dateneingabe - Übernahme - Bestätigung"
Ergebnis = MsgBox(Mldg, Stil, Titel)
End If
End Sub

AW: grossen extra Dank an yummi
05.03.2015 09:20:34
yummi
Hallo Thomas,
einfachste Weg:
Bau dir ein eigenes Abfragefenster (Userform)
Da kannst Du dir 3 Button drauflegen, die entsprechend beschreiben und seperat auf jeden Button reagieren.
z.B.:
1. button Änderungen verwerfen
2. Änderungen übernehmen
3. Änderungen korigieren
Was hälst du davon?
Gruß
yummi

AW: grossen extra Dank an yummi
06.03.2015 03:38:17
Thomas
Hallo yummi,
sorry muste heut noch arbeiten.
Das ist schon eine super Idee. Kannst Du soetwas?
Ich glaube da habe ich keine chance allein. Habe schon gegoogelt aber?.
Liebe Grüße Thomas

AW: grossen extra Dank an yummi
06.03.2015 09:12:10
yummi
Hallo Thomas,
ja kann ich ;-) ist ganz einfaach.
Wenn du im VBA Editor bist rechtsklick auf dein Projekt - einfügen - userform
Dann die Größe im wysiwyg editor einstellen. Du buttons draufziehen und beschriften. Wenn du einen Button dann doppelklicktst gelangst du an die Stelle, wo der Code für den Button hin muss.
Bau dir das mal zusammen, so wie es aussehen soll und entweder du versuchst die Button dann mit Leben zu füllen oder du schreibst einfach nur als kommentar rein was welcher button machen soll und was dann passieren soll und postest es
Gruß
yummi

AW: grossen extra Dank an yummi
06.03.2015 10:33:35
Thomas
ok?
Dann werde ich ma basteln. Ist spannent.
Liebe Grüsse Thomas

AW: grossen extra Dank an yummi
06.03.2015 10:33:53
Thomas
ok?
Dann werde ich ma basteln. Ist spannent.
Liebe Grüsse Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige