Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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
Datei öffnen mit Userabfrage
morgandalf
Schönen guten Morgen allesamt,
bin seit einiger Zeit am schauen und rumbasteln, komm aber nicht weiter.
Kann mir jemand mit folgendem problem helfen:
Wie bekomme ich es hin, dass eine Excel-Datei nur von bestimmten Benutzern ohne Passwortabfrage geöffnet werden kann.
Ich hab hier folgendes gefunden:
Option Explicit
Private Sub Workbook_Open()
Select Case Environ("Username")
Case "Mayer", "Hajo_Zi"
Case Else
ThisWorkbook.Close False
End Select
End Sub

Klappt aber nicht. Die Datei geht nicht auf und ich kann auch nirgendwo den Benutzernamen eingeben. Wahrscheinlich bin ich zu blöde dazu.
Hoffe hier auf detaillierte, ausführliche Hilfe, damit ich das doch verwirklichen kann. Wie gesagt: Möglichst für absolute Dummies.
Schöne Grüße und schöne Pfingsten
Jochen

55
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
Private Sub Workbook_Open()
Select Case Environ("Username")
'***** Hier die Usernamen eintragen bei denen die Mappe geöffnet werden soll *****
Case "Mayer", "Hajo_Zi", "Jochen"
Case Else
ThisWorkbook.Close Saved = True
End Select
End Sub
Rückmenldung ob es hilft wäre nett.
Gruß aus der Domstadt Köln und frohe Pfingsttage.
AW: Datei öffnen mit Userabfrage
Jochen
Hallo Mustafa,
vielen Dank für die zügige Antwort.
Ich hab im VBA-Editor unter "Microsoft Excel Objekte " bei "DieseArbeitsmappe" den folgenden Code eingegeben:
Private Sub Workbook_Open()
Select Case Environ("Username")
Case "Mayer", "Hajo_Zi", "Jochen"
Case Else
ThisWorkbook.Close Saved = True
End Select
End Sub
Die Datei dann geschlossen, und wieder geöffnet. Das Tabellenblatt ist ganz kurz aufgetaucht und dann gleich wieder verschwunden. Ich hatte nicht die geringste Chance zum Eingeben eines Benutzernamens.
Was mach ich falsch? Oder hab ich was mißverstanden?
für weiter Hilfe wär ich sehr dankbar!
Viele Grüße
Jochen
Anzeige
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
die Mappe prüft den User namen der auf dem PC angemeldet ist.
du musst also deinen Usernamen auf dem PC in die Namensliste wo "Mayer", "Hajo_Zi", "Jochen" steht eintragen.
Da ich nicht wiess wie dein Username auf dem PC lautet hab ich einfach nur deinen Namen eingetragen gehabt.
Rückmenldung ob es hilft wäre nett.
Gruß aus der Domstadt Köln und frohe Pfingsttage.
AW: Datei öffnen mit Userabfrage
Mustafa
Wenn es doch lieber über eine Eingabe funktionieren soll dann würde es so aussehen.
Private Sub Workbook_Open()
Dim Eingabe As String
Eingabe = InputBox("Usernamen eingeben")
Select Case Eingabe
Case "Mayer", "Hajo_Zi", "Jochen"
Case Else
ThisWorkbook.Close Saved = True
End Select
End Sub
Rückmenldung ob es hilft wäre nett.
Gruß aus der Domstadt Köln und frohe Pfingsttage.
Anzeige
AW: Datei öffnen mit Userabfrage
Jochen
Hallo Mustafa,
die letzte Lösung hat funktioniert. Vielen Dank!
kann ich mich noch mit einer anderen Frage an Dich richten?
Ich möchte, daß dieser Benutzername in eine bestimmte Zelle übernommen, also dort angezeigt wird und somit auch ausgedruckt werden kann.
Fällt Dir dazu noch irgendwas ein?
Grüße aus dem tiefsten Oberbayern in die Domstadt!
Jochen
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
Private Sub Workbook_Open()
Dim Eingabe As String
Eingabe = InputBox("Usernamen eingeben")
Select Case Eingabe
Case "Mayer", "Hajo_Zi", "Jochen"
Case Else
ThisWorkbook.Close Saved = True
End Select
Worksheets("Tabelle1").Range("A1") = Eingabe ' Tabellennamen und Zelle noch anpassen
End Sub

Rückmenldung ob es hilft wäre nett.
Gruß aus der Domstadt Köln und frohe Pfingsttage.
Anzeige
AW: Datei öffnen mit Userabfrage
Jochen
Vielen Dank, Mustafa,
ein Problem ergibt das andere: Ich habe ein Tabellenblatt ausgeblendet. Auf diesem soll eine Bestellliste ausgedruckt werden.
Auf dem sichtbaren Tabellenblatt habe ich folgendes Makro in ein allgemeines Modul gepackt:

Sub Ausdruck()
Sheets("Ausdruck").Activate
keinschutz
art
Dim I!, E!, L!, s%
'e = Erste Zeile mit Formel
'l = Zeile, in der Summe steht
's = Spalte, in der die Zellen auf "" überprüft werden sollen
E = 5
L = 401
s = 2
'Leere Zeilen ausblenden
For I = E To L
If Cells(I, s).Text = "" Then Rows(I).EntireRow.Hidden = True
Next
'Drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'Zeilen einblenden
For I = E To L
If Rows(I).Hidden = True Then Rows(I).EntireRow.Hidden = False
Next
schutz
End Sub
(Sorry, wenn die Syntax wohl nicht richtig ist von wegen Konventionen bzgl. Groß und Kleinschreibung)
Es wird über einen CommandButton auf der sichtbaren Seite aufgerufen. Das ausgeblendete Blatt heißt "Ausdruck".
Wenn ich nun den CommandButton betätige, kommt folgende Fehlermeldung:
Laufzeitfehler '1004': Die Methode 'PrintOut' für das Objekt 'Sheets' ist fehlgeschlagen.
Betätige ich den CommandButton, wenn das Blatt nicht ausgeblendet ist, funktioniert alles bestens.
hast Du hierzu auch noch eine Super-Idee?
Vielen Dank nochmals
Jochen
Anzeige
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
Ohne eine Beispielmappe kann ich nur Raten.
Ich glaube das es daran liegt das du ein Ausgeblendetes Tabellenblatt versuchst auszudrucken.
ActiveWindow.SelctedSheets.PrintOut will alle Selektierten Blätter ausdrucken.
Und in der ersten Codezeile Aktivierst du mit Sheets("Ausdruck").Activate
eventuell das ausgeblendete Blatt.
Gruß aus der Domstadt Köln.
AW: Datei öffnen mit Userabfrage
Jochen
Genau daran liegt es. Aber ich möcht das Blatt ausgeblendet lassen. wie kann ich das trotzdem umgehen?
AW: Datei öffnen mit Userabfrage
Jochen
und noch eine letzte Frage an Dich,. Mustafa,
Kann ich die Schriftgröße der Input-Box (in Deinem Beispiel die Schriftgröße von "Usernamen eingeben" verändern?
Greetings
Jochen
Anzeige
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
ich wüsste nicht das das geht die Schriftgröße der Inputbox zu ändern.
Zumindest nicht mit Excelboardmitteln.
Gruß aus Köln.
AW: Datei öffnen mit Userabfrage
Jochen
Und zum - hoffentlich - allerletzten Mal, Mustafa. eine Frage:
Die möglichen Benutzer liegen in einem separaten Tabellenblatt vor. Kann ich auf diese Liste in dem Makro irgendwie Bezug nehmen, so daß ich einfach die Liste ergänze oder Namen streiche, anstatt immer in das Makro hüpfen zu müssen und dort die Namen ändere? Es sind so insgesamt 30 User, die in dieser Personalliste stehen.
Ich danke Dir für deine Geduld!
Viele Grüße
Jochen
Anzeige
AW: Datei öffnen mit Userabfrage
hary
Hallo jochen
will mal den Nachtschichtler entlasten. ;-) hab auch Nachtschicht.
Vergib im Tabellenblatt der Spalte mit den Namen einen Namen. Hier mal liste. Blende das Blatt aus.
Code in den Code der Arbeitsmappe.

Private Sub Workbook_Open()
Dim Eingabe As String
Eingabe = InputBox("Usernamen eingeben")
If WorksheetFunction.CountIf(Range("liste"), Eingabe) = 0 Then ThisWorkbook.Close Saved =  _
True
Worksheets("Tabelle1").Range("A1") = Eingabe ' Tabellennamen und Zelle noch anpassen
End Sub

gruss hary
OT Gruß zurück an den andren Nachtschichtler
Mustafa

AW: Datei öffnen mit Userabfrage
Jochen
Vielen Dank, Harry, aber sorry, klappt nicht:
Laufzeitfehler '1004': Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen.
Woher dieser Unterstrich kommt, keine Ahnung.
Woran das wohl liegen mag? Hab dem Blatt mit den Mitarbeiternamen den Namen "Namen" gegeben den code in "Diese Arbeitsmappe" eingegeben. Dann kommt obige Fehlermeldung.
Private Sub Workbook_Open()
Dim Eingabe As String
Eingabe = InputBox("Um mit der Erstellung fortzufahren, geben Sie bitte Ihren NACHNAMEN ein.  _
Beachten Sie hierbei bitte die Gross- und Kleinschreibung!!")
If WorksheetFunction.CountIf(Range("Namen"), Eingabe) = 0 Then ThisWorkbook.Close Saved = _
True
Worksheets("Ausdruck").Range("A2") = Eingabe
End Sub
Das steht jetzt da drin
Naja, vielleicht muss ich doch die Namen einzeln in den Code eingeben und bei Bedarf ändern?
Schönen Dank jedenfalls
Jochen
Anzeige
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
nicht dem Blatt den Namen Namen geben sondern über Einfügen>Namen>Definieren einen Namen vergeben, dann unten bei Bezieht sich auf: den Bereich markieren wo deine Namen drinstehen.
Gruß aus der Domstadt Köln.
AW: Datei öffnen mit Userabfrage
Jochen
Vielen Dank, Mustafa,
kaum mach ich's so, klappts auch. Ich komm mir manches Mal so blöd vor ;-)
Noch irgendeine Idee, wie man die Schrift "Usernamen eingeben" der Message Box größer machen könnte und wie ich das mit dem Ausblenden hinkriegen könnte?
Pressiert aber nicht, weil ich eh gleich Feierabend hab. Ich wünsch allen Nachtdienstlern eine angenehme ruhe und nen ebensolchen Tag!
Jochen
P.S.: Vielleicht finde ich hier ja heut nacht wieder einige Ideen und Lösungen für die restlichen Probleme? Wär super
Anzeige
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
das mit der Schriftgröße hab ich weiter oben schon beantwortet, das andere mit dem Drucken müsstest du mal eine Beispielmappe hochladen mit dem Fehler der Auftritt.
Hier kannst du die Beispielmappe hochladen: https://www.herber.de/forum/file_upload.html
Hab auch Feierabend gleich und werd auch erst heute abend wieder Nachschauen können.
Wünsche also einen erholsamen Tagschlaf ;-)
Gruß aus der Domstadt Köln.
AW: Datei öffnen mit Userabfrage
mumpel
Hallo!
Ausgeblendete Blätter können generell nicht gedruckt werden. Zum Drucken das Blatt temporär einblenden und dann wieder ausblenden. Damit niemand das Blatt sieht, schaltest Du die Bildschirmaktualisierung temporär aus. Eventuell muss zuvor die Arbeitsmappe temporär entschützt werden.
Gruß, René
Anzeige
Nachtrag/Erklärung
mumpel
Dass man ausgeblendete Blätter nicht drucken kann hat schon einen Sinn. Wenn man ein Blatt versteckt, dann möchte man ja nicht, dass andere (Mitanwender) direkten Zugriff auf dessen Inhalte haben. Könnte man ausgeblendete Blätter drucken, was hätte das Ausblenden/Verstecken dann noch für einen Sinn?
Übrigens: Das "End With" im Beispielcode ist überflüssig und muss gelöscht werden.
AW: Datei öffnen mit Userabfrage
Jochen
Hallo und schönen guten Morgen,
Ich geh mal auf den von Mustafa angegebenen Link und lad eine verkürzte Version meiner Beispielmappe hoch.
Es geht im Prinzip dadrum:
- Auf dem Blatt "Artikel eintragen" wird die Anzahl der zu bestellenden Artikel in die Spalte B eingetragen.
- Auf dem Blatt "Ausdruck" werden die Artikel samt Artikelnummer, bestellter Menge, Mengeneinheit und Artikelname aufgeführt.
- Durch Betätigen des CommandButtons auf dem Blatt "Artikel eintragen" werden die Artikel auf dem Blatt "Ausdruck" sortiert nach Artikelnummern, die leeren Zellen ausgeblendet und die gefüllten Zellen ausgedruckt.
- Das Blatt "Ausdruck" soll ausgeblendet sein. Durch den CommandButton "Ausdruck" auf dem Blatt "Artikel eintragen" soll der Blattschutz des Blattes "Ausdruck" aufgehoben werden, die Ausblendung aufgehoben werden, die Artikel nach Nummer sortiert, die leeren Zellen ausgeblendet, die gefüllten ausgedruckt, der Blattschutz wieder aktiviert und das Blatt wieder ausgeblendet werden.
Funktioniert auch alles gut, bis auf eben die Sache mit der Aufhebung der Ausblendung und dem Wiederausblenden. Was ich auch noch gerne hätte - weil es unnötig ist - ist, dass nach dem Druck Schluß ist, also kein Wiedereinblenden der leeren Zellen mehr erfolgt. Wenn ich das in dem Modul einfach rauslösche, dann funktionierts nicht mehr, wieso auch immer
Ich hoff, dass es mein Problem etwas deutlicher macht.
Wie muss ich das Modul 1 modifizieren, damit das alles so funktioniert. Der Blattschutz soll mit dem Kennwort "Test" durchgeführt werden, welches ich später wieder ändere.
Nebenbei die Frage: Wie krieg ich es hin, dass auf dem Blatt "Ausdruck" in der Spalte Artikelnummer keine "0" erscheint, wenn auf dem Blatt "Artikel eintragen" eine "angeforderte Menge" eingegeben wurde?
Jetzt bin ich mal gespannt, ob irgendjemand von Euch Licht ins Dunkel meines Geistes bringen und mich auf den rechten Weg schubsen kann.
Wie gesagt: Die Datei lad ich parallel dazu hoch (Ich hoff, dass es funktioniert).
Vielen Dank mal wieder im Voraus
Jochen
P.S.: Weiss nicht, ob man den Link zur upgeloadeten Datei sieht. Sicherheitshalber:
https://www.herber.de/bbs/user/75272.xls
AW: Datei öffnen mit Userabfrage
Jochen
Ups, jetzt is mir doch ein Vertippfehler unterlaufen. Hab Wechstaben verbuchselt.
Das Nebenbei muss natürlich lauten: .... wenn auf dem Blatt "Artikel eintragen" Keine"angeforderte Menge" eingegeben wurde.
Sorry
Gruß aus dem äußerst kalten Oberbayern (5 Grad Celsius plu)
Jochen
AW: Datei öffnen mit Userabfrage
Mustafa
So habs doch noch schnell mal hingeklatscht :-)
Entweder du blendest die 0 en über bedingte Formatierung aus, Zellwert ist = 0 Format schriftfarbe weiss.
Oder du änderst die Formel für Zeile 5 so ab :
=WENN(WENN('Artikel eintragen'!B4>0;'Artikel eintragen'!D4;"")=0;""; WENN('Artikel eintragen'!B4>0;'Artikel eintragen'!D4;""))
Rückmeldungen sind immer gern gesehen.
Gruß aus der warmen Domstadt Köln. ( 20° Plus )
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
zu deinem Druckmakro, ändere es mal so ab :

Sub Ausdruck()
With Sheets("Ausdruck")
.Visible = True
.Activate
End With
keinschutz
art
Dim I!, E!, L!, s%
'e = Erste Zeile mit Formel
'l = Zeile, in der Summe steht
's = Spalte, in der die Zellen auf "" überprüft werden sollen
E = 5
L = 401
s = 2
'Leere Zeilen ausblenden
For I = E To L
If Cells(I, s).Text = "" Then Exit For
Next
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = True
'Drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'Zeilen einblenden
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = False
schutz
With Sheets("Ausdruck")
.Visible = xlVeryHidden
End With
End Sub
Wegen der 0 in der Formel, muss ich nochmal nachschauen, kann aber etwas dauern, da ich erst noch meine Arbeit machen muss vorher.
Gruß aus dem wärmeren Köln.
AW: Datei öffnen mit Userabfrage
Jochen
Hallo Mustafa,
habs mal eingebaut. Scheint super zu klappen, und irgendwie deutlich schneller als vorher. Bin geplättet!
Ich schau später mal, ob Du nochmal was geschrieben hast bzgl. der 0.
einstweilen meinen herzlichen Dank und eine möglichst ruhige Nacht (auch im Pflegedienst)
Servus
Jochen
AW: Datei öffnen mit Userabfrage
Mustafa
So habs doch noch schnell mal hingeklatscht :-)
Entweder du blendest die 0 en über bedingte Formatierung aus, Zellwert ist = 0 Format schriftfarbe weiss.
Oder du änderst die Formel für Zeile 5 so ab :
=WENN(WENN('Artikel eintragen'!B4>0;'Artikel eintragen'!D4;"")=0;""; WENN('Artikel eintragen'!B4>0;'Artikel eintragen'!D4;""))
Es läuft darum schneller weil ich nicht alle Zellen die keinen Eintrag haben einzeln ausblende,
sondern bei der ersten leeren Zelle aus der Schleife rausspringe und dann den Rest der Tabelle bis unten durch komplett ausblende.
ansonsten muss der Code je nach Bestellung, ca 390 Zeilen einzeln ausblenden, so blednet er ca 65000 auf einen schlag aus.
Rückmeldungen sind immer gern gesehen.
Gruß aus der warmen Domstadt Köln. ( 20° Plus )
AW: Datei öffnen mit Userabfrage
Jochen
Vielen lieben Dank, Mustafa,
Alles funktioniert supergut! Ich freu mich!
Eine Kleinigkeit hab ich noch: Vor dem Schließen der Datei führ ich noch eine Sicherheitsabfrage aus, in der ich ein Passwort abfrage. Wenn das Passwort stimmt, kann der Benutzer die Datei speichern. Wenn nicht, kann er nichts speichern.
Ich hab das bisher in der Form
Private Sub Workbook_BeforeSave _
(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strText As String
strText = InputBox("Bitte Passwort eingeben!")
If strText  "Test" Then
MsgBox "Sie sind nicht befugt, Änderungen abzuspeichern" & _
vbLf & "Ihre Änderungen werden nicht gesichert!", _
vbExclamation
Cancel = True
End If
End Sub
realisiert.
Nur leider kann dabei das Passwort im Klartext gesehen werden. Mir wäre es lieber, wenn es mit Sternchen verdeckt werden würde. Aber ich denke, dass es mit einer InputBox nicht anders funktioniert.
Mit einer Userform müßte es klappen. Trotz einiger Versuche komme ich nicht dahinter, wie das klappt und wo ich die einzelnen Codes einzugeben habe.
Ich denke mit eine Userbox mit zwei Schaltflächen ("OK" und "Abbrechen"). Wenn das Passwort passt und man auf OK klickt, kommt man in den Speicherdialog. Wenn es nicht passt oder man auf Abbrechen klickt, erscheint die Meldung: Sie sind nicht befugt ....
Darf ich Dich ein letztes Mal (hoff ich zumindest) um Deine Zeit und Aufmerksamkeit für die Lösung dieses Problemes bitten? Ein möglichst detaillierte Beschreibung Was und Wohin wäre echt super.
Ich kann nicht mehr als mich immer wieder bedanken für die profunden Lösungen.
Merci und bis demnächst
Aus dem recht frischen Oberbayern (7 Grad) grüßt
Jochen
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
Erstelle statt der InputBox eine UserForm.
Darauf sollten eine TextBox und ein CommandButton sein.
Dann der Code für den CommandButton_click hier
Private Sub CommandButton1_Click()
If TextBox1.Value = "Test" Then
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
End If
UserForm1.Hide
End Sub
Und in Diese arbeitsmappe den Code für Before Save so ändern
Private Sub Workbook_BeforeSave _
(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
und bei den Eigenschaften der Textbox Kannst du eingeben welcher Charakter angezeigt werden soll unter PassWordChar einfach den Stern eingeben.
Gruß und schönen Feierabend.
AW: Datei öffnen mit Userabfrage
Jochen
Hallo und schönen guten Morgen, Mustafa,
Dein Code funktioniert - wieder einmal - sehr gut.
Eine kleine Einschränkung gibts jedoch: Die Datei kann ich per Passwort und Userform ohne Probs speichern.
Aber wenn ich kein oder ein falsches Passwort eingebe, dann hätt ich gerne, dass die Meldung "Sie sind nicht befugt, Änderungen abzuspeichern! Ihre Änderungen werden nicht gesichert!" via MsgBox in Analogie zur InputBox erscheint und ich sofort aus der Datei raushüpfe, ohne zu speichern natürlich.
Also: Passworteingabe korrekt - Speichern
Kein Passwort oder falsches Passwort - MsgBox und sofort Datei schließen ohne Speichern
Geht das noch irgendwie? Ansonsten wäre dann nämlich meine DAtei soweit, wie ich sie haben möchte.
Dir einen ruhigen Dienst einstweilen. Bis demnächst und nochmals vielen Dank!
Jochen
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
dann schreibe den Code bitte so um :
Private Sub CommandButton1_Click()
If TextBox1.Value = "Test" Then
Application.EnableEvents = False
ThisWorkbook.Save
End If
UserForm1.Hide
MsgBox("Sie sind nicht befugt, Änderungen abzuspeichern! Ihre Änderungen werden nicht gesichert! _
_
")
ThisWorkbook.Close saved=true
End Sub
Gruß aus der Domstadt Köln.
AW: Datei öffnen mit Userabfrage
Mustafa
Sorry Jochen,
da ist eine Zeile im Code verschwunden :
Private Sub CommandButton1_Click()
If TextBox1.Value = "Test" Then
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
End If
UserForm1.Hide
MsgBox("Sie sind nicht befugt, Änderungen abzuspeichern! Ihre Änderungen werden nicht gesichert! _
_
_
")
ThisWorkbook.Close saved=true
End Sub
Gruß
AW: Datei öffnen mit Userabfrage
Jochen
Dankeschön, Mustafa, für den verbesserten Code.
Leider tauchen folgende Fehler auf:
MsgBox("Sie sind nicht befugt, Änderungen abzuspeichern! Ihre Änderungen werden nicht gesichert! _
_
")
Diese Zeile erscheint komplett in Rot mit der Meldung: Syntaxfehler
Wenn ich die _Striche rausnehm, ist dieser Fehler behoben. Dafür erscheint
ThisWorkbook.Close Saved = True
die Meldung: Projekt oder Bibliothek nicht gefunden.
Kannst Dir den Code bitte nochmal ansehen, woran es hakt?
Vielen Dank wieder einmal im Voraus
Jochen
AW: Datei öffnen mit Userabfrage
Mustafa
Hallo Jochen,
den unterstrich hat die Forumssoftware gemacht, sorry:
MsgBox("Sie sind nicht befugt, Änderungen abzuspeichern! Ihre Änderungen werden nicht gesichert!")
so müsste es aussehen
aber mit der Projektbibliothek bin ich überfragt tut mir leid, bei mir hat es funktioniert.
Gruß
AW: Datei öffnen mit Userabfrage
Mustafa
Habs gefunden,
ThisWorkbook.Close SaveChanges:=False
so muss es bei XL 2003 heissen, hatte es mit Xl10 probiert sorry.
Gruß aus der Domstadt Köln.
AW: Datei öffnen mit Userabfrage
Jochen
Und wieder mal kann ich nur Danke sagen, Mustafa.
Ich werd das jetzt mal zu Hause austesten. Ich bin mir ziemlich sicher, daß das auch so funktionieren wird.
Damit wäre meine Datei soweit fertig. Nochmals für all die Super-Unterstützung meinen herzlichen Dank!
Wenn wieder mal Probleme auftauchen sollten, werd ich mich vertrauensvoll wieder an dieses Forum wenden.
Schöne Pfingstferien weiter und bis vielleicht demnächst!
Jochen
AW: Datei öffnen mit Userabfrage
Jochen
Hallo nochmal Mustafa,
ich hab den Code entsprechend geändert. Folgendes Verhalten stelle ich fest:
Die Passwortabfrage funktioniert. Der Code wird akzeptiert, kein Fehler beim Debuggen. Nur leider erscheint die Meldung "Sie sind nicht befugt, Änderungen ...." auch dann, wenn das Speichern erfolgreich war.
Wenn kein Passwort oder das falsche Passwort eingegeben wird, erscheint sie ebenfalls, was ja korrekt ist.
Wie krieg ich das hin, daß die MsgBox wirklich nur dann auftaucht, wenn das Passwort nicht oder ein falsches Passwort eingegeben wurde?
Und noch ein Problem taucht hier - zumindest unter XL2010 auf: Nach jedem Beenden der Datei, ob Speichern oder nichtSpeichern, stürzt Excel ab. Keine Ahnung, was da los ist, aber mich haut es jedesmal raus.
Steckt da doch noch ein Fehler im Code?
Liebe Grüße
Jochen
AW: Datei öffnen mit Userabfrage
Jochen
Und noch ein Problem, Mustafa:
Ich habe ja jetzt die 0 ausgeblendet, wenn keine Artikelnummer vorhanden ist. Der Nachteil jetzt: Beim Drucken werden die Zeilen, in der keine Artikelnummer steht, nicht mitgedruckt. Scheinbar wird beim Ausblenden der leeren Zeilen nur nach der 1. Spalte geschaut. Wenn die leer ist, dann wird sie ausgeblendet.
Kann ich das ändern? Wenn ja, wie?
Schöne Grüße
Jochen
AW: Datei öffnen mit Userabfrage
Jochen
Hier nochmals der genaue Code für den Ausdruck:

Sub Ausdruck()
With Sheets("Ausdruck")
.Visible = True
.Activate
End With
keinschutz
art
Dim I!, E!, L!, s%
'e = Erste Zeile mit Formel
'l = Zeile, in der Summe steht
's = Spalte, in der die Zellen auf "" überprüft werden sollen
E = 5
L = 401
s = 2
'Leere Zeilen ausblenden
For I = E To L
If Cells(I, s).Text = "" Then Exit For
Next
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = True
'Drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'Zeilen einblenden
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = False
schutz
With Sheets("Ausdruck")
.Visible = xlVeryHidden
End With
End Sub

Bin mal gespannt!
Jochen
AW: Datei öffnen mit Userabfrage
Jochen
Und noch einmal ich, lieber Mustafa:
Eine neuerliche Entdeckung:
Das Blatt "Ausdruck" kann ich manches Mal nicht mehr einblenden. Ich hab mal bisserl nachgeschaut. Das liegt an xlSheetVeryHidden. Laut Microsoft kann dann das Blatt nichtmehr eingeblendet werden. Ist ärgerlich!
Wie kann ich das ändern, damit das Blatt wieder einblendbar ist?
Grüße
Jochen
AW: msgbox fehler
hary
Hallo Jochen
Bin zwar nicht mehr auf dem laufenden, aber schau Dir mein Bsp. an. Da muss ein else zwischen.
Klick auf den Button dann kommt die Form. Teste mal mit falschem Passwort. Das richtige lautet:Test
https://www.herber.de/bbs/user/75301.xls
Statt die Userform mit hide nur auszublenden, wuerde ich unload nehmen.
gruss hary
AW: msgbox fehler
Jochen
Hallo Hary,
vielen Dank für Deinen Beitrag. Habs zwar noch nicht eingebaut, scheint aber zu funktionieren.
Was mir noch fehlt ist, dass er nach dem Speichern gleich die Datei ganz zumacht. Ne Idee?
Gruß
Jochen
AW: msgbox fehler
Jochen
Und noch die Sache mit dem Ausdruck, die klappt noch nicht so richtig.
Ich benutze folgenden Code:

Sub Ausdruck()
With Sheets("Ausdruck")
.Visible = True
.Activate
End With
keinschutz
art
Dim I!, E!, L!, s%
'e = Erste Zeile mit Formel
'l = Zeile, in der Summe steht
's = Spalte, in der die Zellen auf "" überprüft werden sollen
E = 5
L = 401
s = 2
'Leere Zeilen ausblenden
For I = E To L
If Cells(I, s).Text = "" Then Exit For
Next
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = True
'Drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'Zeilen einblenden
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = False
schutz
With Sheets("Ausdruck")
.Visible = xlHidden
End With
End Sub

Bisher lief es so, dass die leeren Zeilen entfernt wurden, die gefüllten Zeilen zusammengerutscht und dann ausgedruckt wurden. Es stand auch in jeder Zeile irgendein Zeichen.
Mittlerweile steht in der Spalte A der Tabelle, die ausgedruckt werden soll, kein Zeichen mehr (was so gewollt ist). Mein Problem: Beim Ausdruck nimmt er diese Zeilen ebenfalls als leer an und druckt sie nicht mit.
Wie kann ich das lösen?
Viele Grüße und Dankeschön schonmal
Jochen
AW: msgbox fehler
Jochen
Manchmal schreib ich aber auch nen Mist zusammen!!
Es muss heißen: Bisher lief es so..... Es stand auch in jeder SPALTE irgendein Zeichen.
Sorry
Jochen
AW: msgbox fehler
Mustafa
Hallo Jochen,
du hast ja jede menge zu beanstanden ;-)
aber wie ich sehe hat harry ja schon den Teil mit dem Speichern gelöst,
Wenn du die Mappe nach dem Speichern auch sofort schliessen willst dann schreibe nach dem Speicherbefehl :
ThisWorkbook.Close
Dann zum Thema der Ausblendung.
Es wird nur der Wert aus Spalte 2 kontrolliert.
Aber das scheint ja nicht hinzuhauen.
Dann ändere den Teil des Codes so ab :
For I = E To L
If Cells(I, s).Text = "" Then Exit For
Next
in:
For I = E To L
TextTotal = Cells(I, s).Text & Cells(I, s + 1).Text & Cells(I, s + 2).Text & Cells(I, s + 3).Text
If TextTotal = "" Then Exit For
Next
damit werden die Spalten 1, 2, 3 und 4 zusammengefasst in die Variable TextTotal und diese wird auf leer überprüft.
ach ja und die Variable s = 2 in s = 1 ändern .
Und noch das Thema des einzublendenden Blattes.
Benutze statt xlVeryHidden -- xlHidden
Meld dich wenn du noch probleme hast.
Gruß aus der Domstadt Köln.
AW: msgbox fehler
Jochen
Hallo Mustafa,
ich hoff, ich bin nicht allzu lästig.
Aber manches mal zieht eine Lösung ein neues Problem nach sich.
Zum Thema "Ausblendung":
Ich hab den Code entsprechend geändert. Beim Debuggen sagt er mir einmal mehr: "Fehler beim Kompilieren Projekt oder Bibliothek nicht gefunden.
Hier der aktuelle code für den Ausdruck:
Sub Ausdruck()
With Sheets("Ausdruck")
.Visible = True
.Activate
End With
keinschutz
art
Dim I!, E!, L!, s%
'e = Erste Zeile mit Formel
'l = Zeile, in der Summe steht
's = Spalte, in der die Zellen auf "" überprüft werden sollen
E = 5
L = 401
s = 1
'Leere Zeilen ausblenden
For I = E To L
TextTotal = Cells(I, s).Text & Cells(I, s + 1).Text & Cells(I, s + 2).Text & Cells(I, s + 3).Text
If TextTotal = "" Then Exit For
Next
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = True
'Drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'Zeilen einblenden
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = False
schutz
With Sheets("Ausdruck")
.Visible = xlHidden
End With
End Sub
Kommt mir irgendwie bekannt vor, diese Fehlermeldung. Gibts da ne Lösung? Ich benutz hier in der Arbeit XL2003, vielleicht liegts wieder dadran.
Zum Thema "Einzublendendes Blatt":
Das klappt einwandfrei
zum Thema "Schließen nach Speichern": Ich geb Dir mal den Code, so wie ich ihn jetzt drin stehen hab, hier an:
Private Sub CommandButton1_Click()
If TextBox1.Value = "2wurzelbrunft1" Then
Application.EnableEvents = False
ThisWorkbook.Save
ThisWorkbook.Close
Else
Application.EnableEvents = True
End If
Unload UserForm1
MsgBox ("Sie sind nicht befugt, Änderungen abzuspeichern! Ihre Änderungen werden nicht  _
gesichert!")
ThisWorkbook.Close SaveChanges:=False
End Sub

Private Sub UserForm_Click()
End Sub

So stehts jetzt drinnen bei mir.
Das Speichern klappt, die Datei geht zu. Bei falschem oder keinem Passwort geht die Datei ebenfalls zu, ohne zu Speichern.
Interessantes Phänomen dabei: Wenn ich die Datei wieder öffne, ohne Excel verlassen zu haben, dann scheinen alle Makros irgendwie deaktiviert: Ich brauch beim Anmelden mit Nachnamen nichts eingeben, und auch das Speichern klappt ohne Userform.
Sehr oft fliege ich aber völlig raus aus Excel. Dann startet es neu, und ich kann die Makros wieder verwenden.
Hast Du irgend eine Idee?
Wäre super!
Einstweilen nen schönen Gruß
Jochen
AW: msgbox fehler
Mustafa
Hallo Jochen,
du musst das Application.EnabelEvents = True vor das ThisWorkbook.Close eintragen.
Mit Application.EnabelEvents = Flase schaltest du alle Makroaktivitäten aus, infolgedessen wird dann die Mappe wohl nicht mit aktiven Makros geöffnet.
wenn das auch nicht hilft, dann versuch mal das Application.EnabelEvents = False löschen und dann mal abspeichern, das hatte ich eigentlich reingemacht um das BeforeSafe Makro nicht wieder anlaufen zu lassen wenn die Mappe gespeichert wird.
Kann sein das es durch die Makro Speicherung gar nicht erst aktiviert wird, dann wäre das eh nicht von nöten.
zu xlHidden,
versuch mal xlSheetHidden
Gruß aus Köln.
PS: Jetzt musst du dir ein neues Passwort ausdenken ;-) 

AW: msgbox fehler
Jochen
Hallo Mustafa,
nur keine Angst um mein Passwort. Das is uralt und ich nehms nur noch zwecks Spielereien oder Testen her. "Test" ist mir zu fad.
Ok, das mit den Makros klappt jetzt, die sind auch weiter aktiv, wenn ich excel nicht verlasse.
Scheinbar flieg ich auch nicht ständig raus. Ich werd noch einige Male versuchen
Hast Du ne Idee bezüglich dem "Projekt oder Bibliothek nicht gefunden"?
Mensch, bin ich heut wieder ein Drängler ;-) Sorry dafür.
Schöne Grüße aus dem frühherbstlichen Oberbayern
Jochen
AW: msgbox fehler
Mustafa
In welcher Zeile bleibt er denn mit diesem Fehler stehen ?
Gruß aus dem schwül-warmen NRW
AW: msgbox fehler
Jochen
Ich schick nochmal den ganzen code:

Sub Ausdruck()
With Sheets("Ausdruck")
.Visible = True
.Activate
End With
keinschutz
art
Dim I!, E!, L!, s%
'e = Erste Zeile mit Formel
'l = Zeile, in der Summe steht
's = Spalte, in der die Zellen auf "" überprüft werden sollen
E = 5
L = 401
s = 1
'Leere Zeilen ausblenden
For I = E To L
TextTotal = Cells(I, s).Text & Cells(I, s + 1).Text & Cells(I, s + 2).Text & Cells(I, s + 3) _
.Text
If TextTotal = "" Then Exit For
Next
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = True
'Drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'Zeilen einblenden
Range(Cells(I, s), Cells(Rows.Count, s)).EntireRow.Hidden = False
schutz
With Sheets("Ausdruck")
.Visible = xlSheetHidden
End With
End Sub

Er hängt bei
TextTotal =
also genau bei der Zeile, die du mir als Änderungsvorschlag bzgl. dem Ausdruck und dem Ausblenden der leeren Zeilen geschickt hast.
Dies moniert er mit der Fehlermeldung: "Fehler bei der Kompilierung Projekt oder Bibliothek nicht gefunden". Er kennt TextTotal= scheinbar nicht.
NB: Den Unterstrich baut wieder mal das Forumprogramm rein, der steht im Code nicht drinnen, auch das Leerzeichen nicht!
Weiterhin fliege ich sehr oft ganz raus aus Excel, wenn ich speichere mit Passwort oder auch wenn ich nicht speichere.
Vielleicht geh ich doch wieder auf die InputBox zurück, das lief ohne Probleme.
Gruß
Jochen
AW: msgbox fehler
Mustafa
hmmmm, kann auch an der nichtdeklarierten Variable liegen, versuch mal in der ersten Programmzeile dies
Dim TextTotal String
Warum er dich aus Excel rausschmeisst weis ich jetzt wirklich nicht.
Hast du denn auch den Vorschlag mit dem UserForm1.Unload statt UserForm1.Hide angewandt ?
AW: msgbox fehler
Jochen
UserForm1.Unload sagt er: Methode oder DAtenobjekt nicht gefunden.
Wenn ich unter Sub Ausdruck() Dim TextTotal String eingebe, markiert er mir das sofort rot.
Scheinbar keine Lösungen in Sicht.
Naja, ich wart mal ein bisserl, vielleicht kommt Dir ja noch ne Idee.
Gruß
Jochen
AW: msgbox fehler
Mustafa
Dim TextTotal As String
Nicht
Dim TextTotal String
ansonsten mal den Variablennamen ändern in zB strText was auch eindeutiger ist bei einer Deklaration.
str = String Variable
AW: msgbox fehler
Jochen
Hm, klappt nicht.
Ich geh wohl wieder zur InputBox zurück, da klappts 100-pro.
Es sei .... :))
Wie auch immer!
Schöne, etwas frustrierte Grüße
Jochen
AW: msgbox fehler
Jochen
Hallo Mustafa,
Das mit der Ausblendung hab ich jetzt über bedingte Formatierung mit der Textfarbe Weiss realisiert.
Klappt gut.
Und ich bin wieder zurückgegangen auf die - problemlos laufende - Inputbox.
Falls Du doch noch eine Idee hast - sie ist jederzeit willkommen.
Viele Grüße
Jochen
AW: msgbox fehler
hary
Hallo ihr Nachtschwaermer
Falls Du doch noch eine Idee hast - sie ist jederzeit willkommen.

1. Ja, hab ich! Wie waer's mit einer Bsp.-Mappe ? Wenn diese nicht zu gross ist.
2. Dieser Thread wandert bald ins Archiv, evtl. mal einen neuen Thread starten mit einem Link auf diesen. Ist sowieso schon so lang.
gruss hary

258 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige