Spaltenweise Zellen auf Zeichen beschränken
02.07.2014 08:29:04
Hans Huerbel
Guten Morgen.
Hatte vor einiger Zeit schon einmal das Thema aufgegriffen. Wurde folgendermaßen gelöst.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngRange As Range
Dim blnTMP As Boolean
On Error GoTo Fin
Application.EnableEvents = False
If Not Intersect(Target, Range("L:L, N:N, P:P, AH:AH")) Is Nothing Then
Select Case Target.Column
Case 12, 14
For Each rngRange In Target
If Len(rngRange.Value) > 30 Then
rngRange.Value = Left(rngRange.Value, 30)
blnTMP = True
End If
Next rngRange
If blnTMP = True Then MsgBox "Text in " & Target.Address(0, 0) & _
" darf nur 30 Zeichen lang sein!"
Case 16
For Each rngRange In Target
If Len(rngRange.Value) > 12 Then
rngRange.Value = Left(rngRange.Value, 12)
blnTMP = True
End If
Next rngRange
If blnTMP = True Then MsgBox "Text in " & Target.Address(0, 0) & _
" darf nur 12 Zeichen lang sein!"
Case 34
For Each rngRange In Target
If Len(rngRange.Value) > 7 Then
rngRange.Value = Left(rngRange.Value, 7)
blnTMP = True
End If
Next rngRange
If blnTMP = True Then MsgBox "Text in " & Target.Address(0, 0) & _
" darf nur 7 Zeichen lang sein!"
End Select
End If
Fin:
Application.EnableEvents = True
End Sub
Nun zu meiner Frage.In dem Code überwache ich Spaltenweiße. Jedoch habe ich im oberen Bereich einen Kopf den ich nicht Zeichen beschrenken will. Somit würde ich gerne z.B. erst ab N22 bis evtl. N123 beschränken. Kann mir einer sagen wie ich das realisieren kann?
Ein weiteres Problem ist das wenn ich Zelleinträge kopiere. Wenn ich z.B. Zellen P30 bis W30 markieren und kopiere und hierbei ist die Spalte P auf 12 Zeichen beschränkt, dann kürzt mir mein Makro alle Zelleinträge auf diese 12 Zeichen obwohl ich in anderen mehr Zeichen zulassen will.
Vielen Dank schon mal im voraus!
LG Hans