Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Codes zusammenlegen
#11
Hallo nochmal,

jetzt habe ich das Problem das man bei den spalten F,G,H,I keine Uhrzeit mehr eingeben kann ! :s

Das liegt an dem Target UCase ! Dodgy

Gibt es eine Möglichkeit F,G,H,I auszuklinken ?
Antworten Top
#12
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Count = 1 Then
         If Target.Row > 3 And Target.Column > 4 And Target.Column < 9 Then
           Application.EnableEvents = False
           If Not IsNumeric(Target) Then Target = UCase(Target)
           If Target.Column = 5 Then Target.Offset(, -1) = IIf(IsEmpty(Target), "", Date)
        End If
   End If
   Application.EnableEvents = True
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • mazor78
Antworten Top
#13
Unsprungscode war dieser hier !

Bei diesem code kann ich keine Zeitwerte 00:00  in die Zellen F,G,H,I einfügen.




Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    Application.EnableEvents = False
    If Not Intersect(Target, Range("E4:E1048576")) Is Nothing Then
       If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
           If Target = "" Then
               Target.Offset(0, -1) = ""
           Else
               Target.Offset(0, -1) = Now
           End If
       End If
    End If
    If Not Intersect(Target, Range("B4:J1048576")) Is Nothing Then
        If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
            If Not IsEmpty(Target) Then
                Target = UCase(Target)
            End If
        End If
    End If
    Application.EnableEvents = True
    On Error GoTo 0
End Sub
Antworten Top
#14
Hallo,

statt Spalten auszuschließen, kannst Du auch abfragen ob eine Zahl eingegeben wurde:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
   Application.EnableEvents = False
   If Not Intersect(Target, Range("E4:E1048576")) Is Nothing Then
      If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
          If Target = "" Then
              Target.Offset(0, -1) = ""
          Else
              Target.Offset(0, -1) = Now
          End If
      End If
   End If
   If Not Intersect(Target, Range("B4:J1048576")) Is Nothing Then
       If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
           If Not IsEmpty(Target) Then
               If Not IsNumeric(Target) Then Target = UCase(Target)
           End If
       End If
   End If
   Application.EnableEvents = True
   On Error GoTo 0
End Sub



oder Du benennst die Bereiche richtig:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
   Application.EnableEvents = False
   If Not Intersect(Target, Range("E4:E1048576")) Is Nothing Then
      If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
          If Target = "" Then
              Target.Offset(0, -1) = ""
          Else
              Target.Offset(0, -1) = Now
          End If
      End If
   End If
   If Not Intersect(Target, Union(Range("B4:E1048576"), Range("J4:J1048576"))) Is Nothing Then
       If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
           If Not IsEmpty(Target) Then
                Target = UCase(Target)
           End If
       End If
   End If
   Application.EnableEvents = True
   On Error GoTo 0
End Sub





trotzdem hier, wie man Spalten aus den benannten Bereichen ausschließen kann:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
   Application.EnableEvents = False
   If Not Intersect(Target, Range("E4:E1048576")) Is Nothing Then
      If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
          If Target = "" Then
              Target.Offset(0, -1) = ""
          Else
              Target.Offset(0, -1) = Now
          End If
      End If
   End If
   If Not Intersect(Target, Range("B4:J1048576")) Is Nothing Then
     Select Case Target.Column
       Case Is <> 6, 7, 8, 9
       If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
           If Not IsEmpty(Target) Then
               If Not IsNumeric(Target) Then Target = UCase(Target)
           End If
       End If
     End Select
   End If
   Application.EnableEvents = True
   On Error GoTo 0
End Sub
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • mazor78
Antworten Top
#15
@Att

Schon meinen Beitrag beobachtet ?
Antworten Top
#16
Hallo snb,

ja.

Aber dat will er nich. Blush
Ich hatte vorher auch einen zusammengefassten Code gepostet, welchen er auch ignoriert.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • mazor78
Antworten Top
#17
Ne Ne,

Ich habe gar nix ignoriert ! Angel

Ich habe es über If Not IsNumeric(Target) Then umgeschrieben





Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    Application.EnableEvents = False
    If Not Intersect(Target, Range("E4:E1048576")) Is Nothing Then
       If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
           If Target = "" Then
               Target.Offset(0, -1) = ""
           Else
               Target.Offset(0, -1) = Now
           End If
       End If
    End If
    If Not Intersect(Target, Range("B4:J1048576")) Is Nothing Then
        If Target.Count = 1 Then  'Bearbeiten mehrerer Zeilen wird abgefangen
            If Not IsNumeric(Target) Then
                Target = UCase(Target)
            End If
        End If
    End If
    Application.EnableEvents = True
    On Error GoTo 0
End Sub
Antworten Top
#18
Du hast die einfachste Lösung ingnoriert:

http://www.clever-excel-forum.de/thread-...l#pid67755
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste