Inputbox folgt Index
#11
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
Top
#12
Hallo Stefan,

ich muss leider so dumm nachfragen, wo kommt dein Code hin? In die Inputbox? Als Ergänzung in Andre´s Code?
Top
#13
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
Top
#14
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.
Top
#15
Hallo Mario,

kann ich nicht nachvollziehen. Hast Du die Zeile geändert?
Gruß Stefan
Win 10 / Office 2016
Top
#16
Hallo Stefan, ja, habe deinen Code kopiert und in den vorhanden eingefügt.
Top
#17
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.
Top
#18
Hallo Mario,

er verweist auf eine externe Datei. Ergo gibt er da schon eine Fehlermeldung aus.
Gruß Stefan
Win 10 / Office 2016
Top
#19
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.
Top
#20
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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste