AW: Zelle in einer anderen Arbeitsmappe anspringen.
28.05.2004 16:18:23
Christoph
hallo Gerd,
mir ist noch nicht so ganz klar, was du willst. Bei geöffneter Inputbox kannst du meines Erachtens nicht das Workbook (=Datei) wechseln. Natürlich kannst du den Code von einem anderen Workbook aus starten, dafür brauchst du aber den Dateinamen jenes Workbooks dann auch wieder nicht in deinem Code.
Deshalb habe ich nur den Tabellen-Namen und die erste Zelladresse genommen.
Allerdings fehlt wohl noch eine Fallunterscheidung bei meinem bisherigen Code, da je nach Dateiname ein Hochkomma in "Zellbezug" vorkommt oder nicht (Korrektur s.u.)
Um den Wert "50 Euro" in die Zelle: "Sheets(strTab).Range(strZelle)" zu schreiben, ist keine "Selection" notwendig.
Wenn du unbedingt den Dateinamen extrahieren willst, dann zB. mit:
strDat = Mid(Zellbezug, InStr(1, Zellbezug, "[", 1) + 1, _
InStr(1, Zellbezug, "]", 1) - InStr(1, Zellbezug, "[") - 1)
so müsste es laufen:
Gruß
Christoph
Sub Werte_in_andere_Tabelle_eintragen()
Dim Eingabeort As Range
Dim external As Range
Dim Zellbezug As Variant
Dim strTab As String, strZelle As String
Set Eingabeort = Application.InputBox( _
"Bitte auf einem Tabellenblatt die erste Zelle suchen, wo die" & _
"Preise eingetragen werden sollen", Type:=8)
Zellbezug = Eingabeort.Address(, , , True)
If InStr(2, Zellbezug, "'", 1) = 0 Then
strTab = Mid(Zellbezug, InStr(1, Zellbezug, "]", 1) + 1, _
InStr(1, Zellbezug, "!", 1) - InStr(1, Zellbezug, "]", 1) - 1)
Else
strTab = Mid(Zellbezug, InStr(1, Zellbezug, "]", 1) + 1, _
InStr(1, Zellbezug, "!", 1) - InStr(1, Zellbezug, "]", 1) - 2)
End If
If InStr(1, Zellbezug, ":", 1) = 0 Then
strZelle = Mid(Zellbezug, InStr(1, Zellbezug, "$", 1), _
Len(Zellbezug) - InStr(1, Zellbezug, "$", 1) + 1)
Else
strZelle = Mid(Zellbezug, InStr(1, Zellbezug, "$", 1), _
InStr(1, Zellbezug, ":", 1) - InStr(1, Zellbezug, "$", 1))
End If
Sheets(strTab).Range(strZelle) = "50 Euro"
End Sub