Supportnet / Forum / Datenbanken
Makro aus Access Modul auf importiertes Excel Sheet anwenden
Frage
Hallo!
In meiner MS-Access Datenbank importiere ich mit Hilfe eines geschrieben Moduls, verschiedene Excel Tabellen. Das klappt auch wunderbar mit dem Befehl
DoCmd.TransferSpreadsheet acImport
Das jeweilige Excel Sheet müsste jedoch noch angepasst werden: leerzeichen entfernen..etc...ungewünschte spalten entfernen..
Die dazu passenden Makros habe ich in Excel schon geschrieben, aber wie bekomme ich es hin, dass diese makros auf das Excel sheet angewandt werden, wenn ich die jeweilige Excel Datei aus access heraus importiere?
Das ganze soll alles aus dem Access Modul geschehen, die die excel files monatlich neu herauskommen!
Für jede Hilfe wäre ich dankbar!
doehli20
Antwort 1 von piano
Hallo
Könnte etwa so laufen:
Du musst nur noch den Verweis auf die Excel-Library einrichten.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Könnte etwa so laufen:
Function ...
Dim ExcelDatei As String
Dim ExcelName As String
Dim tabelle As Object
´ .....
ExcelDatei = ExcelPfad & xExcelName
If Not FileExist(ExcelDatei) Then
DisplayMessage ("Excel-Datei nicht vorhanden !")
Exit Function
End If
Set tabelle = CreateObject("Excel.sheet")
With tabelle.Application
.workbooks.Open FileName:=ExcelDatei
.Visible = False
.ScreenUpdating = False
´ ....
.Range(.cells(Löschzeile, 1), .cells(65536, 255)).SELECT
´.Rows("3:65536").SELECT
.Selection.ClearContents
.cells(Löschzeile, 1).SELECT
´ beliebige Excel-Commands hinter dem Punkt
.ScreenUpdating = True
.Save
´ tabelle.Application.Quit
End with
End Function
Du musst nur noch den Verweis auf die Excel-Library einrichten.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Doehli21
Hallo!
Dein Code klappt wunderbar, ich hab aber dennoch wieder ein Problem. Ich will alle Leerzeichen im Excel Blatt entfernen. Hierzu habe ich den Befehl
.Cells.Value = Application.Trim(.Cells.Value)
verwendet, aber beim Kompilieren kriege ich eine Fehlermeldung "Methode oder Datenobjekt" nicht gefunden. Er findet die Trim Funktion wohl nicht....
Was kann man da machen?
Wenn ich den Code in Excel selber eingebe, dann geht es"!
Danke im Voraus
doehli21
Dein Code klappt wunderbar, ich hab aber dennoch wieder ein Problem. Ich will alle Leerzeichen im Excel Blatt entfernen. Hierzu habe ich den Befehl
.Cells.Value = Application.Trim(.Cells.Value)
verwendet, aber beim Kompilieren kriege ich eine Fehlermeldung "Methode oder Datenobjekt" nicht gefunden. Er findet die Trim Funktion wohl nicht....
Was kann man da machen?
Wenn ich den Code in Excel selber eingebe, dann geht es"!
Danke im Voraus
doehli21
Antwort 3 von piano
Hallo
oder
Gruss piano
Zitat:
.Cells.Value = Application.Trim(.Cells.Value)
ist ja auch falsch!.Cells.Value = Application.Trim(.Cells.Value)
.Cells.Value = .Trim(.Cells.Value)
oder
.Cells.Value = Trim(.Cells.Value)
(Access-Trim) sind möglichGruss piano

