vba arbeitet nicht wie erwartet

23/02/2010 - 19:21 von Michael Feske | Report spam
Hallo alle zusammen,
ich verwende eine Vba Funktion zum auffinden von Werten.
Private Sub TextBox3_Change()
Static regex As Object
Dim f As Range


If regex Is Nothing Then Set regex = CreateObject("VBScript.RegExp")
Rem regex.Pattern = "1380(\d+)0"
regex.Pattern = "1380(\d{7,})0"
Rem regex.Pattern = "(\d{7,})0"
Rem regex.Pattern = "(\d{7,})"

If regex.Test(Me.TextBox3.Text) Then
Set f = [BARCODES_A].Find(regex.Replace(Me.TextBox3.Text, "$1"))
If f Is Nothing Then
Rem MsgBox "Nicht gefunden"
Rem anwesenheit.TextBox3 = ""
Me.Hide
nachtrag.Show
Else
Rem f.EntireRow.Select
Rem f.EntireRow.Cells(, "I").Select
Rem datum in (i*2)-1 dozent in (i*2)
Rem f.Offset(, i * 2 - 1).Select
Rem f.Offset(, 1).Select
f.Offset(, Me.ComboBox1.Value * 2 - 1).Select
With ActiveCell
.Value = Now
.NumberFormat = "dd.mm.yyyy hh:mm:ss"
.Offset(, 1).Value = Me.ComboBox2.Value
End With
Rem Me.Hide
anwesenheit.TextBox3 = ""

End If
End If
End Sub
Das funktioniert auch ganz gut, außer wenn ich von meinem zweiten Formular
in dieses springe, dann funktioniert die suchfunktion nicht. Woran könnte
dies liegen?
Gruß
Micha

formular 1
schnipp

Option Explicit

Private Sub CommandButton1_Click()
Me.Hide
End Sub

Private Sub UserForm_Initialize()

Dim uebung As Variant
Dim i As Integer
With ComboBox1
.ColumnCount = 2
.BoundColumn = 1
.ColumnWidths = "0cm;2cm"
.Clear
For i = 1 To 10
.AddItem i
.List(.ListCount - 1, 1) = "Übung " & Format(i, "00")
Next
.Value = 1
End With

Dim Dozent As Variant
Dim x As Integer
Dozent = Array("Dozent 01", "Dozent 02", _
"Dozent 03", "Dozent 04", "Dozent 05", "Dozent 06", "Dozent 07", "Dozent
08", _
"Dozent 09", "Dozent 10")
For x = LBound(Dozent) To UBound(Dozent)
Me.ComboBox2.AddItem Dozent(x)
Next

End Sub
Private Sub TextBox3_Change()
Static regex As Object
Dim f As Range


If regex Is Nothing Then Set regex = CreateObject("VBScript.RegExp")
Rem regex.Pattern = "1380(\d+)0"
regex.Pattern = "1380(\d{7,})0"
Rem regex.Pattern = "(\d{7,})0"
Rem regex.Pattern = "(\d{7,})"

If regex.Test(Me.TextBox3.Text) Then
Set f = [BARCODES_A].Find(regex.Replace(Me.TextBox3.Text, "$1"))
If f Is Nothing Then
Rem MsgBox "Nicht gefunden"
Rem anwesenheit.TextBox3 = ""
Me.Hide
nachtrag.Show
Else
Rem f.EntireRow.Select
Rem f.EntireRow.Cells(, "I").Select
Rem datum in (i*2)-1 dozent in (i*2)
Rem f.Offset(, i * 2 - 1).Select
Rem f.Offset(, 1).Select
f.Offset(, Me.ComboBox1.Value * 2 - 1).Select
With ActiveCell
.Value = Now
.NumberFormat = "dd.mm.yyyy hh:mm:ss"
.Offset(, 1).Value = Me.ComboBox2.Value
End With
Rem Me.Hide
anwesenheit.TextBox3 = ""

End If
End If
End Sub schnapp

formular 2
schnipp

Option Explicit
Private Sub UserForm_Initialize()
Dim gruppe As Variant
Dim y As Integer
gruppe = Array("A01", "A02", "A03", "A04", "A05", _
"B06", "B07", "B08", "B09", "B10", _
"C11", "C12", "C13", "C14", "C15", _
"XXX")
For y = LBound(gruppe) To UBound(gruppe)
Me.gruppe.AddItem gruppe(y)
Next
End Sub
Private Sub CommandButton1_Click()
Rem erste freie zelle in A suchen
Cells(65000, 1).End(xlUp).Offset(1, 0).Select
Rem vorname in A eintragen aus vorname
With ActiveCell
.Value = nachtrag.vorname.Value
Rem Nachname in B eintragen aus nachname
.Offset(, 1).Value = nachtrag.nachname.Value
Rem Gruppe in C aus dropdown gruppe
.Offset(, 2).Value = nachtrag.gruppe.Value
Rem Matrikel ohne 1380 am Anfang und 0 am Ende
.Offset(, 3).Value = anwesenheit.TextBox3.Value
Rem dann wie in anwesenheit Position bestimmen Datum Uhrzeit und Dozent
eintragen
.Offset(, anwesenheit.ComboBox1.Value * 2 - 1 + 3).Select
With ActiveCell
.Value = Now
.NumberFormat = "dd.mm.yyyy hh:mm:ss"
.Offset(, 1).Value = anwesenheit.ComboBox2.Value
anwesenheit.TextBox3 = ""
anwesenheit.Show
Me.Hide
End With
End With
End Sub
Private Sub CommandButton2_Click()
Rem anwesenheit.TextBox3 = ""
Rem anwesenheit.Show
Me.Hide
End Sub schnapp
 

Lesen sie die antworten

#1 Peter Schleif
24/02/2010 - 09:52 | Warnen spam
Michael Feske schrieb am 23.02.2010 19:21 Uhr:

ich verwende eine Vba Funktion zum auffinden von Werten.
[...viel Code...]



Das ist etwas viel Code um es zusammen mit den benötigten UserFormen in
eine Test-Mappe einzubauen. Kannst Du die Mappe mit den UserForms mal
irgendwo uploaden? z.B. hier: http://www.file-upload.net


Das funktioniert auch ganz gut, außer wenn ich von meinem zweiten Formular
in dieses springe, dann funktioniert die suchfunktion nicht. Woran könnte
dies liegen?



Wie genau "springst" Du von einem Formular ins andere?

Peter

Ähnliche fragen