faab58
Goto Top

Excle 2010 : Leere Zelle in Spalte bei Spaltenwechsel automatisch anspringen

Moin Moin,

tja, was soll ich sagen, Neuling in der Makroerstellung bei Excel braucht bitte einen Tipp.

a.)
Ich brauche ein Makro, welches in dem Bereich einer Arbeitsmappe ( z.B. B11:K30 ) immer in die nächste freie Zelle von oben in einer Spalte springt, wenn ich die Spalte wechsle.

Hier sollen dann Zahlen eingegeben werden.

bface-smile
Vertippt man sich bei der Eingabe, müsste dann eine eine einfache Korrekturmöglichkeit her. Grundsätzlich wäre das ja über die Rückgängig Schaltfläche möglich. Bei späteren Korrekturen jedoch nicht. Ich stelle mir eine Zelle oberhalb des Bereiches vor, die als Schaltfläche dient; aktiviert Korrekturen wieder zulässt und deaktiviert das Makro unter aface-smile normal ablaufen läßt.


Im Netz finde ich vieles, aber nicht dieses Problem.

Hat jemand hierzu eine Idee ?

LG Frank

Content-Key: 255007

Url: https://administrator.de/contentid/255007

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: Meierjo
Meierjo 17.11.2014 um 11:48:54 Uhr
Goto Top
Hallo

Ich brauche ein Makro, welches in dem Bereich einer Arbeitsmappe ( z.B. B11:K30 ) immer in die nächste freie Zelle von oben
in einer Spalte springt, wenn ich die Spalte wechsle.
Sollte mit folgendem Code im entsprechenden Worksheet funktionieren

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    Application.EnableEvents = False
    If Target.Cells.Count > 1 Then GoTo ende 'wenn mehr als 1 Zelle markiert, beenden  
    If Intersect(Target, Range("B11:K30")) Is Nothing Then GoTo ende  
        MsgBox " ich bin im Bereich, und mache deshalb was", vbOKOnly  
        Cells(1048576, Target.Column).End(xlUp).Offset(1, 0).Select
ende:
    Application.EnableEvents = True
End Sub


bface-smile
Vertippt man sich bei der Eingabe, müsste dann eine eine einfache Korrekturmöglichkeit her. Grundsätzlich wäre
das ja über die Rückgängig Schaltfläche möglich. Bei späteren Korrekturen jedoch nicht. Ich stelle
mir eine Zelle oberhalb des Bereiches vor, die als Schaltfläche dient; aktiviert Korrekturen wieder zulässt und
deaktiviert das Makro unter aface-smile normal ablaufen läßt.

Auf was für Falscheingaben soll reagiert werden?
Was ist richtig eingegeben, was falsch?
Gruss Urs
Mitglied: colinardo
Lösung colinardo 17.11.2014 aktualisiert um 13:37:52 Uhr
Goto Top
Hi Frank,
hier dazu noch ein Beispiel-Sheet: AutoChangeToEmptyCell_255007.xlsm, falls die angesprungenen leeren Zellen nur in deinem angegebenen Range liegen sollen.
Dim oldColumn As Integer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rngChange As Range
    Set rngChange = Range("B11:K30")  
    If Not Application.Intersect(rngChange, Target) Is Nothing Then
        If oldColumn <> Target.Column Then
            Application.EnableEvents = False
            With rngChange
                If Cells(.Row, Target.Column) <> "" Then  
                    Cells(.Row + .Rows.Count - 1, Target.Column).End(xlUp).Offset(1, 0).Select
                Else
                    Cells(.Row, Target.Column).Select
                End If
            End With
            Application.EnableEvents = True
            oldColumn = Target.Column
        End If
    End If
End Sub

Grüße Uwe
Mitglied: Meierjo
Meierjo 17.11.2014 um 13:13:09 Uhr
Goto Top
Hallo Uwe

Bist wie immer, halt noch ne Spur besser face-smile face-wink

Gruss
Mitglied: FAAB58
FAAB58 17.11.2014 um 13:47:21 Uhr
Goto Top
Also Beispiel :

in Spalte D sind von D11:D18 Werte eingegeben. 10,20,30,40,49,60,70 und 80

Hier ist jetzt in D15 der Wert 49, soll aber von Hand korrigiert werden.

Ich komme, da das Makro nun läuft nicht auf die fehlerhafte Zelle, denn es wird ja automatisch D19 angewählt.


Für die Korrektur bräuchte ich nun einen "Aus- / Anschaltknopf", damit ich die Zelle D15 ansteuern kann und den Wert darin überschreiben kann.
Nach der Korrektur soll das Makro dann wie gehabt laufen.
Mitglied: Meierjo
Meierjo 17.11.2014 um 14:06:40 Uhr
Goto Top
Hallo

doch, mit dem Makro von Colinardo funktioniert, wenn du den Cursor in Spalte D plaziert hast, und dann zb 2 Zeilen weiter oben plazierst, wird das Marko nicht ausgeführt, dann kannst du einen vorhandenen Wert korrigieren

Gruss
Mitglied: colinardo
colinardo 17.11.2014 aktualisiert um 14:11:00 Uhr
Goto Top
@Meierjo:Yip, der TO hat mir gerade via PM mitgeteilt das sein Problem nun gelöst ist. Teil b war ja quasi nur ein möglicher Workaround bei Codes die er sonst benutzt hat. Aber das hat mein Code ja schon berücksichtigt indem der Zellwechsel nur beim wechseln der Spalte stattfindet.
Mitglied: Meierjo
Meierjo 17.11.2014 um 14:14:00 Uhr
Goto Top
Hallo Uwe

Ja, habe mit erlaubt, deinen Code-Schnipsel zu kopieren, kann ich sicherlich auch mal gebrauchen. face-wink

Gruss Urs