Microsoft Excel

Herbers Excel/VBA-Archiv

FileDialog - Tabellenblatt mit ansprechen


Betrifft: FileDialog - Tabellenblatt mit ansprechen
von: Jahn
Geschrieben am: 13.12.2018 09:55:17

Hallo zusammen,

hoffe mir kann jemand helfen.

Ich versuche momentan mithilfe des FileDialog einen SVerweis auf eine damit ausgewählte Arbeitsmappe einzufügen.

Das funktioniert auch soweit. Das Problem ist aber das er mich beim einfügen des SVerweises mich dann immer noch nach dem Tabellenblatt frägt auf das er sich beziehen soll.

Nachdem ich das Beispiel unten ca. noch 10x wiederholen will, ist es sehr unpraktisch noch jedes mal das Tabellenblatt zu bestätigen.

Gibt es eine Möglichkeit das ich den Tabellenblatt Namen gleich in den Code mit einbaue oder er sich meine Auswahl wenigstens merkt?

    Dim sFile As String
    Dim LZeile As Integer

    LZeile = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    

    With Application.FileDialog(msoFileDialogOpen)
           If .Show = -1 Then
               sFile = .SelectedItems(1)
              Else
                  MsgBox "Kein File ausgewählt." & vbCr & "Makro wird beendet.", vbCritical
              Exit Sub
           End If
    End With


    With Range("H7", "H" & LZeile)
        .FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-6],'" & sFile & "'!C2:C9,8,FALSE)-RC[-7],"""")"
    End With

Danke im Voraus für eure Hilfe

Viele Grüße,
Jahn

  

Betrifft: AW: FileDialog - Tabellenblatt mit ansprechen
von: Rudi Maintaire
Geschrieben am: 13.12.2018 11:59:40

Hallo,
.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-6],'" & sFile & "Tabelle1'!C2:C9,8,FALSE)-RC[-7],"""")"

Gruß
Rudi


  

Betrifft: AW: FileDialog - Tabellenblatt mit ansprechen
von: Jahn
Geschrieben am: 13.12.2018 12:14:53

Hallo Rudi,

danke, aber das mag er nicht.

Es ploppt dann wieder das Dialogfenster zum Öffnen der Datei auf und dann kommt wieder das Fenster zum Auswählen des Tabellenblattes.

Der SVerweis führt das Tabellenblatt dann auch doppelt auf. (Funktioniert aber noch)

=WENNFEHLER(SVERWEIS(B7; 'F:\Business Analysis\01. Auswertungen\1. Topseller\2018\Global\[Retail_Topseller 2018-2 CO+NI_CC, SS, KB, LB, WA_10.08. - 30.11.2018.xlsxCC]CC'!$B:$I; 8;FALSCH)-A7;"")

Gruß,
Jahn


  

Betrifft: AW: FileDialog - Tabellenblatt mit ansprechen
von: Rudi Maintaire
Geschrieben am: 13.12.2018 12:32:13

Hallo,

  Dim sFile As String
  Dim LZeile As Integer
  Dim arrTmp
  LZeile = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
  
  With Application.FileDialog(msoFileDialogFilePicker)
    If .Show = -1 Then
      sFile = .SelectedItems(1)
    Else
      MsgBox "Kein File ausgewählt." & vbCr & "Makro wird beendet.", vbCritical
      Exit Sub
    End If
  End With
  
  arrTmp = Split(sFile, "\")
  arrTmp(UBound(arrTmp)) = "[" & arrTmp(UBound(arrTmp)) & "]"
  sFile = Join(arrTmp, "\")
  With Range("H7", "H" & LZeile)
    .FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-6],'" & sFile & "CC'!C2:C9,8,FALSE)-RC[-7],"""")"
  End With



  

Betrifft: AW: FileDialog - Tabellenblatt mit ansprechen
von: Jahn
Geschrieben am: 13.12.2018 12:47:21

Danke für die Mühe.

Allerdings ist der Link zur Datei jetzt nicht mehr im SVerweis, woraufhin er nicht mehr funktioniert.

=WENNFEHLER(SVERWEIS(B7;CC!$B:$I;8;FALSCH)-A7;"")


    Dim sFile As String
    Dim LZeile As Integer
    Dim arrTmp
    

    LZeile = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
    

    With Application.FileDialog(msoFileDialogFilePicker)
        If .Show = -1 Then
            sFile = .SelectedItems(1)
        Else
            MsgBox "Kein File ausgewählt." & vbCr & "Makro wird beendet.", vbCritical
            Exit Sub
        End If
    End With

    arrTmp = Split(sFile, "\")
    arrTmp(UBound(arrTmp)) = "[" & arrTmp(UBound(arrTmp)) & "]"
    sFile = Join(arrTmp, "\")


    With Range("H7", "H" & LZeile)
        .FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-6],'" & sFile & "CC'!C2:C9,8,FALSE)-RC[-7],"""")"
    End With



  

Betrifft: AW: FileDialog - Tabellenblatt mit ansprechen
von: Rudi Maintaire
Geschrieben am: 13.12.2018 13:05:35

kann nicht sein.
aus "c:\temp\test.xlsx"
wird mit
arrTmp = Split(sFile, "\")
arrTmp(UBound(arrTmp)) = "[" & arrTmp(UBound(arrTmp)) & "]"
sFile = Join(arrTmp, "\")

"c:\temp\[test.xlsx]"

In deiner Formel fehlt der Dateiname.

Gruß
Rudi


  

Betrifft: oder hast du einen Mac?
von: Rudi Maintaire
Geschrieben am: 13.12.2018 13:06:30




  

Betrifft: AW: oder hast du einen Mac?
von: Jahn
Geschrieben am: 13.12.2018 13:17:41

Habs nochmal neu reinkopiert und jetzt gings. Da muss vorhin irgendwas schiefgelaufen sein beim kopieren.

Vielen Dank für die Hilfe :) Das ist Perfekt so!

Grüße,
Jahn