- Graues Blatt zum Start und Matchcase-Problem
morgandalf
zwei Dinge beschäftigen mich derzeit:
Ich starte eine Datei, an deren Beginn ich eine Userform bildschirmfüllend einblende. Vor dem Start der Userform erscheint kurz das eigentliche Tabellenblatt.
Wie kriege ich es hin, dass statt dem Tabellenblatt einfach ein grauer Bildschirm erscheint? Danach soll die Userform auftauchen und dann das eigenliche zu bearbeitende Tabellenblatt.
Mein Code:
Private Sub Workbook_Open()
Dim Eingabe As String
Dim zelle
With UserForm1
.StartUpPosition = 1
.Height = Application.Height / 1
.Width = Application.Width / 1
.Label1.Left = (.Width - .Label1.Width) / 2
.Label2.Left = (.Width - .Label2.Width) / 2
.Label6.Left = (.Width - .Label6.Width) / 2
.Label8.Left = Application.CentimetersToPoints(1)
.Label8.Top = .Height - 18 - .Label8.Height - Application.CentimetersToPoints(1)
.Show
End With
EndSub
Das zweite Problem: In dieser Datei wird eine Benutzereingabe abgefragt. Diese soll mit _beginnendem Grossbuchstaben erfolgen. Die einzelnen Namens sind in einem Range im Tabellenblatt _
'Personal' hinterelgt. Hier der verwendete Code:
Private Sub Workbook_Open()
Dim Eingabe As String
Dim zelle
Eingabe = InputBox("Um mit der Erstellung fortzufahren, geben Sie bitte Ihren NACHNAMEN ein. _
Beachten Sie hierbei bitte die Gross- und Kleinschreibung!!")
Set zelle = Range("Personal").Find(What:=Eingabe, LookIn:=xlValues, lookat:=xlWhole, MatchCase:= _
_
_
True)
If Not zelle Is Nothing Then
Worksheets("Ausdruck").Range("B2") = Eingabe
Else
MsgBox "Sie sind nicht befugt, diese Liste zu bearbeiten. Excel wird geschlossen"
Call Beenden
End If
End Sub
Soweit sogut. Nur wenn ich dann eine Suche starte, verlangt Excel zum Finden von Ergebnissen, dass der exakte Name des Suchobjektes eingegeben wird. Ziel ist es aber, dass schon Teile des Suchobjektnamens gesucht werden können und zwar unabhängig von einer eventuellen Groß- oder Kleinschreibung.
Hier der Code der Suchabfrage:
Option Explicit
Global SSearch As String
Public Sub SearchAllTables()
Dim ws As Worksheet
Dim c
Dim firstAddress As String
Dim secAddress
Dim GFound As Boolean
Dim GWeiter As Boolean
GWeiter = False
GFound = False
anf:
Set ws = ActiveWorkbook.Sheets("Artikel eintragen")
SSearch = InputBox("Suche" & " nach:", "Search In All Tables", SSearch)
If SSearch = "" Then
End
End If
weiter:
With ws.Cells
Set c = .Find(SSearch, LookIn:=xlValues, MatchCase:=False)
If Not c Is Nothing Then
GFound = True
ws.Select
c.Select
Selection.Offset(0, 1).Select
firstAddress = c.Address
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbYes Then
Do
Set c = .FindNext(c)
secAddress = c.Address
If c.Address = firstAddress Then
Exit Do
End If
c.Select
Selection.Offset(0, 1).Select
If MsgBox("Weitersuchen ?", vbQuestion + vbYesNo) = vbNo Then
GWeiter = True
GoTo ende
End If
Loop While Not c Is Nothing And secAddress firstAddress And c.Address firstAddress
Else
GWeiter = True
GoTo ende
End If
End If
End With
ende:
If GFound = False Then
If MsgBox("Suchwert nicht gefunden ! Neue Suche ?", vbInformation + vbYesNo) = vbYes Then
GoTo anf:
End If
Else
If GWeiter = False Then
If MsgBox("Sie haben das Tabellenblatt durchsucht ! Soll die Suche neu gestartet werden ?", _
vbInformation + vbYesNo) = vbYes Then
GoTo weiter
End If
End If
End If
End Sub
Irgendetwas passt hier nicht. Scheinbar überlagert MatchCase:=True aus der Benutzerabfrage das MatchCase:=False der Suche.
Um Hilfe mit möglichst ausführlichem Code wäre ich sehr dankbar!
Einen schönen Tag Euch allen
Morgandalf
Anzeige