ich bin kein VBA crack - das vorweg. aber ich habe die letzten tage einiges erarbeitet. aber jetzt weiss ich nicht so recht weiter.
problemstellung:
ich habe ein excel, in das ich jeweils eine neue zeile per makro reinschreibe. die daten kommen aus dem zwischenspeicher (-> letztendlich aus einem html kopiert).
aber zum problem:
danach gibt es die letzten beiden zellen pro zeile, die über ein vlookup in eine andere datei entsprechend die zellen füllen oder nicht !
nur ist der dateiname des vloookup-bezuges nicht fix, sonder heisst "highscore_tagesdatum (im format yyyymmdd).xls"
diesen wollte ich bei schritt 1 per inputbox abfragen.
dann wird dieses excel (makro) an andere verschickt, die diese "highscore_yyyymmdd.xls" in einem anderen verzeichnis haben.
dazu wollte ich schritt 2 anwenden, um den pfad herauszukriegen.
wenn ich rauskriegen kann wie der korrekte pfad bequem ermittelt werden kann, damit das vlookup arbeitet, wäre mir sehr geholfen.
gruss
menion
Sub Highscorevlookup()
Dim Dateiname, fs
Dim i%
Dim LetzteZelle As Long
Dim Ordnerpfad
Dim dat
Dim Filename As String
'----------Sub Dateiname erfragen---------------------------
Filename = InputBox(prompt:="Bitte Dateinamen eingeben - z.B. Highscore_20071126.xls")
If Filename = "" Then
Application.DisplayAlerts = False
ActiveWorkbook.Close
Else
'----------Sub Pfad suchen------------------------------------
Set dat = Application.FileDialog(msoFileDialogFolderPicker)
With dat
.Title = "Bitte nur Laufwerkspfad (z.B. C:) der Highscore.xls wählen --> dann OK"
.InitialFileName = "c:\" 'oder was auch immer
If .Show = -1 Then
Ordnerpfad = .SelectedItems(1)
End If
End With
'----------Sub FileSearch & open----------------------------
Set fs = Application.FileSearch
With fs
.LookIn = Orderpfad '### Verzeichnis eingeben ###
.Filename = Filename '### nach Filename suchen ###
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Dateiname = .FoundFiles(i)
If Not Dateiname = fs.LookIn Then
Application.Workbooks.Open Dateiname '### Alle gefundenen Dateien öffnen ###
Workbooks("xyz.xls").Activate
'--ich fülle die vlookup formel aus "BT2" & "BU2" einfach auf--
LetzteZelle = cells(Rows.Count, 1).End(xlUp).Row
Range("BT2").AutoFill Destination:=Range("BT2:BT" & LetzteZelle)
Range("BU2").AutoFill Destination:=Range("BU2:BU" & LetzteZelle)
Application.Workbooks(Filename).Close
End If
Next i
Else
MsgBox "Keine Highscore Datei vorhanden"
End If
End With
Sheets("Tabelle1").Select
LetzteZelle = cells(Rows.Count, 1).End(xlUp).Row + 1
cells(LetzteZelle, 1).Select
ActiveWorkbook.Save
End If
End Sub
da ich hier zwei subs versucht habe zusammen zu schmeissen, bin ich vllt. mit den schleifen und end ifs durcheinander geraten ?
hilfe sehr willkommen.
grüsse
menion