MS Excel - externé údaje z *.CSV

"Rady nielen z Porady" - Tipy a triky, "how-to ...", nápady a riešenia k aplikáciam MS Office
pre všetky verzie až po MS Office 2010

Re: MS Excel - externé údaje z *.CSV

Poslaťod Milan25 » 28.10.2015, 16:28

Nie, zlyhalo to na tom riadku activeworksheet hned, aj som sa nastavil na hárok, kde sú importované dáta, ale nepomohlo.

To som uviedol pre príklad, takže stačí mi len názov servera vymeniť?
Áno, súbor CSV je dostupný na novom serveri, aj cesta je k nemu správna, len ju nejak dostať do Excelu :)

Ja si myslím, že Váš kód je správny, len zatiaľ ho blokuje VB na začiatku, neviete prečo?
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Palo-admin » 28.10.2015, 16:32

A nie sú tam nejaké skryté hárky ?

Potom sa to dá ošetriť takto:

Kód: Vybrať všetko
Sub ZmenCestuPreCSV_2()
    Dim i, j
         For i = 1 To ActiveWorkbook.Worksheets.Count
            If ActiveWorkbook.Worksheets(i).Visible = True Then
                ActiveWorkbook.Worksheets(i).Select
                For j = 1 To ActiveSheet.QueryTables.Count
   
                    With ActiveSheet.QueryTables(j) 'xQT
                   
                        If InStr(1, .Connection, "C:\tmp\xx\") <= 0 Then ' ak este nebola zmena
                            .Connection = Replace(.Connection, "C:\tmp\", "C:\tmp\xx\", 1, -1, 1)
                        End If
   
                        .Refresh
                    End With
                Next j
            End If
         Next i
End Sub
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Milan25 » 29.10.2015, 09:29

Vyskúšal som aj túto úpravu, teraz makro prebehlo v poriadku, ale stále zostáva v externých údajoch v nastaveniach táto pôvodná cesta: \\scvtabas01\pcdaten\P_AUO_EXPORT.CSV

Je možné, že to nereaguje na makro?

Použil som tento kód:

If InStr(1, .Connection, "\\scvtabas01\pcdaten\P_AUO_EXPORT.CSV") <= 0 Then ' ak este nebola zmena
.Connection = Replace(.Connection, "\\scvtabas01\pcdaten\P_AUO_EXPORT.CSV", "\\scvterpsk01\pcdaten\P_AUO_EXPORT.CSV", 1, -1, 1)
End If
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Palo-admin » 29.10.2015, 11:08

No lebo je prehodené čo, začo

Kus kódu má byť takto:
Kód: Vybrať všetko
If InStr(1, .Connection, "\\scvterpsk01\pcdaten\P_AUO_EXPORT.CSV") <= 0 Then ' ak este nebola zmena
.Connection = Replace(.Connection, "\\scvtabas01\pcdaten\P_AUO_EXPORT.CSV", "\\scvterpsk01\pcdaten\P_AUO_EXPORT.CSV", 1, -1, 1)
End If
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Milan25 » 29.10.2015, 11:26

výborne, to je ono, prepojenie na nový server to vykonalo, ale import prebehol akoby len načítanie obyčajného textu, pozrite sem ako vypadá excel:

tterm;tkuliname;art^nummer;art;remge;total;kstelle;art^ytprodgrp;art^abtlg^name;kopf;tzeich;
31.12.2015;getrag;10631;HSS4667046410 ; 1 ; 9.10; 21110;Getrag;Department DRIVETRAIN; 200023;CAMAJ;
31.12.2015;getrag;19201;HSS4817083200 ; 1 ; 0.00; 21110;Getrag;Department DRIVETRAIN; 202803;rv;
31.01.2016;getrag;16182;HSS4817068400 ; 2 ; 56.84; 21110;Getrag;Department DRIVETRAIN; 203234;rv;

Po importe nezachoval pôvodné nastavenia importu, ale CSV pridal ako obyčajný text s oddeľovačmi.
Dá sa s tým niečo spraviť, aby si zachoval pôvodné nastavenia importu?
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Palo-admin » 29.10.2015, 11:55

A bol použitý ten posledne upravený kód s With ActiveSheet.QueryTables(j) ?
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Milan25 » 29.10.2015, 12:10

Áno, presne tento Váš kód som použil, makro prebehlo v poriadku, celý príkaz, len zlyhal na tom nastavení pôvodného importu.
Skúste si pozrieť, či som niečo zle nezadal:

Sub ZmenCestuPreCSV_2()
Dim i, j
For i = 1 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Worksheets(i).Visible = True Then
ActiveWorkbook.Worksheets(i).Select
For j = 1 To ActiveSheet.QueryTables.Count

With ActiveSheet.QueryTables(j) 'xQT

If InStr(1, .Connection, "\\scvterpsk01\pcdaten\P_AUO_EXPORT.CSV") <= 0 Then ' ak este nebola zmena
.Connection = Replace(.Connection, "\\scvtabas01\pcdaten\P_AUO_EXPORT.CSV", "\\scvterpsk01\pcdaten\P_AUO_EXPORT.CSV", 1, -1, 1)
End If

.Refresh
End With
Next j
End If
Next i
End Sub
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Palo-admin » 29.10.2015, 13:15

Žiaľ je to tak, že pri zmene Connection stringu rozhasí Excel definíciu aktuálneho pripojenia na CSV
a pri refresh dá štruktúru dát, akoby nebolo nič nastavené.

Hľadal som v iných zdrojoch, ale žiadne jednoduché riešenie nie je.

Jediná možnosť je, odchytiť si aktuálne nastavenia spracúvaného pripojenia
napr xx = .TextFileSemicolonDelimiter
a tie potom nastaviť pred menou Connection a spustením Refresh

P.
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Milan25 » 29.10.2015, 14:00

Ďakujem pekne za Váš čas a ochotu, ale myslel som si, že to nebude jednoduché, keď v okne nastavení sa cesta nedá ručne zmeniť.
Takisto som prechádzal aj zahraničné weby a nenašiel som riešenie, jedine pri staršom exceli bolo youtube video, kde sa spomínali registre vo windowse a tam zmenu, môže byť ešte takáto cesta?
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Re: MS Excel - externé údaje z *.CSV

Poslaťod Milan25 » 29.10.2015, 15:15

Práve sme našli jedno riešenie "medzi tým", pri nastaveniach externých údajov, keď zakliknete možnosť "Zobraziť výzvu na zadanie názvu súboru pri obnovení" sa Excel spýta, kde sa nachádza pôvodný súbor.
Vtedy som vybral nový server, presnú cestu a import údajov zostal zapamätaný, teda všetky externé údaje sa načítali bez zmeny.
Je to najrýchlejšie riešenie aké som našiel, tak snáď pomôže aj iným ľuďom :)
Milan25
 
Príspevky: 54
Registrovaný: 30.07.2010, 10:28
Udelené poďakovania: 2 krát
Prijaté poďakovania: 0 krát

Predchádzajúci

Späť na Word, Excel, PowerPoint, Outlook, Access

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 2 hostia

cron