Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitsblätter durchsuchen funktioniert nicht

Arbeitsblätter durchsuchen funktioniert nicht
Bowl
Mahlzeit zusammen,
mit dem hier:
Sub Speichern_Click()
Dim ws As Worksheet, bFound As Boolean
For Each ws In ActiveWorkbook.Sheets
If ws.Name = ActiveSheet.Cells(3, 2).Value Then          Nummer/Tabellenblatt mit dem Namen  _
vorhanden
MsgBox ("Auftrag schon vorhanden")
Exit Sub
End If
Next ws
If bFound = False Then
Call Anlegen
ElseIf [B3] = "" Then
MsgBox ("Auftragsnummer eingeben")
Exit Sub
End If
End Sub
durchsuch ich die vorhandenen Arbeitsblätter ob schon ein Blatt mit dem namen aus B3 des aktuellen Blattes existiert, falls ja MSG und Abbruch wenn nein dann soll Anlegen aufgerufen werden, wenn B3 leer ist soll MSG-Box erscheinen und der Abbruch erfolgen.
Allerdings funktioniert das ganze nicht mehr (ich weiß wirklich nich mehr was ich geändert hab... :/)
Jemand ne IDee worans liegen könnte?
Viele Grüße und Danke im Vorraus
Bowl
wenn nein

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Arbeitsblätter durchsuchen funktioniert nicht
20.08.2009 12:50:50
D.Saster
Hallo,
was soll bFound? Ist immer false.
Sub Speichern_Click()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
If ws.Name = ActiveSheet.Cells(3, 2).Value Then
MsgBox ("Auftrag schon vorhanden")
Exit Sub
End If
Next ws
If Cells(3, 2) = "" Then
MsgBox ("Auftragsnummer eingeben")
Else
Call Anlegen
End If
End Sub

Gruß
Dierk
etwas logischer
20.08.2009 13:21:33
Erich
Hi Vorname,
außer zum bFound gibt es noch mehr Anmerkungen zu deinem Code.
Wenn B3 leer ist, kann man sich den kompletten Rest sparen. Also prüft man zuerst, ob B3 gefüllt ist.
Wenn ja, prüft man, ob das Blatt schon existiert, wenn nein, legt man es dann an.
So OK?

Option Explicit
Sub Speichern_Click()
Dim ws As Worksheet
With ActiveSheet
If IsEmpty(.Cells(3, 2)) Then
MsgBox ("Auftragsnummer eingeben")
ElseIf WorksheetEx(CStr(.Cells(3, 2).Value)) Then
MsgBox ("Auftrag schon vorhanden")
Else
Call Anlegen
End If
End With
End Sub     ' wie kam hier "End Function" hin?
Function WorksheetEx(strNam As String) As Boolean
On Error Resume Next
WorksheetEx = Worksheets(strNam).Index > 0
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: etwas logischer
20.08.2009 15:29:20
Bowl
Vielen Dank schonmal, klingt zumindest mal einleuchtend.
Hatte den anderen Code nur wo übernommen und hat erst funktionert, nur wusst ich nich mehr wirklich was ich geändert habe.
Testen kann ich das ganze vermutlich erst am Montag, RÜckmeldung erfolgt also erst dann
Grüße und nen schönen Nachmittag/Abend in Biergarten/See/Freibad und Co bzw. erst noch viel "Spaß" beim Schwitzn in den restlichn Arbeitsstundn

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige