Autor
|
Thema: Importieren von Daten aus einer fremden Tabelle (2446 mal gelesen)
|
jonnyw79 Mitglied Student
Beiträge: 67 Registriert: 18.11.2005
|
erstellt am: 05. Mrz. 2007 16:33 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe User! Ich habe folgendes Problem: In eine Excel-Tabelle soll aus einer fremden Tabelle über VBA Daten importiert werden. Da es sich nicht immer um die gleiche fremde Tabelle handelt, soll deren Pfad jedesmal vom Benutzer neu angegeben werden. Die zu importierenden Daten befinden sich meistens an der gleichen Stelle (Zelle), sind aber auch über ein Namenfeld definiert. Frage: Ist grundsätzlich ein Import des jeweiligen Namenfeld mit VBA möglich? Wie wähle ich den Pfad der fremden Datei aus? Vielen Dank für Eure Tipps Gruss JonnyW79 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jonnyw79 Mitglied Student
Beiträge: 67 Registriert: 18.11.2005
|
erstellt am: 05. Mrz. 2007 16:35 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 05. Mrz. 2007 18:00 <-- editieren / zitieren --> Unities abgeben: Nur für jonnyw79
Hallo jonnyw79, auf die Schnelle: ActiveWorkbook.Name --> Name der Mappe ActiveWorkbook.FullName --> Name und Pfad der Mappe (falls gespeichert) Dir könnte auch helfen zu 2) strTW = ThisWorkbook.Name --> DIESE Mappe strAW = ActiveWorkbook.Name --> Aktive Mappe, MUSS nicht gleich DIESE Mappe sein [thedit]Ich meinte oben den Befehl 'Dir' in VBA[/thedit] [thedit2] Hast Du diesen und diesen hier schon entdeckt? Da könnte was Brauchbares dabei sein. Außerdem guckste mal in die VBA-Hilfe zu 'names(.add?)' [/thedit2] HTH, ------------------ Gruß, Frederik [Diese Nachricht wurde von Paulchen am 05. Mrz. 2007 editiert.] [Diese Nachricht wurde von Paulchen am 05. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 05. Mrz. 2007 22:59 <-- editieren / zitieren --> Unities abgeben: Nur für jonnyw79
Hallo Jonny, ein kleiner, möglicher Beispielcode wäre evtl. sowas?:
Code: Sub y() Dim xlWB As Workbook, xlName As name, xlFile As Variant, s$ xlFile = Application.GetOpenFilename("xl-Files (*.xls), *.xls", , "Mappe wählen", , 0) If xlFile <> False Then Set xlWB = Workbooks.Open(xlFile) Else Exit Sub End If For Each xlName In xlWB.Names s = s & xlName.name & " refers to: " & xlName.RefersTo & Chr(13) Next MsgBox s 'oder statisch für: Tabelle1/RangeName: Bereich MsgBox xlWB.Sheets("Tabelle1").Range("Bereich").Address End Sub
HTH, Nancy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jonnyw79 Mitglied Student
Beiträge: 67 Registriert: 18.11.2005
|
erstellt am: 06. Mrz. 2007 09:30 <-- editieren / zitieren --> Unities abgeben:
|
jonnyw79 Mitglied Student
Beiträge: 67 Registriert: 18.11.2005
|
erstellt am: 07. Mrz. 2007 13:46 <-- editieren / zitieren --> Unities abgeben:
Ok Vielen Dank! Das klappt jetzt alles soweit. ICh hätte nur noch eine Frage. Im Moment speichere ich aus der fremden Tabelle den Wert einer bestimmten Zelle. d.h. befindet sich der zu exportierende Wert mal in einer anderen Zeile oder Spalte gibt es ein Problem. Daher wollte ich nicht den Wert der Zelle speichern sondern gleich den Wert des Namenfelds speichern. Ist das möglich? Wie kann man den Wert eines Namenfelds direkt ansprechen? Bsp: Für den Wert der Zelle A10 wurde ein Namenfeld ("Zellenwert") definiert. Wie kann ich nun den Wert von "Zellenwert" über VBA ansprechen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 07. Mrz. 2007 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für jonnyw79
Genauso: Sonst steht da '...Range("A10")' - jetzt schreibste halt '...Range("Zellenwert")'. So kannst Du auch Werte direkt in den benannten Bereich schreiben: 'Range("Zellenwert").Value = 10. ------------------ Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jonnyw79 Mitglied Student
Beiträge: 67 Registriert: 18.11.2005
|
erstellt am: 07. Mrz. 2007 16:47 <-- editieren / zitieren --> Unities abgeben:
|