Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mario,
mal ungetestet
Code:
strCell = Application.Evaluate("=ADDRESS(ROW(" & Replace(Range(Target.Address).Formula, "=", "") & "),COLUMN(" & Replace(Range(Target.Address).Formula, "=", "") & "))")
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 06.03.2017
Version(en): 2007
Hallo Stefan,
ich muss leider so dumm nachfragen, wo kommt dein Code hin? In die Inputbox? Als Ergänzung in Andre´s Code?
Grüße Mario
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mario,
keine Ergänzung. Nur eine Codezeile ändern
Andrés Orignalcode
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Variablendeklaration - Range
Dim rngCell As Range, strCell As String, strSheet As String
'Wenn die Klickzelle M5. M6 oder M11 ist, dann
If Target.Address = "$M$5" Or Target.Address = "$M$6" Or Target.Address = "$M$11" Then
'Zelladresse anhand Formel ermitteln
'---------- Hier die folgende Codezeile ändern bzw. ersetzen
strCell = Application.Evaluate("=ADDRESS(ROW(" & Replace(Cells(6, 13).Formula, "=", "") & "),COLUMN(" & Replace(Cells(6, 13).Formula, "=", "") & "))")
'-------- das war es auch schon
'Blattauwahl entsprechend gewaehlter Zeile
Select Case Target.Row
'Bei Zeile 5
Case 5: strSheet = "Termineingabe"
'Bei Zeile 6 und 11
Case 6, 11: strSheet = "Lieferungen"
'Ende Blattauwahl entsprechend gewaehlter Zeile
End Select
'Zelle zuweisen
Set rngCell = Sheets(strSheet).Range(strCell)
'Meldung mit Adresse ausgeben
MsgBox rngCell.Address 'hier die Inputbox
'Ende Wenn die Klickzelle M5. M6 oder M11 ist, dann
End If
'Ende Eingabemodus
Cancel = True
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 06.03.2017
Version(en): 2007
26.06.2017, 09:49
(Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2017, 09:49 von M.Wichmann.)
Hallo, leider gibt die ausgeführte Msg auch damit in allen 3 Fällen die selbe Zelle aus.
Edit: habe gerade auch mal versucht den ersten Fall rauszunehmen, also das mit M5. Auch in diesem Fall gibt er mir die selbe Zelle aus, also die die für M6 richtig wäre.
Grüße Mario
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mario,
kann ich nicht nachvollziehen. Hast Du die Zeile geändert?
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 06.03.2017
Version(en): 2007
Hallo Stefan, ja, habe deinen Code kopiert und in den vorhanden eingefügt.
Grüße Mario
Registriert seit: 06.03.2017
Version(en): 2007
Hallo, ich habe mal die betreffenden Tabellen aus meiner Datei rauskopiert. Ich hoffe so ist es verständlicher.
Es geht nur um die 10 Indexverbindung zwischen diesen beiden Tabellen. Der Index der jetzt nichts mehr anzeigt ist dafür unwichtig.
Grüße Mario
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Mario,
er verweist auf eine externe Datei. Ergo gibt er da schon eine Fehlermeldung aus.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 06.03.2017
Version(en): 2007
Hallo, die ist aber normalerweise nicht extern. Das richtige Dokument besteht aus knapp 20 Sheets, ich hab halt nur die 2 relevanten rauskopiert.
Und die jetzt auf die externe gehn sollen auch nicht angesprochen werden. Es geht nur um die Zeilen die auf die vorhandene "Lieferungen" verweisen.
Grüße Mario
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
:s :22:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Variablendeklaration - Range
Dim rngCell As Range, strCell As String, strSheet As String
'Wenn die Klickzelle M5. M6 oder M11 ist, dann
If Target.Address = "$M$5" Or Target.Address = "$M$6" Or Target.Address = "$M$11" Then
'Zelladresse anhand Formel ermitteln
strCell = Application.Evaluate("=ADDRESS(ROW(" & Replace(Range(Target.Address).Formula, "=", "") & "),COLUMN(" & Replace(Range(Target.Address).Formula, "=", "") & "))")
'Blattauwahl entsprechend gewaehlter Zeile
Select Case Target.row
'Bei Zeile 5
Case 5: strSheet = "Termineingabe"
'Bei Zeile 6 und 11
Case 6, 11: strSheet = "Lieferungen"
'Ende Blattauwahl entsprechend gewaehlter Zeile
End Select
'Zelle zuweisen
Set rngCell = Sheets(strSheet).Range(strCell)
'Meldung mit Adresse ausgeben
'Dim myValue As Variant
'myValue = InputBox("Give me some input")
'rngCell = myValue
MsgBox rngCell.Address 'hier die Inputbox
'Ende Wenn die Klickzelle M5. M6 oder M11 ist, dann
End If
'Ende Eingabemodus
Cancel = True
End Sub
Gruß Stefan
Win 10 / Office 2016