174 Aufrufe
Gefragt in Tabellenkalkulation von jelena Experte (1k Punkte)

Hallo guten Tag, brauche wieder einmal eure Hilfe, dieses Makro soll nur bei Tabelle02 (Material), bei Tabelle06 (Schottermaterial_Deponie), und bei Tabelle12 (Verschiedenes) funktionieren und bei anderen Tabellen nicht. Danke

Sub Springen()  'von Spalte zu Spalte springen
  If ActiveCell.Column = 3 Then  'von Spalte C zu Spalte E springen
    ActiveCell.Offset(0, 2).Select
  ElseIf ActiveCell.Column = 10 Then  'von Spalte J zu Spalte U springen
    ActiveCell.Offset(0, 11).Select
  ElseIf ActiveCell.Column = 21 Then  'von Spalte U zu Spalte V und Spalte W springen usw.
    ActiveCell.Offset(0, 1).Select
  Else
'    ActiveCell.Offset(1, -10).Select  'von Spalte wieder zurück zu Spalte c springen
'  Else
    ActiveCell.Offset(0, 1).Select
  End If
End Sub

9 Antworten

0 Punkte
Beantwortet von xlking Experte (1.9k Punkte)

Hi Jelena,

warum baust du nicht einfach noch eine zusätzliche If-Abfrage drumrum?

Sub Springen()  'von Spalte zu Spalte springen
 If ActiveSheet.Name = "Material" Or ActiveSheet.Name = "Schottermaterial_Deponie" Or ActiveSheet.Name = "Verschiedenes" Then
  If ActiveCell.Column = 3 Then  'von Spalte C zu Spalte E springen
    ActiveCell.Offset(0, 2).Select
  ElseIf ActiveCell.Column = 10 Then  'von Spalte J zu Spalte U springen
    ActiveCell.Offset(0, 11).Select
  ElseIf ActiveCell.Column = 21 Then  'von Spalte U zu Spalte V und Spalte W springen usw.
    ActiveCell.Offset(0, 1).Select
  Else
'    ActiveCell.Offset(1, -10).Select  'von Spalte wieder zurück zu Spalte c springen
'  Else
    ActiveCell.Offset(0, 1).Select
  End If
 End If
End Sub

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Experte (1k Punkte)
Hallo Mr. K. was habe ich falsch gemacht, sobald ich mit der Tabulator taste weitergehe passiert nichts und sobald ich im code die F5 taste drücke funktioniert es, es soll aber mit der Tabulator taste zur angegebenen spalte springen. Danke
0 Punkte
Beantwortet von xlking Experte (1.9k Punkte)
Bearbeitet von xlking

Dazu musst du zuvor im Workbook_Open-Ereignis der Tabulatortaste dieses Makro zuweisen.

Dieser Code kommt in das Modul "DieseArbeitsmappe"

Private Sub Workbook_Open()
  Application.OnKey "{Tab}", "Springen"
End Sub

Wenn du aber auch in den anderen Sheets die Tabulatortaste nutzen willst musst du noch einen Else-Teil zu der If-Abfrage hinzufügen.

Sub Springen()  'von Spalte zu Spalte springen
 If ActiveSheet.Name = "Material" Or ActiveSheet.Name = "Schottermaterial_Deponie" Or ActiveSheet.Name = "Verschiedenes" Then
  If ActiveCell.Column = 3 Then  'von Spalte C zu Spalte E springen
    ActiveCell.Offset(0, 2).Select
  ElseIf ActiveCell.Column = 10 Then  'von Spalte J zu Spalte U springen
    ActiveCell.Offset(0, 11).Select
  ElseIf ActiveCell.Column = 21 Then  'von Spalte U zu Spalte V und Spalte W springen usw.
    ActiveCell.Offset(0, 1).Select
  Else
'    ActiveCell.Offset(1, -10).Select  'von Spalte wieder zurück zu Spalte c springen
'  Else
    ActiveCell.Offset(0, 1).Select
  End If
 Else
  ActiveCell.Offset(0, 1).Select
 End If
End Sub

Das Makro Springen muss natürlich weiterhin in einem allgemeinen Modul verbleiben.

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Experte (1k Punkte)
Bearbeitet von jelena

Hallo Mr. K. Entschuldigung ich habe mich mit der Tabelle06 (Schottermaterial_Deponie) vertan, da soll nicht von Spalte J zu Spalte U springen, sondern von Spalte K zu Spalte V und nicht von Spalte K zu Spalte J. Bitte um Nachsicht und Richtigstellung. Der Rest passt. Vielen Dank

0 Punkte
Beantwortet von jelena Experte (1k Punkte)

Hallo Mr. K. Entschuldigung ich habe mich mit der Tabelle06 (Schottermaterial_Deponie) vertan, da soll nicht von Spalte J zu Spalte U springen, sondern von Spalte K zu Spalte V und nicht von Spalte K zu Spalte J. Bitte um Nachsicht und Richtigstellung. Der Rest passt. Vielen Dank

0 Punkte
Beantwortet von xlking Experte (1.9k Punkte)

Hallo Jelena,

ersetze die Zeile 

ElseIf ActiveCell.Column = 10 Then

durch

ElseIf ActiveCell.Column = iif(ActiveSheet.Name = "Schottermaterial_Deponie", 11, 10) Then

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Experte (1k Punkte)

Hallo Mr. K. wo habe ich den Fehler drin, denn mit diesem Code springt der Cursor in der Tabelle “ Schottermaterial_Deponie“ von Spalte zu Spalte, und nicht von Spalte C zu E ,F,G,H,I,J und von K zu V. Die anderen Tabellen funktionieren wie der vorherige Code. Danke

Sub Springen()  'von Spalte zu Spalte springen
 If ActiveSheet.Name = "Material" Or ActiveSheet.Name = "Verschiedenes" Then
  If ActiveCell.Column = 3 Then  'von Spalte C zu Spalte E springen
    ActiveCell.Offset(0, 2).Select
ElseIf ActiveCell.Column = IIf(ActiveSheet.Name = "Schottermaterial_Deponie", 11, 10) Then
'  ElseIf ActiveCell.Column = 10 Then  'von Spalte J zu Spalte U springen
    ActiveCell.Offset(0, 11).Select
  ElseIf ActiveCell.Column = 21 Then  'von Spalte U zu Spalte V und Spalte W springen usw.
    ActiveCell.Offset(0, 1).Select
  Else
'    ActiveCell.Offset(1, -10).Select  'von Spalte wieder zurück zu Spalte c springen
'  Else
    ActiveCell.Offset(0, 1).Select
  End If
 Else
  ActiveCell.Offset(0, 1).Select
 End If
End Sub
0 Punkte
Beantwortet von xlking Experte (1.9k Punkte)
ausgewählt von mickey
 
Beste Antwort

Hey Jelena,

du hast Schottermaterial_Deponie oben aus der ersten Zeile rausgenommen. Das habe ich dir nicht geschrieben. Die erste Zeile muss schon alle 3 Tabellen umfassen, wenn der Code funktionieren soll.

If ActiveSheet.Name = "Material" Or ActiveSheet.Name = "Schottermaterial_Deponie" Or ActiveSheet.Name = "Verschiedenes" Then

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Experte (1k Punkte)
Hallo Mr. K. hatte falsch gedacht, so passt es. Vielen Dank.
...