Excel-Makro, aktuelle Cursorposition

Hallo, liebe Expertenschar,

a) ich weiß, dass das Problem weiter unten schon mal angesprochen wird.
b) ich komme aber nicht damit zurecht.

Daher beschreibe ich meine konkrete Aufgabe:

  1. aktuelle Cursorposition abfragen und Wert festhalten: (RxCy) oder so?
  2. eigentliches Makro ab da ausführen lassen (geht bereits)
  3. hierbei ermittelten Wert genau eine Zeile höher über der Startposition wieder einkopieren. (also irgendwie mit R um 1 vermindert oder so)

Ich arbeite eigentlich nur mit Excel-Formeln. Wenn sich ins vorhandene Makro aber VB-Code einbauen lässt, wäre das OK.

Vielen Dank
Ludwig

Nur auf die Schnelle:

Guck mal in der VBA-Hilfe unter:

  • ActiveCell
  • Row (Eigenschaft des Range-Objekts)
  • Column (Eigenschaft des Range-Objekts)
  • Offset (Methode des Range-Objekts)

Das Offset gibt´s auch in Excel selbst. Da heisst es aber … ehm … BereichVerschieben oderso, glaube ich.

Kristian

Grundsätzlich, poste doch das Makro was du hast

  1. eigentliches Makro ab da ausführen lassen (geht bereits)

Hallo Ludwig,
poste doch den Code den du hast, da ists für mich, Kristian und andere Hilfsbereite bedeutend einfacher einzuschätzen wie du vba-mäßig drauf bist und wir können dann deinen vorhanden Code mit deinen neuen Anforderungn effektiver verknüpfen.
Gruß
Reinhard

Hier ist es.
Sub Wortliste_sortieren()

’ Wortliste_sortieren Makro
’ Makro am 07.08.2004 von Ludwig aufgezeichnet

’ Tastenkombination: Strg+Umschalt+G

'---------------------------------------------------
'Hier die aktuelle Cursorposition abfragen und sich merken
'---------------------------------------------------
Range(„B13“).Select
Selection.Copy
Sheets(„Tabelle1“).Select
Range(„B2“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„B3“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = „=R[-1]C&“" „“"
Range(„F3“).Select
Selection.Copy
Range(„B4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F4“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F5“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B6“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F6“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B7“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F7“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B8“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F8“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B9“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F9“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B10“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F10“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B11“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F11“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B12“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F12“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B13“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(„F13“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B14“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets(„Satz verwirbeln“).Select
Range(„A1“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
„=IF(ISERROR(Tabelle1!R[2]C[4]),“""",IF(Tabelle1!R[2]C[4]="""","""",Tabelle1!R[2]C[4]))"
Range(„A1:A12“).Select
Selection.FillDown
Selection.Sort Key1:=Range(„A1“), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range(„B2“).Select
'--------------------------------------------------
'Hier zu vorigen Cursorposition zurückkehren,
'allerdings genau eine Zeile darüber bei gleicher Spalte.
'Hier wird dann der im Makro ermittelte Wert eingetragen.
'Füg ich dann selber ein.
'--------------------------------------------------
End Sub

Ich danke dir sehr!
Ludwig

Ist es das?

Sub Wortliste_sortieren()

’ Wortliste_sortieren Makro
’ Makro am 07.08.2004 von Ludwig aufgezeichnet

’ Tastenkombination: Strg+Umschalt+G

'---------------------------------------------------
'Hier die aktuelle Cursorposition abfragen und sich merken
Dim rngStart As Range

Set rngStart = Application.ActiveCell
'---------------------------------------------------
Range(„B13“).Select
Selection.Copy
Sheets(„Tabelle1“).Select
Range(„B2“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„B3“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = „=R[-1]C&“" „“"
Range(„F3“).Select
Selection.Copy
Range(„B4“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F4“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B5“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F5“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B6“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F6“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B7“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F7“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B8“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F8“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B9“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F9“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B10“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F10“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B11“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F11“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B12“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F12“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B13“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Range(„F13“).Select
Application.CutCopyMode = False
Selection.Copy
Range(„B14“).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

=False, Transpose:=False

Sheets(„Satz verwirbeln“).Select
Range(„A1“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
„=IF(ISERROR(Tabelle1!R[2]C[4]),“""",IF(Tabelle1!R[2]C[4]="""","""",Tabelle1!R[2]C[4]))"
Range(„A1:A12“).Select
Selection.FillDown
Selection.Sort Key1:=Range(„A1“), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range(„B2“).Select
'--------------------------------------------------
'Hier zu vorigen Cursorposition zurückkehren,
'allerdings genau eine Zeile darüber bei gleicher Spalte.
'Hier wird dann der im Makro ermittelte Wert eingetragen.
'Füg ich dann selber ein.
rngStart.Offset(-1).Select
'--------------------------------------------------
End Sub

Gruß
Daniel

Ist es das?

Hi, Daniel.
Zunächst vielen Dank. Es ieht sehr plausibel aus, was du reingebaut hast. Aber im Moment geht es noch nicht. Wahrscheinlich muss ich an den Schnittstellen vom vorhandenen Makro zu deinen Ergänzungen noch irgendwie feilen.

Darf ich dich in 1-2 Tagen ggf. nochmals fragen?

Vielen Dank,
Ludwig