Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage an Chris / Textbox ?

Frage an Chris / Textbox ?
20.07.2006 11:14:54
Thorsten
Hallo an alle User und Chris,
Ich habe den VBA Code noch erweitert, um zwei Textboxen ( TBName und TBNr).
Leider kommt eine Fehlermeldung bei der ersten If Controls, was habe ich da Falsch gemacht?
In TBPreis gebe ich auch Werte ein!!
Wenn mir auch jemannd anderes helfen möchte währe ich auch Dankbar.

Private Sub CommandButton14_Click()
Dim LetzteZeile As Long
Dim iTB As Byte
For iTB = 1 To 8
If Controls("TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB) <> "" Then
If Not IsDate(Controls("TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB)) Then
MsgBox "TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB & " enthält kein Eingabe. Bitte korrigieren.", vbInformation, "Programmabbruch"
Controls("TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB).SetFocus
Exit Sub
End If
End If
Next iTB
With ActiveSheet
LetzteZeile = .Range("D89").End(xlUp).Row
If LetzteZeile < 52 Then LetzteZeile = 89
For iTB = 1 To 8
If Controls("TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB) = "" Then
Exit Sub
If .Range("D89") <> "" Then
MsgBox "Tabelle ist voll. Es können keine weiteren Daten übertragen werden.", vbCritical, "Fehler"
Exit Sub
Else
.Cells(LetzteZeile + iTB, 1) = Controls("TBName" & iTB)
.Cells(LetzteZeile + iTB, 2) = Controls("TBNr" & iTB)
.Cells(LetzteZeile + iTB, 3) = CDate(Controls("TBDatum" & iTB))
.Cells(LetzteZeile + iTB, 4) = Controls("TBPreis" & iTB)
Controls("TBDatum" & iTB) = ""
End If
Next iTB
End With
End Sub

Gruß Torte

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

Betreff
Datum
Anwender
Anzeige
AW: Frage an Chris / Textbox ?
20.07.2006 12:13:36
Kay
Hallo Torte,
wenn du mehere TBName, TBNr als TextBoxen hast mit 1,2,3 usw. dann musst du an jedem Controlnamen auch den Zähler anhängen, sonst findet er die TextBox nicht und es gibt einen Fehler.
Probier das mal:
If Controls("TBName" & iTB & "TBNr" & iTB & "TBDatum" & iTB & "TBPreis" & iTB) "" Then
MfG
Kay
AW: Frage an Chris / Textbox ?
20.07.2006 12:48:54
Thorstem
Danke erstmal für deine Hilfe Kay,
ich habe es jetzt so geändert wie du es beschrieben hast. Dennoch kommt bei der ersten If Controls die Fehlermeldung.Hier meine Änderung

Private Sub CommandButton14_Click()
Dim LetzteZeile As Long
Dim iTB As Byte
For iTB = 1 To 8
If Controls("TBName" & iTB & "TBNr" & iTB & "TBDatum" & iTB & "TBPreis" & iTB) <> "" Then
If Not IsDate(Controls("TBName" & iTB & "TBNr" & iTB & "TBDatum" & iTB & "TBPreis" & iTB)) Then
MsgBox "TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB & " enthält kein Eingabe. Bitte korrigieren.", vbInformation, "Programmabbruch"
Controls("TBName" & iTB & "TBNr" & iTB & "TBDatum" & iTB & "TBPreis" & iTB).SetFocus
Exit Sub
End If
End If
Next iTB
With ActiveSheet
LetzteZeile = .Range("D89").End(xlUp).Row
If LetzteZeile < 52 Then LetzteZeile = 89
For iTB = 1 To 8
If Controls("TBName" & iTB & "TBNr" & iTB & "TBDatum" & iTB & "TBPreis" & iTB) = "" Then Exit Sub
If .Range("D89") <> "" Then
MsgBox "Tabelle ist voll. Es können keine weiteren Daten übertragen werden.", vbCritical, "Fehler"
Exit Sub
Else
.Cells(LetzteZeile + iTB, 1) = Controls("TBName" & iTB)
.Cells(LetzteZeile + iTB, 2) = Controls("TBNr" & iTB)
.Cells(LetzteZeile + iTB, 3) = CDate(Controls("TBDatum" & iTB))
.Cells(LetzteZeile + iTB, 4) = Controls("TBPreis" & iTB)
Controls("TBDatum" & iTB) = ""
End If
Next iTB
End With
End Sub

Gruß Torte
Anzeige
AW: Frage an Chris / Textbox ?
20.07.2006 13:23:15
Kay
Hallo,
dann würde ich sagen If Controls("TBName" & iTB & "TBNr" & iTB)"" geht nicht.
Vieleicht einzeln angeben Controls("TBName" & iTB)"" & Controls("TBNr" & iTB)""
Gruß
Kay
Fehler Eigenschaft
20.07.2006 19:22:50
Thorsten
Hallo nochmal,
jetzt kommt die Fehlermeldung: Unzulässige Verwendung einer Eigenschaft bei Controls?

Private Sub CommandButton14_Click()
Dim LetzteZeile As Long
Dim iTB As Byte
For iTB = 1 To 8
If Controls("TBName" & iTB) <> "" & Controls("TBNr" & iTB) <> "" & Controls("TBDatum" & iTB) <> "" & Controls("TBPreis" & iTB) <> "" Then
If Not IsDate(Controls("TBName" & iTB) <> "" & Controls("TBNr" & iTB) <> "" & Controls("TBDatum" & iTB) <> "" & Controls("TBPreis" & iTB)) Then
MsgBox "TBName" & "TBNr" & "TBDatum" & "TBPreis" & iTB & " enthält kein Eingabe. Bitte korrigieren.", vbInformation, "Programmabbruch"
Controls ("TBName" & iTB) <> "" & Controls("TBNr" & iTB) <> "" & Controls("TBDatum" & iTB) <> "" & Controls("TBPreis" & iTB).SetFocus
Exit Sub
End If
End If
Next iTB
With ActiveSheet
LetzteZeile = .Range("D89").End(xlUp).Row
If LetzteZeile < 52 Then LetzteZeile = 89
For iTB = 1 To 8
If Controls("TBName" & iTB) <> "" & Controls("TBNr" & iTB) <> "" & Controls("TBDatum" & iTB) <> "" & Controls("TBPreis" & iTB) = "" Then Exit Sub
If .Range("D89") <> "" Then
MsgBox "Tabelle ist voll. Es können keine weiteren Daten übertragen werden.", vbCritical, "Fehler"
Exit Sub
Else
.Cells(LetzteZeile + iTB, 1) = Controls("TBName" & iTB)
.Cells(LetzteZeile + iTB, 2) = Controls("TBNr" & iTB)
.Cells(LetzteZeile + iTB, 3) = CDate(Controls("TBDatum" & iTB))
.Cells(LetzteZeile + iTB, 4) = Controls("TBPreis" & iTB)
Controls("TBDatum" & iTB) = ""
End If
Next iTB
End With
End Sub

Gruß Torte
Anzeige
AW: Fehler Eigenschaft
21.07.2006 15:47:11
Kay
Hallo Thorsten,
da ich nicht weiß wieviele TextBoxen von jeder Existiert, kann es ja nun sein dass es von der TBName nur eine gibt, dann muss das 'iTB' dort entfernt werden und dafür z.B. "TBName1" stehen.
Gruß
Kay
AW: Fehler Eigenschaft
21.07.2006 18:34:02
Thorsten
Hallo Kay,
es gibt 32 Textboxen mit 8x TBNamen, 8xTBNr, 8x TBDatum, 8x TBPreis.
Hilft das dir?
Gruß Torte
AW: Fehler Eigenschaft
21.07.2006 20:17:19
Mustafa
Hallo Thorsten,
Hab dir die Tabelle zurückgeschickt, mit ein paar Änderungen.
Hoffe es Funktioniert nach deinen Wünschen.
Rückmeldung wäre nett.
Viele Grüße aus Köln.
AW: Fehler Eigenschaft
21.07.2006 21:46:26
Thorsten
Hallo Mustafa , so sollte es sein ! Ich danke dir nur ein klitze kleines Problem.
Wenn ich alle Textboxen fülle und mit Eingabe bestätige werden immer ein paar Zeilen übersprungen ? :-((
Also es wird Zeile 64 dann 68 dann 73 eingetragen, wo kann hier der Fehler sein ?
Die TBName, TBNr und TBPreis leeren sich nach eingabe nicht!! Könnte da noch eine kleine Hilfe gebrauchen.
Hier nochmal der Code, vieleicht wei ja jemannd anderes noch Rat.

Private Sub CommandButton14_Click()
Dim LetzteZeile As Long
Dim iTB As Byte
Dim Fehler As Boolean
On Error Resume Next
Fehler = True
For iTB = 1 To 8
If Controls("TBName" & iTB) <> "" Then
If Controls("TBNr" & iTB) <> "" Then
If Controls("TBDatum" & iTB) <> "" Then
If Controls("TBPreis" & iTB) <> "" Then
Fehler = False
With ActiveSheet
LetzteZeile = .Range("D89").End(xlUp).Row
If LetzteZeile < 52 Then LetzteZeile = 51
If .Range("D89") <> "" Then
MsgBox "Tabelle ist voll. Es können keine weiteren Daten übertragen werden.", vbCritical, "Fehler"
Exit Sub
Else
Application.ScreenUpdating = False
.Cells(LetzteZeile + iTB, 1) = Controls("TBName" & iTB)
.Cells(LetzteZeile + iTB, 2) = Controls("TBNr" & iTB)
.Cells(LetzteZeile + iTB, 3) = Format(Controls("TBDatum" & iTB), "DD.MM.YYYY")
.Cells(LetzteZeile + iTB, 4) = Controls("TBPreis" & iTB)
.Cells(LetzteZeile + iTB, 4) = .Cells(LetzteZeile + iTB, 4) * 1
.Cells(LetzteZeile + iTB, 4).NumberFormat = "#,##0.00 €"
Controls("TBDatum" & iTB) = ""
Application.ScreenUpdating = True
End If
End With
End If
End If
End If
End If
Next iTB
If Fehler Then
MsgBox "Es fehlen Noch eingaben!", vbInformation, "Programmabbruch"
Controls("TBName1").SetFocus
End If
End Sub

Gruß Torte und danke an alle die mir helfen
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige