Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

Anzeige
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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige