Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
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
Inhaltsverzeichnis

Eingabe in bestimmter Reihenfolge

Eingabe in bestimmter Reihenfolge
Hella
Hallo
wie kann ich folgendes Problem am besten lösen?
In dem gezeigten Beispiel sind die gelb markierten Zellen "Eingabefelder".
Die Eingaben sollen einer Reihenfolge unterliegen. Begonnen soll immer in der Spalte mit Datum, egal welche Zeile. Danach Sprung in Spalte Rech.-Nr., Spalte "Netto". Bis hierher habe ich es mit "Zelle sperren" gemacht,
möchte aber nach der "Netto-Eingabe" wieder in die "Datums-Spalte" zurück.
LG
Hella
Userbild
AW: Eingabe in bestimmter Reihenfolge
Tino
Hallo,
mach es mit dem Change Ereignis.
Beispiel:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
Application.EnableEvents = False
Select Case Target.Column
Case Range("CQ1").Column: Target.Offset(0, 2).Select
Case Range("CS1").Column: Target.Offset(0, 1).Select
Case Range("CQ1").Column: Target.Offset(0, -3).Select
End Select
Application.EnableEvents = True
End If
End Sub


Gruß Tino

AW: Eingabe in bestimmter Reihenfolge
Tino
Hallo,
Application.EnableEvents = False
und
Application.EnableEvents = True
kann man rausschmeißen, Du machst ja keine Eingabe durch VBA.
Gruß Tino
Anzeige
AW: Eingabe in bestimmter Reihenfolge
Hella
Hallo Tino,
Danke für deine Antwort.
Vielleicht kannst du mir ja noch ein bischen helfen?
Habe deinen Code ins Tabellenblatt kopiert, gespeichert, geschlossen, wieder geöffnet, aber nichts
hat sich von der Eingabereihenfolge geändert.
Habe ich etwas falsch gemacht bzw. vergessen?
LG
Hella
hättest Du eine Beispieldatei? oT.
Tino
AW: hättest Du eine Beispieldatei? oT.
Hella
Hi Tino
Ja, aber ca. 3,2 MB. Ist das OK?
LG
Hella
AW: hättest Du eine Beispieldatei? oT.
Tino
Hallo,
fehler gefunden.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LRowOffset As Long
If Target.Count = 1 Then
LRowOffset = IIf(Target.Offset(1, 0).Interior.ColorIndex = xlNone, 3, 1)
Select Case Target.Column
Case Range("CQ1").Column: Target.Offset(0, 2).Select
Case Range("CS1").Column: Target.Offset(0, 1).Select
Case Range("CT1").Column: Target.Offset(LRowOffset, -3).Select
End Select
End If
End Sub


Gruß Tino

Anzeige
AW: hättest Du eine Beispieldatei? oT.
Hella
Hallo Tino,
jetzt funktioniert es, prima. :)
Kann ich den Code um weitere Spalten erweitern?
z.B. CK/CM/CN ; CE/CG/CH usw.
LG
Hella
AW: hättest Du eine Beispieldatei? oT.
Tino
Hallo,
versuche es mal so.
'CQ/CS/CT ; CK/CM/CN ; CE/CG/CH 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LRowOffset As Long
  If Target.Count = 1 Then
    LRowOffset = IIf(Target.Offset(1, 0).Interior.ColorIndex = xlNone, 3, 1)
       Select Case Target.Column
        'Die Nummer entspricht der Spalte, entsprechend erweitern 
        Case 95, 89, 83: Target.Offset(0, 2).Select
        Case 97, 91, 85: Target.Offset(0, 1).Select
        Case 98, 91, 86: Target.Offset(LRowOffset, -3).Select
       End Select
  End If
End Sub


Gruß Tino

Anzeige
AW: hättest Du eine Beispieldatei? oT.
Hella
Dankeschön,
einen kleinen Haken gibt es aber noch(zumindest in meiner Mappe).
Nach der letzten Eingabe in "Netto" wird nicht die nächste Zelle unter Datum
angesprungen, sondern 3 Zellen tiefer. Woran kann das liegen?
Userbild

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LRowOffset As Long
If Target.Count = 1 Then
LRowOffset = IIf(Target.Offset(1, 0).Interior.ColorIndex = xlNone, 3, 1)
Select Case Target.Column
'Die Nummer entspricht der Spalte, entsprechend erweitern
Case 95, 89, 83: Target.Offset(0, 2).Select
Case 97, 91, 85: Target.Offset(0, 1).Select
Case 98, 92, 86: Target.Offset(LRowOffset, -1).Select
End Select
End If
End Sub


LG
Hella

Anzeige
AW: hättest Du eine Beispieldatei? oT.
Tino
Hallo,
ist auch wieder anders wie im ersten Beispiel.
Versuche es mal so.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LRowOffset As Long
If Target.Count = 1 Then
LRowOffset = IIf(Not Target.Offset(1, 0).Interior.ColorIndex = xlNone, 2, 1)
Select Case Target.Column
'Die Nummer entspricht der Spalte, entsprechend erweitern
Case 95, 89, 83: Target.Offset(0, 2).Select
Case 97, 91, 85: Target.Offset(0, 1).Select
Case 98, 92, 86: Target.Offset(LRowOffset, -1).Select
End Select
End If
End Sub


Gruß Tino

Anzeige
AW: hättest Du eine Beispieldatei? oT.
Tino
Hallo,
bei der dritten Case habe ich mich in der Spaltenzahl vertan,
Case 98, 92, 86: Target.Offset(LRowOffset, -3).Select
Gruß Tino
AW: hättest Du eine Beispieldatei? oT.
Hella
Hi Tino,
hatte ich schon bemerkt und korrigiert. Trotzdem wird die 3te Zelle unter dem letzt eingetragenen
Datum angesprungen!
Ansonsten läuft der Code wie gewünscht.
Kannst du bitte nocheinmal nachschauen?
LG
Hella
AW: hättest Du eine Beispieldatei? oT.
Hella
Nachtrag
im Code steht natürlich
Case 98, 91, 86: Target.Offset(LRowOffset, -3).Select
und nicht wie ich oben angegeben habe
Case 98, 91, 86: Target.Offset(LRowOffset, -1).Select
LG
Hella
Anzeige
kann Dir nicht folgen oT.
Tino
AW: kann Dir nicht folgen oT.
Tino
Hallo,
ist auch wieder anders wie im ersten Beispiel.
Versuche es mal so.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LRowOffset As Long
If Target.Count = 1 Then
LRowOffset = IIf(Not Target.Offset(1, 0).Interior.ColorIndex = xlNone,2, 1)
Select Case Target.Column
'Die Nummer entspricht der Spalte, entsprechend erweitern
Case 95, 89, 83: Target.Offset(0, 2).Select
Case 97, 91, 85: Target.Offset(0, 1).Select
Case 98, 92, 86: Target.Offset(LRowOffset, -1).Select
End Select
End If
End Sub


Gruß Tino

Anzeige
mist,
Tino
Hallo,
Du machst mich ganz durcheinander.
Muss -3 sein
Case 98, 92, 86: Target.Offset(LRowOffset, -3).Select
Gruß Tino
AW:@Tino
robert
hi Tino,
ich glaube das problem ist bei hella's darstellung der tabelle.
im 1.beitrag hat sie einen gelben eingabebereich, im letzten beitrag nicht.
du prüfst aber, ob eingabebereich färbig ist-wenn ja-dann eine zeile tifer, sonst 3 zeilen
-bei mir getestet-
es ist immer wieder so( oder meistens), dass die beispiel fragen nicht dem original entsprechen
gruß
robert
genau
Tino
Hallo,
und dann kommen die Fragen.
Gruß Tino
Anzeige
AW: AW:@Tino
Hella
Hallo,
es geht nicht in meiner Tabelle darum, einen "gelben" Bereich zu überprüfen. Die Markierung sollte lediglich
zur besseren Veranschaulichung dienen. Wenn ich damit Verwirrung geschaffen habe, so bitte ich um Entschuldigung. Schön das es Leute gibt, die exakt ihre Fragen formulieren können!
LG
Hella
@Hella
Tino
Hallo,
das Frauen immer gleich beleidigt sein müssen, wir versuchen Dir doch zu helfen oder nicht.
Gruß Tino
AW: @Hella
Hella
Hi Tino,
im Grunde gebe ich allen Helfern recht, aber wunderts wenn bei solchen Antworten ähnliche Fragen
unter einem anderen Pseudo wieder gestellt werden, weil der Verfasser sich nicht mehr traut?

das Frauen immer gleich beleidigt sein müssen, wir versuchen Dir doch zu helfen oder nicht.


Ganz klares Vorurteil!!!!!!!!!!
Schönen Sonntag noch
LG
Hella

Anzeige
AW: @Hella
Josef
Hallo Hella,
entschuldige, das ich mich kurz einmische.
Du hast recht, das Tinos Aussage ...das Frauen immer gleich beleidigt sein müssen--- ein Vorurteil ist.
Egal ob Weiblein oder Männlein, viele Frager sind extrem empfindlich wenn sie wegen ihrer Beispielmappen, Problembeschreibungen oder der Frage allgemein kritisiert werden.
Mir ist schon klar, das es für viele nicht ganz einfach ist, ihr Problem konkret zu beschreiben, vorallem, wenn sie mit Excel/VBA nicht besonders vertraut sind, aber manchmal, und das ist jetzt nicht auf dich oder deinen Beitrag bezogen, frage ich mich schon, ob derjenige, wenn er krank ist, seinen Nachbarn zum Arzt schickt und sich dann wundert wenn die Medizin nicht wirkt.
Gruß Sepp

AW: @Hella
robert
hi,
und wer tino ein bisschen im forum verfolgt weiss,
das er das sicher mit einem augenzwinkern gemeint hat :-)
ansonsten-siehe antwort von sepp
gruß
robert
AW: @Hella
Hella
Hi Sepp,
ich stimme Dir voll und ganz zu. Dennoch gibt außer den *Nichtgenaufragestellern* (mich einbezogen)auch diejenigen *Ichweißdielösunghelfer* sags dir aber nicht, weil "dein Intalekt entspricht nicht dem meinigen".
Das führt doch häufig zu abgebrochenen Beiträgen. Eigentlich Schade.
Alles in allem bin ich aber Froh, das es dieses Forum gibt und die $absolute$Mehrheit der Helfer mit viel Geduld und Einsatz dabei sind.
Euch allen noch einen schönen Sonntag
LG
Hella
Gehört nicht zum Thema!
Tino
Hallo,
" Ganz klares Vorurteil! "
Dachte ich bisher auch, aber ich merke dies immer wieder, ob auf der Arbeit oder im Forum.
Sag zu einem Mann das Wort mit A (aus Spaß) und zu einer Frau und warte auf die Reaktion. ;-)
Ich habe um eine Beispielmappe gebeten, dies ist nicht gegangen.
Dann ist etwas Verwirrung reingekommen, Code hin Code her.
Ich fragte mich, warum auf einemal nur noch 1 Zelle nach links,
dazu ein kleiner Beitrag von robert und schon war Hella beleidigt.
Und ich frage mich, was habe ich jetzt böses gemacht.
Der Kommentare danach, war dass was ich mir direkt in den Sinn gekommen ist und
dies habe ich einfach mal rausgelassen.
Gruß Tino
AW: Gehört nicht zum Thema!
Hella
Hi Tino,
du hast mein Problem gelöst und darüber bin ich sehr Froh und mach bitte in Zukunft auch weiterso.
Vergeb an dieser Stelle mal ein Prädikat: $$

Sag zu einem Mann das Wort mit A (aus Spaß) und zu einer Frau und warte auf die Reaktion. ;-)


Ganz klarer Fall:
Mann ist sauer weil Frau ainkaufen war!
LG
Hella

und schon scheint wieder die Sonne ;-)
Tino
Hallo,
ich wünsche Dir und all den anderen auch noch einen schönen Sonntag
PS: hast Du auch den Beitrag von Udo gesehen, linkst unten?
Gruß Tino
ich meinte Uwe, sorry oT.
Tino
@Tino Lösung meines Problems
Hella
Hi Tino,
jetzt funktioniert es wie gewünscht und der Sprung von "Netto" nach "Datum" in der richtigen Zelle
paßt jetzt auch!
Habe
LRowOffset = IIf(Not Target.Offset(1, 0).Interior.ColorIndex = xlNone, 2, 1)
auf
LRowOffset = IIf(Not Target.Offset(1, 0).Interior.ColorIndex = xlNone, 1, 1)
geändert.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LRowOffset As Long
If Target.Count = 1 Then
LRowOffset = IIf(Not Target.Offset(1, 0).Interior.ColorIndex = xlNone, 1, 1)
Select Case Target.Column
'Die Nummer entspricht der Spalte, entsprechend erweitern
Case 95, 89, 83: Target.Offset(0, 2).Select
Case 97, 91, 85: Target.Offset(0, 1).Select
Case 98, 92, 86: Target.Offset(LRowOffset, -3).Select
End Select
End If
End Sub


Danke für deine Mühe und Geduld.
LG
Hella

AW: @Hella
Tino
Hallo,
dann brauchst Du die Zeile nicht, schreibe den Wert fest rein.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
Select Case Target.Column
'Die Nummer entspricht der Spalte, entsprechend erweitern
Case 95, 89, 83: Target.Offset(0, 2).Select
Case 97, 91, 85: Target.Offset(0, 1).Select
Case 98, 92, 86: Target.Offset(1, -3).Select
End Select
End If
End Sub


Ich dache eher daran, wenn der Block unten angekommen ist,
dass er in den nächsten Block zum Datum springt.
Gruß Tino

AW: Eingabe in bestimmter Reihenfolge
Hella
Hallo Tino,
Danke für deine Antwort.
Vielleicht kannst du mir ja noch ein bischen helfen?
Habe deinen Code ins Tabellenblatt kopiert, gespeichert, geschlossen, wieder geöffnet, aber nichts
hat sich von der Eingabereihenfolge geändert.
Habe ich etwas falsch gemacht bzw. vergessen?
LG
Hella
AW: Eingabe in bestimmter Reihenfolge
Hella
Hallo Tino,
Danke für deine Antwort.
Vielleicht kannst du mir ja noch ein bischen helfen?
Habe deinen Code ins Tabellenblatt kopiert, gespeichert, geschlossen, wieder geöffnet, aber nichts
hat sich von der Eingabereihenfolge geändert.
Habe ich etwas falsch gemacht bzw. vergessen?
LG
Hella
AW: Eingabe in bestimmter Reihenfolge
Uwe
Hi,
ein Möglichkeit wäre einfach die Spalten CT bis CQ zu markieren und dann die Eingaben zu machen. Am Ende der Markierung springt Excel dann automatisch in die erste markierte Spalte.
Oder Du schreibst diesen Code ins Modul des Tabellenblattes (Rechtsklick auf den Reiter/ Code anzeigen...):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 98 Then Target.Offset(1, -3).Select
End Sub


Hilft Dir das?
Gruß
Uwe
(:o)

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige