Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
580to584
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
580to584
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
erst spalten prüfen danach wert eintragen
08.03.2005 18:07:21
andreas
salü zusammen
vieles durfte ich bereits lernen in diesem forum und vieles ist noch unbekannt...
nachstehenden code habe ich in einer userform. nun möchte ich bevor die werte in die betreffenden spalten eingetragen werden eine überprüfung ob die neu eingegebene (in die userform) wert-konstellation bereits vorhanden ist. ist dies der fall soll der eintrag nicht übernommen werden stattdessen eine meldung erscheinen.
kann mir jemand weiterhelfen? wäre super.
Gruss Andreas

Private Sub CommandButton1_Click()
'vor dem eintragen der daten wird nachgefragt, ob alles richtig ist'
Dim mldg, stil, titel, grc
mldg = "Alles richtig eingetragen ?"
stil = vbYesNo + vbCritical + vbDefaultButton2
titel = "Frage ?"
grc = MsgBox(mldg, stil, titel)
If grc = vbYes Then
Else
Exit Sub
End If
'daten werden ins tabellenblatt eingetragen'
Sheets.Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
ActiveCell.Value = TextBox1.Text
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = TextBox5.Text
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = TextBox4.Text
ActiveCell.Offset(0, 1).Range("A1").Select
'textbox wieder leeren
TextBox1.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
Call UserForm_Initialize
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erst spalten prüfen danach wert eintragen
08.03.2005 19:21:11
Luc
Hallo Andreas,
funktioniert denn das Pgm bisher? Ich hätte da Zweifel - zumindest würde ich nicht mit diesem verschobenen select arbeiten, sondern die Zellen direkt ansprechen mit cells(i,j).value und dann in der Schleife i bzw j jeweils um 1 erhöhen. Dann könnten auch sauber 3 Startzellen definiert wdn. Wenn du i und j static deklarierst, bleibt auch ihr Wert zwischen den PgmAufrufen erhalten. Beim Abgleich auf vorhandene Wertekombination könntest du die Werte der 3 Boxen und der 3 Zellen jeweils als String zusammenfassen und alle vorangehenden Zellkombinationen (in den Indizes i,j niedriger) in einer Unterschleife for k=1 to i... next k innerhalb von do until...loop abfragen.
Gruß Luc
:-?
Anzeige
AW: erst spalten prüfen danach wert eintragen
08.03.2005 21:25:45
andreas
hallo luc
äh... was heisst das für mich? leider bin ich in vba nicht wirklich gut... wie erwäht. kannst du mir vieleicht das geschriebene in einen code fassen? so hätte ich die möglichkeit zu versuchen deine ausführungen zu verstehen und etwas daraus zu lernen.
das wäre toll.
gruss andi
Hab jetzt kaum Zeit -- später! owT :-?
09.03.2005 08:55:02
Luc
AW: Lösungscode - spät aber versprochen ist...
10.03.2005 21:23:12
Luc
Hallo Andreas,
habe ggw. für umfangreichere Sachen kaum Zeit, aber hab's fertig und getestet (allerdings nicht mit UserForm und TextBox, müsste aber klappen).

Private Sub CommandButton1_Click()
Rem vor dem eintragen der daten wird nachgefragt, ob alles richtig ist!
Dim mldg As String, titel As String, vgl As String, _
tb As Variant, wk As Variant, stil As Long, i As Long, _
grc As Integer, j As Integer
tb = Array(TextBox1.Text, TextBox5.Text, TextBox4.Text)
mldg = "Alles richtig eingetragen ?"
stil = vbYesNo + vbQuestion + vbDefaultButton2
titel = "Frage ?"
grc = MsgBox(mldg, stil, titel)
If grc <> vbYes Then Exit Sub
Rem daten werden in alle exist tabblätter der akt Arbeitsmappe eingetragen !?
Sheets.Select  'b. 1 exist u.auf akt Blatt übflüss, sonst Sheets(blattnr/name)
i = 1
wk = Array(Cells(i, 1).Value, Cells(i, 2).Value, Cells(i, 3).Value)
vgl = Join(tb, ";")          'wk u. tb angelegt, damit Join verwendet wdn kann
Do Until Join(wk, ";") = ";;"
If Join(wk, ";") = vgl Then
MsgBox "Wertekombination " & vgl & " schon vorhanden in Zeile " & _
i & " !", vbCritical, "Daten !"
GoTo ex
End If
i = i + 1
wk = Array(Cells(i, 1).Value, Cells(i, 2).Value, Cells(i, 3).Value)
Loop
For j = 0 To 2
Cells(i, j + 1).Value = tb(j)
Next j
ex: Rem textbox wieder leeren
TextBox1.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
Call UserForm_Initialize
End Sub

Erläuterungen im Code. Wenn noch Fragen auftauchen, aber auch wenn's funktioniert, melde dich.
Ciao Luc
:-?
Anzeige
...und funktioniert's? Oder woanders fündig? owT
11.03.2005 20:51:23
Luc
:-|
AW: Lösungscode - spät aber versprochen ist...
11.03.2005 21:14:34
Andreas
hallo luc
vielen herzlichen dank für eine mühe. habe mir das ganze noch nicht angeschaut. werde es aber raschnöglichst machen und feedback geben.
ein schönes wochenende
gruss andi
Naja, dann kam's zeitlich wohl zurecht! OK owT
11.03.2005 21:21:22
Luc
AW: Naja, dann kam's zeitlich wohl zurecht! OK owT
12.03.2005 21:48:09
Andreas
hallo luc
super, genau so habe ich es mir vorgestellt. vielen dank für deine hilfe. drei fragen habe ich noch dazu.
1. wo fixiere ich die anzahl der einträge in die jeweilige zeile? es geht um insgesamt 13 einträge.
2. du hast erwähnt, dass einträge auf alle vorhandenen tabellenblätter eingetragen werden. bei deinem makro wird jedoch nur im ersten blatt eingetragen. was muss ich genau eingeben?
3. kann ich auch nur einzelne zellen in alle (insgesammt 8 tabellenblätter) eintragen lassen?
vieleicht findest du nochmals etwas zeit für meine fragen? auf jedenfall hat mir deine lösung bereits einiges weitergeholfen und vieleicht komme ich selbst noch auf die lösungen zu meinen fragen. würde mich auf jeden fall nochmals melden.
nochmals vielen dank
gruss andreas
Anzeige
OK, hab's notiert! owT
12.03.2005 23:35:10
Luc
AW: vielen dank owT
13.03.2005 08:35:05
andreas

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige