Zum Inhalt springen

Zugriff von Tabelle1 auf Tabelle2 (Excel Makro VBA)


PelzigesTierchen

Empfohlene Beiträge

Hallo,

ich habe mal wieder ein Problem mit meinem Excel Tool.

Wie kann ich den Subs denn beibringen dass alle Aktionen immer in einer zweiten Tabelle ausgeführt werden?

Also ich habe die Tabelle1 und eine Tabelle2. Aus Tabelle1 wird ein Wert ausgelesen, dieser wird dann in der Tabelle2 verwendet und dort werden damit dann berechnungen durchgeführt.

Mein Code dazu sieht so aus:

mname = Tabelle1.Cells(11, 6) ' Zusatz zur Logfile bsp. Logfile1.log

With ActiveSheet.QueryTables.Add(Connection:= _

"TEXT;" & Excel.ActiveWorkbook.Path & "\Logfile" & mname & ".log" _

, Destination:=Sheets("Tabelle2").Range("A1"))

...

Nun meckert VBA aber dauernd was von wegen ungültiger Prozeduraufruf ungültiges Argument...

Wo liegt denn mein (Denk-)Fehler?

Danke schon mal für alle Tipps und Lösungen.

Gruß,

Micha.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von PelzigesTierchen

mname = Tabelle1.Cells(11, 6) ' Zusatz zur Logfile bsp. Logfile1.log

With ActiveSheet.QueryTables.Add(Connection:= _

"TEXT;" & Excel.ActiveWorkbook.Path & "\Logfile" & mname & ".log" _

, Destination:=Sheets("Tabelle2").Range("A1"))

kleine Frage... was willst du denn eigentlich machen?

ich werd aus dem QueryTables nicht wirklich schlau :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Rotekugel,

wenn ich dir jetzt sage was ich genau machen will, dann schreib ich hier die Doku zu meinem Tool rein ;) kann nen ganzes Weilchen dauern

Aber im wesentlichen folgendes:

Ich habe eine Logfile die mittels eines Eingabeformulars (Tabelle1) spezifiziert wird (Logfile1, Logfile2, Logfile3, usw...). diese Logfile soll ein eine andere Tabelle (Tabelle2) eingelesen werden.

Was das mit den QueryTables auf sich hat, da bin ich überfragt, denn ich zeichne erst alles mit einem Makro auf und passe das dann an meine Anforderungen an.

Keine Ahnung also was die QueryTables macht ;) (Wie gesagt kein wirklichen Plan von VB und/oder VBA)

Gelöst hab ich das nun auf folgende Art und weise:

mname = tblEingabe.Cells(11, 6)

With tblRechnen.QueryTables.Add(Connection:= _

"TEXT;" & Excel.ActiveWorkbook.Path & "\Logfile" & mname & ".log" _

, Destination:=Sheets("Berechnungen").Range("A1"))

.Name = "Logfile"

...

das heisst mname wird aus tblEingabe ein Wert zugewiesen (das 1 2 3 usw für die jeweilige Logdatei)

Dann gehts weiter auf der Tabelle tblRechnen wo die ganzen Werte aus der Logdatei eingelesen werden und in die Tabelle geschrieben werden.

Somit hab ich das Problem eigentlich gelöst (oder umgangen ;) )

Wenn du ne alternative hast schau ich mir die gerne an, kann mir gut denken das mein Weg schmerzen bei Programmierern erzeugt :D aber dazu bin ich FiSi und nicht AE

Gruß und Dank,

Micha

Link zu diesem Kommentar
Auf anderen Seiten teilen

(In Excel)

Makro aufzeichen starten:

Daten -> externe Daten importieren

Dort dann die Lofile suchen

Feste Werte anklicken

Spalteneigenschaften bestimmen

Fertigstellen

;)

Und das Stück Code da oben ist die modifizierte Version der ersten Zeile dieses Makros.

Das komplette Ding sieht so aus:

With tblRechnen.QueryTables.Add(Connection:= _

"TEXT;" & Excel.ActiveWorkbook.Path & "\Logfile" & mname & ".log" _

, Destination:=Sheets("Berechnungen").Range("A1")) 'geändert relativer Pfad

Sheets("Berechnungen").Select

.Name = "Logfile"

.FieldNames = True

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.RefreshStyle = xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.TextFilePromptOnRefresh = False

.TextFilePlatform = 850

.TextFileStartRow = 1

.TextFileParseType = xlFixedWidth

.TextFileTextQualifier = xlTextQualifierDoubleQuote

.TextFileConsecutiveDelimiter = False

.TextFileTabDelimiter = True

.TextFileSemicolonDelimiter = False

.TextFileCommaDelimiter = False

.TextFileSpaceDelimiter = False

.TextFileColumnDataTypes = Array(2, 9, 5, 9, 9, 1, 9, 1, 1)

.TextFileFixedColumnWidths = Array(3, 1, 8, 6, 1, 7, 1, 7)

.TextFileDecimalSeparator = "." 'US-schreibweise von Dezimalwerten WICHTIG!!!

.TextFileThousandsSeparator = "," 'US-schreibweise von 100er Trennung WICHTIG!!!

.TextFileTrailingMinusNumbers = True

.Refresh BackgroundQuery:=False

End With

Also im wesentlichen ist das alles was mir das oben genannte Makro ausspuckt.

Gruß,

Micha.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...