Microsoft Excel

Herbers Excel/VBA-Archiv

GetOpenFilename

Betrifft: GetOpenFilename von: rag
Geschrieben am: 21.10.2014 12:29:37

Hallo,

Code funktioniert wunderbar, problem ist nur beid er GetOpenFilename...da muss ich die datei zweimal Öffnen...also wird zweimal abgefragt. Ich will es nur einmal!

Sub Vergleichen()
'
' Vergleichen Makro
'

'
Range("K1").Select
ActiveCell.FormulaR1C1 = "Erfasst"
Range("K2").Select
Columns("K:K").EntireColumn.AutoFit
Range("K2").Select
ActiveCell.FormulaR1C1 = ""

Dim var As Variant
ChDrive "C:"
ChDir "C:\Users\Dokumente\Wöchentliche Report\Erfassungslieste"
' Workbooks.Open Filename:= _
' "C:\Users\Z212723\Dokumente\Wöchentliche Report\Erfassungslieste\Erfassungsliste_Solidcore.xlsx" _
' , Origin:=xlWindows

var = Application.GetOpenFilename( _
FileFilter:="Excel-Dateien (*.xls; *.xlsx),*.xls;*.xlsx", _
MultiSelect:=False)

If var <> False Then
Workbooks.Open var, UpdateLinks:=False
End If


ActiveWindow.ActivateNext

Range("K2").Select
ActiveCell.FormulaR1C1 = _
"=COUNTIF(C[-10],[var]Tabelle1!C1)"

  

Betrifft: AW: GetOpenFilename von: fcs
Geschrieben am: 21.10.2014 15:14:00

Hallo rag,

die Syntax für den Einbau des Dateinamens ist falsch, deshalb wird für die Formel nochmals nach einer Datei gefragt.

Meiner Meinung nach ist das "C1" in der Formel auch noch falsch, hier müßte eine einzelne Zelle stehen. Also z.B.: R1C1 für Zelle "A1"

Gruß
Franz

angepasstes Makro:

Sub Vergleichen()
'
  ' Vergleichen Makro
  '
  '
  Range("K1").Select
  ActiveCell.FormulaR1C1 = "Erfasst"
  Range("K2").Select
  Columns("K:K").EntireColumn.AutoFit
  Range("K2").Select
  ActiveCell.FormulaR1C1 = ""
  
  Dim var As Variant, wkb As Workbook, wkbAktiv As Workbook
  Set wkbAktiv = ActiveWorkbook
  ChDrive "C:"
  'ChDir "C:\Users\Dokumente\Wöchentliche Report\Erfassungslieste"
  ' Workbooks.Open Filename:= _
  ' "C:\Users\Z212723\Dokumente\Wöchentliche Report\Erfassungslieste\Erfassungsliste_Solidcore. _
xlsx" _
  ' , Origin:=xlWindows
  
  var = Application.GetOpenFilename( _
        FileFilter:="Excel-Dateien (*.xls; *.xlsx),*.xls;*.xlsx", _
        MultiSelect:=False)
  
  If var <> False Then
      Set wkb = Workbooks.Open(var, UpdateLinks:=False)
  Else
    Exit Sub
  End If
    
    
  wkbAktiv.Activate
  
  Range("K2").Select
  ActiveCell.FormulaR1C1 = "=COUNTIF(C[-10],'[" & wkb.Name & "]Tabelle1'!C1)"
  
  Set wkb = Nothing: Set wkbAktiv = Nothing
End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "GetOpenFilename"