Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Dateien per Listenfeld öffnen?


Betrifft: Dateien per Listenfeld öffnen? von: Peter Weber
Geschrieben am: 07.02.2018 15:08:51

Hallo Zusammen,

in einem Listenfeld habe ich die Namen a,b,c,usw.
Wenn ich nun z.B. b im Listenfeld aktiviere soll eine Exceldatei die z.B unter C:\test\BLA\dateiX.xls automatisch geöffnet werden.

Geht so etwas?

  

Betrifft: was für ein Listenfeld? owT von: Rudi Maintaire
Geschrieben am: 07.02.2018 15:34:39




  

Betrifft: AW: was für ein Listenfeld? owT von: Peter Weber
Geschrieben am: 07.02.2018 16:21:19

Hallo Rudi,

in der Celle C6 befindet sich ein Listenfeld. Wenn ich hier z.B. b auswähle, dann soll eine Exceldatei geöffnet werden. Irgendwie müsste es so aussehen aber ich habe keine Idee wie die Lösung aussehen könnte. Schon beim Auslesen des Textes aus der Gültigkeitsliste verlassen mich meine VBA-Kenntnisse.

'**********************************************************************************
' Datei öffnen
'**********************************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)

Dim strFilePath As String

If Target.Address = "$C$6" Then

Name = "???" 'hier müsste der Name aus der Gültigkeitslise übernommen werden

    If Name = "b" Then
        strFilePath = "C:\test\BLA\dateiX.xls"
        ThisWorkbook.FollowHyperlink (strFilePath)
   
    End If
End Sub

LG, Peter


  

Betrifft: AW: was für ein Listenfeld? owT von: Rudi Maintaire
Geschrieben am: 07.02.2018 16:55:32

Hallo,
beim Auslesen des Textes aus der Gültigkeitsliste
Musst du ja auch nicht. Der Zellinhalt reicht doch.

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim strFilePath As String
  
  If Target.Address = "$C$6" Then
    Select Case Target
      Case "b": strFilePath = "C:\test\BLA\dateiX.xls"
      Case "c": strFilePath = "C:\test\BLA\dateiY.xls"
      'etc
    End Select
    If strFilePath <> "" Then Workbooks.Open strFilePath
  End If
End Sub

Gruß
Rudi


  

Betrifft: AW: was für ein Listenfeld? owT von: Peter Weber
Geschrieben am: 07.02.2018 16:56:06

Hallo Rudi,

habe schon mal eine Lösung erstellt. So funktioniert es schon mal. Alles andere ist Kosmetik

'**********************************************************************************
' Datei öffnen in einem Listenfeld
'**********************************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)

Dim strFilePath As String

If Target.Address = "$B$6" Then

    DistName = Cells(6, 2)
    
    '-----------------------------------------------------------------------
    'Zeile finden in dem sich das erste Produkt befindet
    '-----------------------------------------------------------------------
    With Sheets("Links")
    
        lz = .Cells(Rows.Count, 2).End(xlUp).Row         'letzte Zeile in Alle_Umsätze
        
        Text = DistName
        Set c = .Range("B2:" & "B" & lz).Find(Text, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            DistZ = c.Row                        'erste Produktzeile
            Else
           MsgBox "Die Zeile -Produkte- wurde nicht gefunden"
           Exit Sub
        End If
        Distordner = .Cells(DistZ, 3)
        DistRoadmap = .Cells(DistZ, 4)
        strFilePath = Distordner & DistRoadmap
    End With

        ThisWorkbook.FollowHyperlink (strFilePath)
    End If
End Sub
Trotzdem, vielen Dank, dass du dir meine Problemstellung angeschaut hast und herzlich Dank auch für Lösungen und Tips bei vorhergingen VBA-Problemen.

LG, Peter


Beiträge aus dem Excel-Forum zum Thema "Dateien per Listenfeld öffnen?"