Anzeige
Archiv - Navigation
1164to1168
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler in Makro

Fehler in Makro
Wolfi
Hallo zusammen!
hab mir ein Makro, Dank Eurer Hilfe, gebastelt.
Funktioniert, so weit ich es beurteilen kann, auch ganz gut.
Es kommt nur ständig die Fehlermeldung, dass er das "detailed sheet" nicht finden kann.
Hier erstmal mein Makro:
Private Sub CommandButton2_Click()
Dim DatName As String
DatName = Application.GetOpenFilename
Sheets("KW Gesamt").Select
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=DatName" _
_
_
, _
";Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database=""""; _
_
Jet OLEDB:Registry Pa" _
, _
"th="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database   _
_
Locking Mode=0;Jet OLEDB:Global Partial Bulk Op" _
, _
"s=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet  _
OLEDB:Create System Database=False;Jet OLEDB:Enc" _
, _
"rypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact  _
Without Replica Repair=False;Jet OLEDB:SFP=Fa" _
, "lse"), Destination:=Range("A1"))
.CommandType = xlCmdTable
.CommandText = Array("detailed sheet")
.Name = DatName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = DatName
.Refresh BackgroundQuery:=False
End With
Sheets("Jahreswertung").Select
End Sub

Der Hintergrund: Ich habe eine Auswertungsdatei, im Arbeitsblatt "KW Gesamt" liegen die Daten.
Diese muss ich aus einer anderen Exceldatei mit wechselnden Namen einlesen.
die Quelldatei besteht wiederrum aus drei Arbeitsblättern - das betreffende heißt "detailed sheet".
Nur irgendwas ist hier falsch.... ich hab keine Ahnung....
Mein ewiger Dank ist Euch gewiss!
Wolfi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler in Makro
28.06.2010 18:33:49
{Boris}
Hi Wolfi,
völlig ungetestet - ein Schuss ins Blaue:
Array("'detailed sheet'")
Also den Blattnamen in Hochkommata einfassen.
Vielleicht lieg ich aber komplett daneben - daher Frage noch offen.
Grüße Boris
AW: Fehler in Makro
29.06.2010 08:20:38
Wolfi
Servus Boris!
Gute Idee, funzt allerdings ned.
Die ursprüngliche Datei hatte die Hochzeichen, es kam aber trotzdem der gleiche Fehler.
Hier hatte ich ein bisschen rumexperementiert....
Grüßla
Wolfi
AW: Fehler in Makro
29.06.2010 11:50:10
fcs
Hallo Wolfi,
du hast den Dateinamen der geöffneten Datei nicht korrekt in den Connection-String der Datenabfrage eingebaut und der Commandstring war auch nicht korrekt.
Hinweis: die Array-Konstruktion des Makrorecorders sollte man unbedingt in einen String umwandeln. Das wird am Ende übersichtlicher.
Da du scheinbar ein Tabellenblatt-Modul mit Commandbutton-Befehl verwendest, muss du bei der Destination für das Einfügen des Abfrageergebnisses auch den Blattnamen mit angeben.
Gruß
Franz
Private Sub CommandButton2_Click()
Dim DatName As String, sCon As String, sCommand
DatName = Application.GetOpenFilename
Sheets("KW Gesamt").Select
sCon = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";"
sCon = sCon & "User ID=Admin;Data Source=" & DatName & ";"
sCon = sCon & "Mode=Share Deny Write;Extended Properties=""HDR=YES;"";"
sCon = sCon & "Jet OLEDB:System database="""";"
sCon = sCon & "Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";"
sCon = sCon & "Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;"
sCon = sCon & "Jet OLEDB:Global Partial Bulk Ops=2;"
sCon = sCon & "Jet OLEDB:Global Bulk Transactions=1;"
sCon = sCon & "Jet OLEDB:New Database Password="""";"
sCon = sCon & "Jet OLEDB:Create System Database=False;"
sCon = sCon & "Jet OLEDB:Encrypt Database=False;"
sCon = sCon & "Jet OLEDB:Don't Copy Locale on Compact=False;"
sCon = sCon & "Jet OLEDB:Compact Without Replica Repair=False;"
sCon = sCon & "Jet OLEDB:SFP=False"
sCommand = "'detailed sheet$'"
With ActiveSheet.QueryTables.Add(Connection:=sCon, _
Destination:=Sheets("KW Gesamt").Range("A1"))
.CommandType = xlCmdTable
.CommandText = sCommand
.Name = DatName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = DatName
.Refresh BackgroundQuery:=False
End With
Sheets("Jahreswertung").Select
End Sub

Anzeige
AW: Fehler in Makro
29.06.2010 12:13:06
Wolfi
Yeah! Es funzt! Bin begeistert!
Merci!!
Grüße an das aktivste Forum das ich je gesehen hab!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige