1k Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (926 Punkte)
Hallo Helfer,

Beide unten stehende Makros stehen in VBA in Tabelle4.
Bisher bewirkt die Eingabe einer Ziffer in eine Zelle, das das Worksheet_Change Ereignis, das Makro BezugA aufruft.
Das Worksheet_Change-Makro will ich so ändern, das Zellbezüge in der A1-Schreibweise angegeben werden müssen.
Nach einer solchen Eingabe z.B. E55, soll diese Eingabe sofort durch das ersetzt werden, was in Tabelle1 in der Zelle E55 steht.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wert As Variant
wert = ActiveCell.Value
If IsNumeric(wert) Then
Call BezugA
End If
End Sub


Sub BezugA()
Dim raZeileT1 As Long
Dim raZeileT4 As Long
Dim raSpalte As Long
Dim Tabelle1 As Worksheet
Dim wks As Worksheet

raZeileT1 = ActiveCell.Value
raSpalte = ActiveCell.Column
raZeileT4 = ActiveCell.Row
'wks = ActiveSheet
On Error Resume Next
Sheets("Tabelle1").Cells(raZeileT1, raSpalte).Copy
Sheets("Tabelle4").Cells(raZeileT4, raSpalte).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub


Vielen Dank im Voraus
mfg
Wolfgang

3 Antworten

0 Punkte
Beantwortet von
Hi,

Mein erster Ansatz würde nur aus einem neuen Change-Ereignis bestehen. Sieht dann in der ersten Version aus wie folgt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngRange As Range
On Error Resume Next
Set rngRange = ThisWorkbook.Worksheets("Tabelle1").Range(Target.Value)
On Error GoTo 0
If Not rngRange Is Nothing Then
Application.EnableEvents = False
Target = rngRange.Value
Application.EnableEvents = True
End If
Set rngRange = Nothing
End Sub



bye
malSchauen
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo malSchauen,

ich habe das neue Change-Ereignis in ein neues Tabellenblatt eingefügt. Nach Eingaben passiert aber nichts.

mfg

Wolfgang
0 Punkte
Beantwortet von Mitglied (926 Punkte)
Hallo malSchauen,

entschuldige, ich habe mich vertan. Ich war in ein Modul geraten.
Vielen Dank! Es läuft wie gewünscht!

mfg

Wolfgang
...