Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zugriff von Tabelle1 auf Tabelle2 (Excel Makro VBA)

Empfohlene Antworten

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.

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:

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

ich frag mich nur noch wie du das Makro aufgezeichnet hast... also welche knöpfchen du dir da zusammengeklickt hast :confused:

(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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.