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.

Nach definierter Zelleneingabe - Zellensprung
#1
Hallo Excelaner. 
Ich, Handwerksmeister und von Excel soviel Ahnung wie Trump von Diplomatie, brauche Hilfe ? 

Seit Tagen suche ich bei den Suchmaschinen wie folgt:

In einer Tabelle möchte ich Lohnzeiten erfassen. Ich habe dazu mehrere Spalten gebaut. (S. Anhang)

Spalte A ist erkennbar Datum
Spalte B (hier geht es drum) soll die Monteure „x“, „y“ und „z“ Erfassen 
Spalte c bis h sind die Zeiten, welche in AW und umgerechnete Stunden beinhalten

Wenn ich nun zB. den Monteur „z“ in die spalte „b“ eintrage, soll nach „enter“ immer der Cursor in der gleichen Zeile in Spalte „E“ springen.
Bei „y“ in Spalte „G“
Bei „x“ in Spalte „C“ (das wäre noch das einfachste Smile

Ich möchte einfach dadurch die Dusselfehler vom dicken Handwerksfinger vermeiden. 

Was muss ich tun? Mit einem Makro habe ich mich heute erstmalig beschäftigt. (Cool...) Aber dann hört’s echt auf.  Blush

C. Virenfreie Grüße


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hi

der Code dazu könnte so aussehen. Code in das Blattmodul einfügen.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
  Select Case Target.Value   'Zellinhalt von B
     Case "x"   'wenn x dann
         Cells(Target.Row, 5).Select
     Case "y"
         Cells(Target.Row, 7).Select
     Case "z"
         Cells(Target.Row, 3).Select
  End Select
End If
End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Excelos
Antworten Top
#3
Guten Morgen @Elex, danke fd. schnelle Hilfe.



Leider nicht erfolgreich. Ich habe etwas rumprobiert und recherchiert auf Google zB. was heißt "Spalte" auf Engisch (stimmt wirklich...)

Habe dann versucht die kopierten Zeilen zu verstehen. Zumindest auf meine dumpfe Art.



Private Sub Worksheet_Change(ByVal Target As Range)                        Eröffnet das VBA, Rest versteh ich nicht

If Target.Column = 2 Then                                                                 Wenn in Spalte 2 was steht (nicht B?) dann...

Select Case Target.Value                                                                    Wähle die Variable aus oder definiere die folgende Variable

Case "x"                                                                                            wie schon erwähnt "x" wird definiert (wenn ich 'vor den Text schreibe wird derf folgende Text missachtet?)

Cells(Target.Row, 5).Select                                                                 Zellenziel Reihe (5? oder Spalte 5) wählen.

usw....

Habe ich das richtig interpretiert?



In meine Arbeitsblatt eingefügt tut sich leider nichts. Habe dann etwas rumexperiemntiert, aber das war wie wenn Kinden anfangen zu backen und mixen ahnungslos die Zutaten hin un her.
Sollte ich mich doch dem lieber wieder dem grobmotorischem Dingen annehmen?



Grüße vom Excelosen Anwender
Antworten Top
#4
Zitat:in mein Arbeitsblatt eingefügt....

ins Codemodul des Arbeitsblattes oder da wo die Zellen drin sind?

   
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • Excelos
Antworten Top
#5
Moin

Code mal etwas ergänzt.  Rechtsklick auf deinen Tabellenreiter wie in #4 beschrieben und Code dort einfügen. Datei als .xlsm oder .xlsb speichern.
Code:
'Wird im Blatt eine oder mehrere Zellen der inhalt geändert, dann startet der Code
'Target ist der Bereich oder nur die eine Zelle die geändert wurde
Private Sub Worksheet_Change(ByVal Target As Range)

'Wenn geänderte Zelle in Spalte 2 also B ist dann weiter
'Zusätzlich darf der Bereich auch nur aus einer Zelle bestehen.
If Target.Column = 2 And Target.Cells.Count = 1 Then

  Select Case Target.Value   'Zellinhalt der geänderten Zelle merken.
     'gemerkete mit den Vorgaben vergleichen
     
     Case "x"   'Gemerkte vergleichen mit "x"
         'wenn x dann die Zelle(Zeile, Spalte) markieren -> Cells(2, 3) wäre C2
         Cells(Target.Row, 5).Select
     
     Case "y"
         Cells(Target.Row, 7).Select
     
     Case "Max Muster" 'Gemerkte vergleichen mit "Max Muster"
         Cells(Target.Row, 3).Select
  End Select
 
End If
End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Excelos
Antworten Top
#6
(01.12.2020, 09:41)ralf_b schrieb: ins Codemodul des Arbeitsblattes oder da wo die Zellen drin sind?

Hallo ralf_b :43:

Ich habe die Zeilen ins Codemodul reinkopiert und hatte es Modul1 genannt.

JUHU, freu es funktioniert.  :100:

Ihr seit meine Excelhelden. Danke Elex und ralf_b :18: 
Jetzt kann ich rumprobieren. Ich freu mich wirklich total. Wie nach meiner ersten (funktionierenden) Heizung, die ich gebaut hatte. Danke :23:

Danke Elex. Das hat geklappt
Antworten Top


Gehe zu:


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