Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
352to356
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
352to356
352to356
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingabe erzwingen

Eingabe erzwingen
17.12.2003 09:28:51
Georg
Hallo,

habe das Makro hier aus dem Forum. Was muss ich ändern, wenn der Eingabebereich nicht nur C11, sondern C11-C35 ist.
Bei einem Eintrag in einer Zeile im Bereich C11-C35 soll in der jeweiligen Zeile in der Spalte E (E11-E35) eine Eingabe erzwungen werden.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [C11] = "" Then Exit Sub
If [e11] = "" Or Len([e11]) <> 6 Or IsNumeric([e11]) = False Then
[e11].Select
End If
End Sub


Vielen Dank und Grüße
Georg

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe erzwingen
17.12.2003 09:34:38
JusufG
Hallo,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rTest As Range
Dim rTest2 As Range
Set rTest = [c11:c35]
Set rTest2 = [e11:e35]
If rTest = "" Then Exit Sub
If rTest2 = "" Or Len(rTest2) <> 6 Or IsNumeric(rTest2) = False Then
[rTest2].Select
End If
End Sub


Nicht getestet, vielleicht läufts ja.
AW: Eingabe erzwingen
17.12.2003 09:42:33
Georg
Hi,
vielen Dank.
Ich erhalte leider die Fehlermeldung "Typen unverträglich". Wo dran kann das liegen?

Grüße
Georg
AW: Eingabe erzwingen
17.12.2003 09:56:04
Boris
Hi Georg,

so in dieser Art - der Code gehört in das Modul der entsprechenden Tabelle:

Option Explicit
Public oldAddr As String


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("C11:C35")) Is Nothing Then
If Target <> "" And Target.Offset(0, 1) = "" Then
oldAddr = Target.Offset(0, 2).Address
Target.Offset(0, 2).Select
End If
ElseIf Not Intersect(Target, Range("E11:E35")) Is Nothing Then
If Target <> "" Then
oldAddr = ""
End If
End If
End Sub



Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If oldAddr <> "" Then Range(oldAddr).Select
End Sub


Grüße Boris
Anzeige
Sorry - kleiner Fehler:
17.12.2003 09:57:45
Boris
Einmal mit Offset vertan - so is richtig:

Option Explicit
Public oldAddr As String


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("C11:C35")) Is Nothing Then
If Target <> "" And Target.Offset(0, 2) = "" Then
oldAddr = Target.Offset(0, 2).Address
Target.Offset(0, 2).Select
End If
ElseIf Not Intersect(Target, Range("E11:E35")) Is Nothing Then
If Target <> "" Then
oldAddr = ""
End If
End If
End Sub



Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If oldAddr <> "" Then Range(oldAddr).Select
End Sub


Grüße Boris
Anzeige
AW: Sorry - kleiner Fehler:
17.12.2003 10:02:57
Georg
Hallo Boris,
vielen Dank für Deine Hilfe.
Der Cursor springt zwar in die richtige Zelle, erzwingt aber keine Eingabe.
Bei dem Beispielmakro für eine Zelle kann der Cursor erst nach Zelleintrag weiterbewegt werden.
Kannst Du noch was ändern?
Grüße
Georg
Hast du die ersten 2 Zeilen mitkopiert?
17.12.2003 10:15:10
Boris
Hi Georg,

Option Explicit
Public oldAddr As String

Die sind eminent wichtig!

Bei mir wird solange die Zelle angewählt, bis ich dort was eingebe.

Grüße Boris
AW: Hast du die ersten 2 Zeilen mitkopiert?
17.12.2003 10:19:08
Georg
Hallo Boris,
genau das wars. Sorry

Vielen Dank für Deine Hilfe.
Grüße und eine schöne Zeit
Georg
Anzeige
AW: Eingabe erzwingen
17.12.2003 10:24:03
Reinhard
Hi Georg,
Boris hat dir ja die Variante mit DauerVariablen gezeigt. Aber geht auch ohne.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each Zelle In Range("C11:C35")
If Zelle.Value <> "" And (Cells(Zelle.Row, 5) = "" Or Len(Cells(Zelle.Row, 5)) <> 6 _
Or IsNumeric(Cells(Zelle.Row, 5)) = False) Then
Cells(Zelle.Row, 5).Select
Exit Sub
End If
Next Zelle
End Sub


Gruß
Reinhard
Das gibt aber ne Dauerschleife...
17.12.2003 10:38:32
Boris
Hi Reinhard,

...aus der man nicht mehr rauskommt.

Grüße Boris
Ich nehme natürlich alles zurück...;-) oT
17.12.2003 11:07:29
Boris
Das Leben wäre schöner
17.12.2003 21:58:33
Reinhard
würden sich die diversen Fragesteller so sooft zurückmelden und sich um ihre abgelegten Threads kümmern und mal nachschauen wie die Oft-Antworter dies tun.
Lieben Gruß Boris :-)
Reinhard
Anzeige
Vielen Dank an Alle ,o.T., funktioniert
17.12.2003 11:47:35
Georg
Hi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige