Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

- Graues Blatt zum Start und Matchcase-Problem

Forumthread: - Graues Blatt zum Start und Matchcase-Problem

- Graues Blatt zum Start und Matchcase-Problem
morgandalf
Einen schönen guten Morgen allerseits,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: - Graues Blatt zum Start und Matchcase-Problem
30.07.2011 09:32:41
fcs
Hallo Morgandalf,
Problem 1: Excel "grau" starten.
Du kannst die Arbeitsmappe per Makro so einrichten, dass sie ausgeblendet gespeichert wird (ähnlich wie die persönliche Makroarbeitsmappe).
Beim Öffnen der Datei dann erst nach dem Schliessen des Userforms die Mappe einblenden/sichtbar machen.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Before_Close Makro
' Aktuelle Datei minimieren vor dem Schliessen
If Me.Saved = True Then
Me.Windows(1).Visible = False
Me.Save
Else
Me.Windows(1).Visible = False
End If
End Sub
Private Sub Workbook_Open()
' Open Makro
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
' Aktuelle Datei Maximieren nach Anzeige Start-Userform schliessen
Me.Windows(1).Visible = True
End Sub

Nach dem Anpassen der Makros unter DieseArbeitsmappe unbedingt die Datei speichern bevor sie geschlossen wird!
Problem 2: Suchen
Excel merkt sich bei jeder Suche die Werte der Parameter What, LookAt und LookIn.
Wenn du sicherstellen willst, dass wunschgemäß gesucht wird, dann muss du für die Suche diese Parameter immer angeben oder den Suchwert um Wildcards erweitern.
  Set c = .Find(SSearch, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
'oder
Set c = .Find("*" & SSearch & "*", LookIn:=xlValues, MatchCase:=False)

Gruß
Franz
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige