< návrat zpět
MS Excel
Téma: VBA - načtení dat ze souboru s proměnným názvem
Zaslal/a Fantasyk 16.1.2022 21:30
Zdravím,
chtěl bych se zeptat, jestli někdo neví jak lze otevřít jiný .xls a nahrát data do původního.
Momentálně to řeším přes:
Application.FileDialog(msoFileDialogFilePicker)
, ale chtěl bych, aby to otevřelo pokaždé soubor s názvem:
"stops_XXXXXXXXXXX_XXXXXXXX.xls" (v X je obsaženo den a čas stáhnutí souboru, ale je pokaždé jiný.
Díky za jakokoliv radu
Teď mám kód:
Active = ActiveSheet.Name
With Application.FileDialog(msoFileDialogFilePicker) 'spustí dialogové okno pro otevření
.InitialFileName = "C:\Users\OVRotating\Downloads" 'nastavení úvodní složky procházení
.Title = "Vyber adresár" 'nastavení názvu okna
.Filters.Add "Stáhnuté poruchy z reportu (xls)", "*.xls*", 1 'nastavení filtru pro zobrazení souborů
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Nebyly nacteny žádné soubory!", vbExclamation: Exit Sub 'pokud není vybrán žádný soubor, makro vypíše hlášení a ukončí se
Application.ScreenUpdating = True
Sheets(Active).Select
Range("A1").Select
ElseIf .SelectedItems.Count > 1 Then
MsgBox "Vyberte pouze jeden soubor!", vbExclamation: Exit Sub 'pokud je vybráno více, než jeden soubor, makro vypíše hlášení a ukončí se
Application.ScreenUpdating = True
Sheets(Active).Select
Range("A1").Select
Else
zdrojovy_soubor = .SelectedItems(1) ' načte adresu souboru do proměnné
End If
End With
Workbooks.Open (zdrojovy_soubor) ' otevření souboru, který jsme vybrali
For Each List In Sheets
Range("H2:H1200").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
docasna = List.Range("A2:O1200")
Zdravím,
nevím jestli jsem správně pochopil zadání, mám pár otázek.
- všechny soubory které chcete otevřít máte v jedné složce? "C:\Users\OVRotating\Downloads"
- chcete načíst všechny soubory z této složky od poslední, která byla už načtena, nebo vždy jenom jeden soubor?
- v jakém tvaru je ten den a čas?
- je možnost sem hodit nějaký demo sešit klidně bez dat abych mohl makro upravit?
děkuji
citovat
Fantasyk(18.1.2022 14:29)#051916 €Ł мσşqμΐτσ napsal/a:
Zdravím,
nevím jestli jsem správně pochopil zadání, mám pár otázek.
- všechny soubory které chcete otevřít máte v jedné složce? "C:\Users\OVRotating\Downloads"
- chcete načíst všechny soubory z této složky od poslední, která byla už načtena, nebo vždy jenom jeden soubor?
- v jakém tvaru je ten den a čas?
- je možnost sem hodit nějaký demo sešit klidně bez dat abych mohl makro upravit?
děkuji
Všechny soubory jsou v jedné složce
soubory vždy začínají:
stops_XXXXX.xls
perfomance_detail_XXXXX.xls
klidně to může být na 1 tlačítko, aby to udělalo vše naráz, ale ještě to chce ošetřit když nenajde ten subor nějak..
https://uloz.to/tamhle/jeCOlRfk2I8U/name/Nahrano-18-1-2022-v-14-33-22#!ZGywAwR2AGqwLzH1AmD1LzSyAQIvMSH4FGWnqTE1MRE5rGV3AN==citovat
Přidal jsem nové tlačítko s novým makrem.
Pokud bude pokaždé jenom jeden soubor od každého sešitu ve složce "Download" tak by to mělo fungovat.
Ale, pokud se tam průběžné přidávají další s novým datumem a časem, tak to bude chtít řešit jinak. Někde se do sešitu bude muset ukládat názvy posledných kopírovaných souborů, aby makro vědělo které soubory již byly zkopírované. Pak je otázka jestli před kopírováním mazat již uložená data nebo je kopírovat pod ně.
Příloha: 51924_test.zip (40kB, staženo 18x) citovat
Fantasyk(19.1.2022 16:57)#051926 €Ł мσşqμΐτσ napsal/a:
Přidal jsem nové tlačítko s novým makrem.
Pokud bude pokaždé jenom jeden soubor od každého sešitu ve složce "Download" tak by to mělo fungovat.
Ale, pokud se tam průběžné přidávají další s novým datumem a časem, tak to bude chtít řešit jinak. Někde se do sešitu bude muset ukládat názvy posledných kopírovaných souborů, aby makro vědělo které soubory již byly zkopírované. Pak je otázka jestli před kopírováním mazat již uložená data nebo je kopírovat pod ně.Příloha: 51924_test.zip (40kB, staženo 1x)
Zdravím,
nějak mi to nechce najít ty soubory vypíše mi to ten MsgBox nenalezeno
no pokaždé tam bude pouze jeden soubor s tímto názvem, který chci po dokončení makra vymazat (kill)
Ale vypadá to nadějně, tak nějak jsem to chtěl
citovat
tak koukám mně to doma taky nefungovalo
jenom připomenu , že složka kterou jste poslal je pojmenovaná jako "Download", kde v příkazu jste měl "Download
s", takže teď nevím které je správně.
upravit když tak cestu v řadku viz níže pak už snad bude dobrý
z
cestaSesitu = "C:\Users\OVRotating\Downloads\" & Dir(Sesit)
na
cestaSesitu = "C:\Users\OVRotating\Downloads\" & Dir("C:\Users\OVRotating\Downloads\" & Sesit)citovat
Fantasyk(20.1.2022 17:27)#051944 €Ł мσşqμΐτσ napsal/a:
tak koukám mně to doma taky nefungovalo
jenom připomenu , že složka kterou jste poslal je pojmenovaná jako "Download", kde v příkazu jste měl "Downloads", takže teď nevím které je správně.
upravit když tak cestu v řadku viz níže pak už snad bude dobrý
z
cestaSesitu = "C:\Users\OVRotating\Downloads\" & Dir(Sesit)
na
cestaSesitu = "C:\Users\OVRotating\Downloads\" & Dir("C:\Users\OVRotating\Downloads\" & Sesit)
Tak todle pomohlo částečne.
Správně se otevřou soubory ale data se nezkopírují.
Když odstraním: nactenySesit.Close False
tak zůstanou aspoň sešity otevřené, ale listy jsou prázdné
citovat
tak trochu jsem to ještě předělal.
nevím přesné čím to může být. Možná zdrojové sešity nemají vždy jenom jeden list, nebo ne vždy se jmenují "Sheet0".
pokud ani teď to nebude fungovat budu potřebovat víc těch sešitů k porovnáni čím se od sebe liší. minimálně ty soubory u kterých vám to nefunguje
Příloha: 51950_test.zip (41kB, staženo 38x) citovat
Fantasyk(22.1.2022 9:12)#051952 €Ł мσşqμΐτσ napsal/a:
tak trochu jsem to ještě předělal.
nevím přesné čím to může být. Možná zdrojové sešity nemají vždy jenom jeden list, nebo ne vždy se jmenují "Sheet0".
pokud ani teď to nebude fungovat budu potřebovat víc těch sešitů k porovnáni čím se od sebe liší. minimálně ty soubory u kterých vám to nefungujePříloha:
51950_test.zip (41kB, staženo 0x)
Vždy se jmenuje sheet0 a je tam jen jeden
citovat
a zkoušel jste novou verzi, kterou jsem sem nahrál, v předešlém příspěvku, jestli funguje?
citovat
Fantasyk(24.1.2022 20:26)#051972 €Ł мσşqμΐτσ napsal/a:
a zkoušel jste novou verzi, kterou jsem sem nahrál, v předešlém příspěvku, jestli funguje?
Jo funguje perfektně
Moc děkuji
citovat