Tagi na forum.

Windows 14206 SQL Server 2132
sieci 6796 Windows XP 1921
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

EXCEL to XML pomoc z VBA

marcinko85 2011-10-20 13:26:54
0
avatar
 
 

Witam ....

mam problem z VBA .. mam kod ściągnięty  z netu który działa tak jak chce ... tzn z pliku excel tworzy mi plik xml za pomocao macro Exelowego

Tylko jak mozna zmienic ten kod żeby nie przeba było podawać zakresu komórek tzn zeby pobierał dane z przediału od A2 do E xxx

gdzie A2 to pierwsza komorka danych a Exxx to osatatnia przy załozeniu że rekordów moze byc xxx. Chodzi o to zeby nie musisc sprawdzac ilości rekordow zeby wyeksportowac calosc

wzorowałem sie na: http://www.meadinkent.co.uk/xl_xml1.htm

a kod VB wygląda mniej wiecej tak: http://www.meadinkent.co.uk/myxml/XL_to_XML.txt

 

P.S. Chyba ze macie inny pomysl na wyeksporowanie przez uzytkownika zewnętrznego xml-owego pliku z bazy sq-elowej??
 


tagi: Excel 2010   SQL   XML   VBA


VBATools  2011-10-20 14:43:49 #1
0
avatar Ekspert WSS
 
 

Jeśli chodzi o poprawianie kodu jaki załaczyłeś.

 

W kroku nr2 zamiast "A3:D3"

Replace(Range(Cells(1, 1), Cells(1, Cells(Columns.Count).End(xlToLeft).Column)).Address, "$", "")


W kroku nr3 zamiast "A4:D8"

Replace(Range(Cells(1, 1), Cells(1, 1).SpecialCells(xlLastCell)).Address, "$", "")

 

Należy tylko pamiętać że ilość wierszy dla łańcuchów ma być równa z tablica danych!

Pow kod nie ma obsługi błędu w przypadku wciśnięcia Anuluj !!! (mała niedoróbka producenta)

 

Co do wyciągania danych z MySQL to może administrator przygotować ci pobranie pliku względem parametrów jakie określisz w Urlu


If Help = True Then Button_Plus.Value = True 
Pozdrawiam OShon VBATools.pl, moderator WSS.pl | CodeGuru.pl | Outlook.pl | ExcelForum.pl, Business Developer Veracomp SA

marcinko85  2011-10-20 15:04:17 #2
0
avatar
 
 
@VBATools a jak dokładnie zniemic ten kod bo mi wywala cos błędy non stop :/

VBATools  2011-10-20 15:27:15 #3
0
avatar Ekspert WSS
 
 

W miejscu adresów (są różne wiec je znajdziesz w kodzie), a które się podpowiadają w oknach inputbox należy zastąpić linijką jaką ci podałem pow.

W tedy ich wywołanie określi maxymalną wielkość nagłówka w pierwszym wierszu (niezbędne dla określeniu nazw łańcuchów) oraz przy następnym wywołaniu określi maksymalny użyty obszar danych arkusza.

O ile ilość wierszy nagłówka jest >= wierszy w tablicy to pozostaje po ich wyświetleniu jedynie je potwierdzić enterem.

Inną sprawą jest fakt całkowitego pozbycia się zapytań. W tym celu do zmiennych przypisujesz stałe wartości.


If Help = True Then Button_Plus.Value = True 
Pozdrawiam OShon VBATools.pl, moderator WSS.pl | CodeGuru.pl | Outlook.pl | ExcelForum.pl, Business Developer Veracomp SA

marcinko85  2011-10-20 17:19:42 #4
0
avatar
 
 

czy moglbys zmodyfikowac to w pliku bo ja juz nierwow do tego nie mam

http://dl.dropbox.com/u/11462445/Stany.xls


marcinko85  2011-10-20 18:45:21 #5
0
avatar
 
 

jakies pomysly..?? :/


VBATools  2011-10-20 19:46:38 #6
1
avatar Ekspert WSS
 
 

Nie wiem dlaczego miałbyś tracić nerwy - przecież ty w tym pliku nic nie zrobiłeś!

Dałem ci na tacy dwie linijki kodu, które miałeś wkleić zamiast satałych adresów.

Ich konstrukcja pozwala automatycznie dobrać zakres przyszłego XMLa do danych jakie są zawarte w arkuszu.

 

Druga sprawa to fakt iż chcesz osadzać plik wynikowy w głównym drzewie napędu systemowego - to może jest istotą twojego problemu i objawieniu błędu. W nowych systemach jest to zabronione.

Zmieniam więc ścieżkę na "C:\Temp\", gdzie jest on automatycznie tworzony.

Plik masz gotowy, więc jak odświeżysz dane z qwerendy webowej mechanizm powinien sam dopasować wielkość tablicy exportu

 


If Help = True Then Button_Plus.Value = True 
Pozdrawiam OShon VBATools.pl, moderator WSS.pl | CodeGuru.pl | Outlook.pl | ExcelForum.pl, Business Developer Veracomp SA

marcinko85  2011-10-20 20:12:02 #7
0
avatar
 
 

WIelkie dzięki ... po przeanalizowaniu tego VBA "Twojego" juz wiem czemu mi sie krzaczyłoteraz powinno być ok ...

jeszcze raz dzięki :) 


Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony