Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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
Inhaltsverzeichnis

Excelliste VBA Anforderung speichert nicht

Excelliste VBA Anforderung speichert nicht
08.07.2014 10:24:03
Kazo

Hallo liebe Leute, ich habe mit meiner Redaktionsliste ein kleines Problem! und zwar nach dem ausfüllen der Anforderung wird per button eine email an die bearbeiter verschickt! jedoch speichert die Redaktionsliste die eingabe nicht und verschickt das Formular bzw die Anforderung ohne einen Eintrag. Kann mir da jemand evtl auf die Sprünge helfen da ich kaum Kentnisse in VBA habe. Ich bedanke mich recht herzlich!
So sieht der VBA-Code aus:

Private Sub Workbook_Close()
'Blattschutz beim Schließen des Dokuments aktivieren
blattschutz_aktivieren
End Sub
Private Sub Workbook_Open()
'Windows Benutzername auslesen
Dim Benutzername As String
Benutzername = Environ("Username")
Dim admin As Boolean
admin = False
Dim eingeschränkt As Boolean
eingeschränkt = False
Dim Wiederholungen As Integer
'Überprüfen, ob in der Liste "Admin-Benutzer" auf dem Blatt "Hilfstabelle" der Benutzer  _
enthalten ist, der geerade das Blatt geöffnet hat
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
If Sheets("Hilfstabelle").Cells(Wiederholungen, 2) = Benutzername Then
admin = True
End If
Next
'Überprüfen, ob in der Liste "Admin-Benutzer" auf dem Blatt "Hilfstabelle" der Benutzer  _
enthalten ist, der geerade das Blatt geöffnet hat
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
If Sheets("Hilfstabelle").Cells(Wiederholungen, 3) = Benutzername Then
eingeschränkt = True
End If
Next
'Wenn Benutzername in der Spalte "Admin-User" der Hilfstabelle enthalten, Blattschutz von   _
_
Hilfstabelle und Anforderungen  aufheben und Hilfstabelle sichtbar machen
If admin = True Then
Sheets("Anforderungen").Unprotect Password:="test"
Sheets("Hilfstabelle").Unprotect Password:="test"
Sheets("Hilfstabelle").Visible = True
'Wenn Benutzername in der Spalte "Anforderungen bearbeitbar" der Hilfstabelle enthalten,  _
Anforderungen zum bearbeiten freigeben
ElseIf eingeschränkt = True Then
blattschutz_aktivieren
Sheets("Anforderungen").Unprotect Password:="test"
Else
'Blattschutz beim Öffnen des Dokuments aktivieren
blattschutz_aktivieren
End If
End Sub

'Blattschutz des Dokuments aktivieren

Private Sub blattschutz_aktivieren()
Sheets("Anforderungen").Protect userinterfaceonly:=True, Password:="test"
Sheets("Anforderungen").EnableAutoFilter = True
'Blatt Hilfstabelle verbergen
Sheets("Hilfstabelle").Unprotect Password:="test"
Sheets("Hilfstabelle").Visible = xlVeryHidden
Sheets("Hilfstabelle").Protect Password:="test"
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelliste VBA Anforderung speichert nicht
08.07.2014 10:39:24
fcs
Hallo Kazo,
der gepostete Code ist für den E-Mail-Versand der Datei nicht relevant.
Hier müsstets du den Code posten, der mit dem Button verknüpft ist.
Möglicherweise fehlt dort eine Anweisung zum speichern der Datei bevor sie versendet wird.
Gruß
Franz

AW: Excelliste VBA Anforderung speichert nicht
08.07.2014 10:48:19
Kazo
Hallo Franz, da ich mich nicht so auskenne habe ich anscheinend etwas falsches gepostet sorry! dann ist wohl dieser code der richtige!
Sub Userform_oeffnen()
Sheets("Anforderungen").Unprotect Password:="test"
ActiveSheet.Shapes("Button 21").Select
Selection.Characters.text = "Neue Anforderung erstellen"
With Selection.Characters(Start:=1, Length:=15).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
'.TintAndShade = 0
'.ThemeFont = xlThemeFontNone
End With
Range("D1").Select
Sheets("Anforderungen").Protect Password:="test"
Anforderung_erstellen.Show
End Sub

Anzeige
AW: Excelliste VBA Anforderung speichert nicht
08.07.2014 10:52:20
Kazo
Müsste wohl eher der hier sein:
Private Sub Abbrechen_Click()
UserformSchließen
End Sub

Private Sub Anforderung_erstellen_Button_Click()
'Prüfen, ob alle elevanten Daten eingegeben wurden
If Benutzername.text = "" Or Abteilung.text = "" Or Bezeichnung.text = "" Or Beschreibung. _
text = "" Or Fehlerattribut.Value = "" Or (Fehlerattribut.Value = "Fehlerort konstruktiv" And Sachnummer = "") Then
MsgBox ("Sie haben nicht alle Felder ausgefüllt!")
'Überprüfen, ob das Feld Sachnummer korrekt ausgefüllt ist
ElseIf (Fehlerattribut.Value = "Fehlerort konstruktiv") And (Sachnummer.TextLength <> 7 Or  _
IsNumeric(Sachnummer.text) = False) Then
MsgBox ("Sie haben das Feld 'Sachnummer' nicht korrekt ausgefüllt. Es muss eine 7- _
stellige Zahl eingegeben werden!")
Else
'Blattschutz aufheben
Sheets("Anforderungen").Unprotect Password:="test"
'Neue Zeile in Zeile 6 einfügen und den Rest nac unten verschieben
Sheets("Anforderungen").Rows(6).Insert Shift:=xlDown, CopyOrigin:= _
xlFormatFromRightOrBelow
'Daten in die Liste schreiben
Sheets("Anforderungen").Cells(6, 1) = Date
Sheets("Anforderungen").Cells(6, 2) = Format(Benutzername.text)
Sheets("Anforderungen").Cells(6, 3) = Format(Abteilung.text)
Sheets("Anforderungen").Cells(6, 4) = Format(Fehlerattribut.text)
Sheets("Anforderungen").Cells(6, 5) = Format(Sachnummer.text)
Sheets("Anforderungen").Cells(6, 6) = Format(Bezeichnung.text)
Sheets("Anforderungen").Cells(6, 7) = Format(Beschreibung.text)
Sheets("Anforderungen").Cells(6, 8) = "angefordert"
mail
UserformSchließen
End If
End Sub

Private Sub Fehlerattribut_Change()
'Wenn als Fehlerattribut FO K, dann das Feld Sachnummer aktivieren
If Fehlerattribut.Value = "Fehlerort konstruktiv" Then
Sachnummer.Enabled = True
Sachnummer.BackColor = &H80000005
'Wenn ein anderes Fehlerattribut gewählt ist, Feld Sachnummer deaktivieren
Else
Sachnummer.BackColor = &H80000003
Sachnummer.text = ""
Sachnummer.Enabled = False
End If
End Sub

Private Sub UserForm_Initialize()
'Variable deklarieren
Dim Wiederholungen As Integer
'Schleife zum Füllen der Dropdown-Liste "Fehlerattribute" mit den Daten aus Blatt " _
Hilfstabelle"
'Spalte A ab Zeile 2 bis zur letzten gefüllten Zeile
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
Fehlerattribut.AddItem Sheets("Hilfstabelle").Cells(Wiederholungen, 1)
Next
End Sub
Private Sub UserformSchließen()
'Windows Benutzername auslesen
Dim Benutzername As String
Benutzername = Environ("Username")
Dim Wiederholungen As Integer
Dim admin As Boolean
admin = False
Dim eingeschränkt As Boolean
eingeschränkt = False
'Überprüfen, ob in der Liste "Admin-Benutzer" auf dem Blatt "Hilfstabelle" der Benutzer  _
enthalten ist, der geerade das Blatt geöffnet hat
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
If Sheets("Hilfstabelle").Cells(Wiederholungen, 2) = Benutzername Then
admin = True
End If
Next
'Überprüfen, ob in der Liste "Admin-Benutzer" auf dem Blatt "Hilfstabelle" der Benutzer  _
enthalten ist, der geerade das Blatt geöffnet hat
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
If Sheets("Hilfstabelle").Cells(Wiederholungen, 3) = Benutzername Then
eingeschränkt = True
End If
Next
'Wenn Benutzername in Hilfstabelle enthalten, Blattschutz aufheben
If admin = True Then
Sheets("Anforderungen").Unprotect Password:="test"
Sheets("Hilfstabelle").Unprotect Password:="test"
Sheets("Hilfstabelle").Visible = True
'Wenn Benutzername in der Spalte "Anforderungen bearbeitbar" der Hilfstabelle enthalten,  _
Anforderungen zum bearbeiten freigeben
ElseIf eingeschränkt = True Then
Sheets("Anforderungen").Unprotect Password:="test"
Else
'Blattschutz wieder aktivieren
Sheets("Anforderungen").Protect userinterfaceonly:=True, Password:="test"
Sheets("Anforderungen").EnableAutoFilter = True
End If
'Userform schließen
Unload Me
End Sub
'Sub zum Versenden der EMail wenn ein neuer Eintrag erstellt wurde
Sub mail()
Dim empfänger As String
'Empfänger aus der Hilfstabelle auslesen
empfänger = ""
For Wiederholungen = 2 To Sheets("Hilfstabelle").Range("A65536").End(xlUp).Row
If empfänger = "" Then
empfänger = Sheets("Hilfstabelle").Cells(Wiederholungen, 4)
ElseIf Sheets("Hilfstabelle").Cells(Wiederholungen, 4) <> "" Then
empfänger = empfänger & "; " & Sheets("Hilfstabelle").Cells(Wiederholungen, 4)
End If
Next
Dim inhalt As String
inhalt = "Link zur Redaktionsliste: file:\\" & ThisWorkbook.Path & "\" & ThisWorkbook.Name
'EMail Versenden
Set olApplication = CreateObject("Outlook.Application")
Set objEmail = olApplication.CreateItem(olMailItem)
Application.Wait Now + TimeSerial(0, 0, 5)
With objEmail
'Empfänger einfügen
.To = empfänger
'Betreff schreiben
.Subject = "Neue Anforderung in der Redaktionsliste"
'Inhalt schreiben (Link zur Liste)
.Body = inhalt
.Display
End With
SendKeys "%s", True
SendKeys "^{Enter}", True
Set objEmail = Nothing
End Sub

Anzeige
AW: Excelliste VBA Anforderung speichert nicht
08.07.2014 12:00:49
fcs
Hallo Kazo,
mit der Mail wird ja "nur" ein Link auf die Datei verschickt. Solange die Datei nicht gespeichert ist zeigt der Link den alten Stand der Datei an. Erst wenn die Datei gespeichert wird, dann wird auch die neue Anforderung via Link angezeigt.
ggf. solltest du die Datei vor dem Schließen des Userforms zusätzlich speichern.
Private Sub UserformSchließen()
'Userform schließen
ThisWorkbook.Save
Unload Me
End Sub

Gruß
Franz

AW: Excelliste VBA Anforderung speichert nicht
08.07.2014 12:33:09
Kazo
Vielen lieben Dank Franz! Die Redaktionsliste funktioniert nun wie sie es tun soll! wünsche dir noch einen angenehmen Tag...
Vg Kazo

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige