AW: anderer Ansatz
25.03.2015 14:18:26
Peter
Hallo Erich
Danke für Deine Antwort, leider funktioniert diese Variante nicht. Die eigentliche Prozedur die ich verwende ist umfangreicher und ich vermute, dass da sich was "beisst". Anbei die komplette Prozedur:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
'PaCo, Hyperlink öffen
Const strHL As String = "http://paco.bas.roche.com/paco/packagingConfiguration/show/"
If Target.Column = 9 Then
If Target.Count = 1 Then
If Target "" Then
ActiveSheet.Hyperlinks.Add Target, strHL & Target
End If
End If
End If
'Leerzeichen vor Text in Spalte E löschen
Call LeerzeichenSpalteE_entfernen
'Gitternetzlinien zeichnen
Dim rngBereich As Range, rngZeile As Range
On Error Resume Next
Set rngBereich = Intersect(Target, Range("A4:K10000")) 'Bereich der Überwacht wird, ob was _
reingeschrieben wurde
If Not rngBereich Is Nothing Then
'Spalten A bis K in geänderten Zeilen formatieren
For Each rngZeile In rngBereich.Rows
With Range(Cells(rngZeile.Row, 1), Cells(rngZeile.Row, 11)) 'Achtung die Hilfsspalte F _
ist versteckt
If Application.WorksheetFunction.CountA(rngZeile) > 0 Then
'eine der Zellen A, B oder C in der geänderten Zeile enthält einen Wert
With .Borders
.LineStyle = xlContinuous
.ColorIndex = 15
.Weight = xlThin
End With
Else
'wenn nichts im überwachten Bereich steht, dann wird folgendes ausgeführt
.Borders.LineStyle = xlNone
.ColorIndex = xlColorIndexNone
Call GitternetzlinienTitelzeilen2 'siehe Modul "Gitternezlinien"
End If
End With
Next
End If
'aktuelles Datum in Spalte A eintragen
'Das Script trägt ein Datum in Spalte A ein, egal was in eine Zelle eingetragen wird (ob Zahl _
oder Text!). Es löscht das Datum, wenn der Inhalt einer Zelle in Spalte C gelöscht wird.
'Um das von Spalte B (2) bis O (15) gültig zu machen:
If Target.Count > 1 Then Exit Sub
If Target.Column 5 Then Exit Sub '5 Spalten
Application.EnableEvents = False
If Target.Value "" Then
Cells(Target.Row, 1) = Date
Cells(Target.Row, 11) = VBA.Environ("Username") 'Windowsbenutzer Name in Spalte K, wenn _
Eintrag in Spalte B:J
Else
Cells(Target.Row, 1) = ""
Cells(Target.Row, 11) = ""
End If
Application.EnableEvents = True
'Spalte E kopieren und in Spalte F einfügen
If Target.Count > 1 Then Exit Sub
If Target.Column 5 Then Exit Sub '5 Spalten
Get_More_Speed3
Dim Cursorposition As Range
Set Cursorposition = ActiveCell
If Target.Value "" Then
Cells(Target.Row, 6) = Range("E4:E1048576").Copy
Range("F4:F1048576").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Else
Cells(Target.Row, 6) = ""
End If
Cursorposition.Parent.Select
Cursorposition.Activate
Get_More_Speed3 False
' Suchen und Hyperlink öffnen
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Range("E2"), Target) Is Nothing Then Exit Sub 'Suchfeld, Zelle für ACN-Nummer, _
hier ACN eingeben
Dim i As Integer 'Zeile mit DB-Nr.
On Error GoTo ErrorHandler
i = Application.WorksheetFunction.Match(Range("E2"), Range("C:C"), 0) 'Suchfeld, Zelle und _
Suchspalte, in dieser Spalte wird die ACN-Nummer gesucht
'On Error GoTo 0
Cells(i, 9).EntireRow.Select 'Gesamte Zeile markieren
Application.Wait (Now + TimeValue("0:00:02")) 'Wartezeit
Cells(i, 9).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 'Spalte in der die PaCo- _
Id und Link steht, 9 Spalten von Links gezählt (Spalte F ist versteckt), in diesem Fall Spalte H, Hyperlink wird geöffnet, aktiviert
Exit Sub
ErrorHandler:
MsgBox "Datensatz oder Hyperlink nicht vorhanden"
Range("E2").Select
End Sub
Vielleicht hast Du Zeit und kannst damit was anfangen.
Vielen Dank
Gruss,
Peter