VBA anpassen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: VBA anpassen
von: Alyssia Mc Kay
Geschrieben am: 24.09.2003 10:09:14

Hallo Experten

Hab diesen Code von Hajo's Website runtergeladen.
Nun möchte ich das Makro so anpassen, dass beim anclicken einer Zelle mit
Formel, der Cursor nicht auf die letzte aktive Zelle springt, sondern
immer auf Zelle M9.

Eigentlich keine grosse Sache, doch irgendwie schaff ich's nicht.

Option Explicit
Dim StAdresse As String


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'   erstellt von Hajo.Ziplies@web.de 16.09.03
' http://home.media-n.de/ziplies/
'   Formel dürfen nicht geändert werde
'   sollen Formel geändert werden sind diese einzeln auszuwählen
'   wird ein Zelle mit Formel ausgewählt wird der zuletzt gewählte Bereich markiert
    Dim RaZelle As Range
    Dim InMldg As Integer
    For Each RaZelle In Range(Target.Address)
'      es dürfen keine Zellen mit Formeln ausgewählt werden
        If RaZelle.HasFormula Then
'            Diesen Teil reinnehmen falls formeln geändert werden dürfen
'            InMldg = MsgBox("Wollen Sie die Formel ändern", vbYesNo + vbQuestion, "Formelabfrage ?", "", 0)
'            If InMldg = 6 Then Exit Sub
            Application.EnableEvents = False
            If StAdresse <> "" Then
                Range(StAdresse).Select
                Application.EnableEvents = True
                Exit For
            Else
                If RaZelle.Column < 256 Then
                    RaZelle.Offset(0, 1).Select
                Else
                    RaZelle.Offset(0, -1).Select
                End If
                Application.EnableEvents = True
                Exit For
            End If
        End If
    Next RaZelle
    StAdresse = Selection.Address
End Sub


Vielen Dank schon mal.

regards
Alyssia
Bild


Betrifft: AW: VBA anpassen
von: Holger Levetzow
Geschrieben am: 24.09.2003 10:27:18

versuche:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'   erstellt von Hajo.Ziplies@web.de 16.09.03
' http://home.media-n.de/ziplies/
'   Formel dürfen nicht geändert werde
'   sollen Formel geändert werden sind diese einzeln auszuwählen
'   wird ein Zelle mit Formel ausgewählt wird der zuletzt gewählte Bereich markiert
    Dim RaZelle As Range
    Dim InMldg As Integer
    Dim StAdresse As String
    StAdresse = "M9"
    For Each RaZelle In Range(Target.Address)
'      es dürfen keine Zellen mit Formeln ausgewählt werden
        If RaZelle.HasFormula Then
'            Diesen Teil reinnehmen falls formeln geändert werden dürfen
'            InMldg = MsgBox("Wollen Sie die Formel ändern", vbYesNo + vbQuestion, "Formelabfrage ?", "", 0)
'            If InMldg = 6 Then Exit Sub
            Application.EnableEvents = False
            If StAdresse <> "" Then
                Range(StAdresse).Select
                Application.EnableEvents = True
                Exit For
            Else
                If RaZelle.Column < 256 Then
                    RaZelle.Offset(0, 1).Select
                Else
                    RaZelle.Offset(0, -1).Select
                End If
                Application.EnableEvents = True
                Exit For
            End If
        End If
    Next RaZelle
End Sub

Holger


Bild


Betrifft: AW: it works
von: Alyssia Mc Kay
Geschrieben am: 24.09.2003 10:41:36

Hi Holger

Vielen Dank für Deine Hilfe,
es läuft einwandfrei.

Gruss Alyssia


 Bild

Beiträge aus den Excel-Beispielen zum Thema " VBA anpassen"