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

VBA Code - ein paar Fragen

Forumthread: VBA Code - ein paar Fragen

VBA Code - ein paar Fragen
08.09.2007 10:26:57
marcus

Guten Morgen,
ich habe mir mittlerweilen einen VBA Code zusammengebastelt - funktioniert soweit auch ganz gut.
Nur habe ich jetzt noch ein paar Kleinigkeiten die noch reingebastelt werden müssen und ich schaffs selbst nicht. :-)
Hier mal der Code:


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'Blattschutz aufheben'
ActiveSheet.Unprotect "test"
'Wenn Spalte E gefüllt - dann Username in Spalte H'
If (Target.Column = "5" And Target.Row > "4" And Target.Row < "64") Then
Range("H" & Target.Row) = Application.UserName
End If
'Wenn Spalte F gefüllt - dann Datum/Uhrzeit in Spalte G und'
'Spalte B:H grau hinterlegt'
If (Target.Column = "6" And Target.Row > "4" And Target.Row < "64") Then
Range("G" & Target.Row) = Now()
Range("B" & Target.Row & ":" & "H" & Target.Row).Interior.ColorIndex = 15
End If
Application.EnableEvents = True
'Blattschutz aktivieren'
ActiveSheet.Protect "test"
End Sub


So nun zu den Fragen:
1)Ich hätte jetzt gerne in der Passage, wo Excel mir das Datum reinsetzt und die Zeile grau färbt, eine Kriteriumabfrage. Also er soll mir das ganze nur machen, wenn in der Zelle der Text mit "<" oder ">" beginnt. Wie muss ich das umschreiben?
2)Kann man irgendwie das Passwort für den Blattschutz unsichtbar machen oder den Editor sperren? So könnte man das Passwort ja leicht auslesen.
3)Geht es evtl. auch das Excel mir automatisch eine Email per Outlook schickt, wenn die Datei verändert und geschlossen wurde?
Vielen Dank schon im Voraus.
Grüße
Marcus

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code - zu 1 und 2
08.09.2007 10:39:34
Hajo_Zi
Hallo Marcus,
zu 1


Option Explicit
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'Blattschutz aufheben'
ActiveSheet.Unprotect "test"
'Wenn Spalte E gefüllt - dann Username in Spalte H'
If (Target.Column = "5" And Target.Row > "4" And Target.Row < "64") Then
Range("H" & Target.Row) = Application.UserName
End If
'Wenn Spalte F gefüllt - dann Datum/Uhrzeit in Spalte G und'
'Spalte B:H grau hinterlegt'
If (Target.Column = "6" And Target.Row > "4" And Target.Row < "64") And _
(Left(Target, 1) = "<" Or Left(Target, 1) = ">") Then
Range("G" & Target.Row) = Now()
Range("B" & Target.Row & ":" & "H" & Target.Row).Interior.ColorIndex = 15
End If
Application.EnableEvents = True
'Blattschutz aktivieren'
ActiveSheet.Protect "test"
End Sub


ohne Testung
zu 2 im VBA Editor auf die Datei gehen, rechte Maustaste, Eigenschaften. Password nicht vergessen. Datei schließen und öffnen.

Anzeige
AW: VBA Code - zu 1 und 2
08.09.2007 10:48:03
marcus
Wow.. das ging ja flott und 1u. 2 funktioniert nun bestens.
Vielen vielen Dank
Grüße
Marcus
P.S. vielleicht kann mir jemand noch die 3. Frage beantworten :-)

AW: VBA Code - zu 1 und 2
08.09.2007 11:00:20
marcus
Problem zu 1 @ Hajo
Wenn ich nun die Zeile markiere und ich lösche die Werte kommt Laufzeitfehler '13' Typen unverträglich. Einzeln löschen geht. Wie kann ich die Zeile wieder komplett löschen ohne Fehlermeldung?
Gruss
Marcus

Anzeige
AW: VBA Code - zu 1 und 2
08.09.2007 11:05:10
Hajo_Zi
Hallo marcus,
als erste Zeile im Code
If Target.Count>1 Then Exit Sub
Gruß Hajo

AW: VBA Code - zu 1 und 2
08.09.2007 12:17:10
marcus
Hallo Hajo,
vielen Dank für die schnelle und kompetente Hilfe.
Funktioniert wunderbar.
Schönes Wochenende
Marcus

Anzeige
AW: VBA Code - zu 1 und 2
08.09.2007 13:23:27
Gerd L
Hallo Marcus,
schreibe bitte noch im(in) dem(n) anderen Foren, dass, besser noch welche, Problemlösung
vorliegt.
Gruß Gerd

AW: VBA Code - zu 1 und 2
10.09.2007 08:06:12
marcus
1) geloest:


Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
'Blattschutz aufheben'
ActiveSheet.Unprotect "test"
'Wenn Spalte E gefüllt - dann Username in Spalte H'
If (Target.Column = "5" And Target.Row > "4" And Target.Row < "64") Then
Range("H" & Target.Row) = Application.UserName
End If
'Wenn Spalte F mit < oder > gefüllt - dann Datum/Uhrzeit in Spalte G und'
'Spalte B:H grau hinterlegt'
If (Target.Column = "6" And Target.Row > "4" And Target.Row < "64") And _
(Left(Target, 1) = "<" Or Left(Target, 1) = ">") Then
Range("G" & Target.Row) = Now()
Range("B" & Target.Row & ":" & "H" & Target.Row).Interior.ColorIndex = 15
End If
Application.EnableEvents = True
'Blattschutz aktivieren'
ActiveSheet.Protect "test"
End Sub


2) geloest
Script-Editor -> Eigenschaften
3) geloest


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "m.ermann@sanacorp.de;g.klingberg@sanacorp.de"
.Subject = "Änderungen in der Überweiserdatei " & Date & " " & Time
.Body = "Hallo Zusammen," & vbCrLf _
& vbCrLf & "es gibt Neuigkeiten in der Überweiserdatei." & vbCrLf _
& vbCrLf & "Bitte schnellstmöglich bestellen." & vbCrLf & vbCrLf _
& "Mit freundlichen Grüßen" & vbCrLf & Application.UserName
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
On Error GoTo Fehler
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub


Nochmals vielen Dank

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige