Zdravím,
potřeboval bych pomoct s řešením problému.
V excelovém souboru pracuji s listem, na kterém jsou vstupní data, tento list se mi při otevření smaže a automaticky nahradí aktuálním s daty z podnikové sítě. Externí soubor má vždy stejné jméno a leží na stejném místě - vše napsané pomocí makra v jiném souboru.
Potřeboval bych ale přidat podmínku, pokud se soubor nepodaří najít/ otevřít (například z důvodu výpadku sítě), aby mi původní data nesmazal.
stávající makro
'smazání listu DATA
Application.DisplayAlerts = False
Dim WS
For Each WS In Excel.Worksheets
If WS.Name = "DATA" Then
Sheets("DATA").Delete
Exit For
End If
Next
'nahrání aktuálních dat
Workbooks.Open Filename:= _
"\\cesta\Datovy_vystup.xlsx"
Sheets("Export_dat").Select
Sheets("Export_dat").Copy Before:=Workbooks("Objednávka.xlsm").Sheets( _4)
Sheets("Export_dat").Select
Sheets("Export_dat").Name = "DATA"
Windows("Datovy_vystup.xlsx").Activate
ActiveWorkbook.Close SaveChanges:=False
děkuji za pomoc
Excel - pokračování makra při chybě souboru
Moderátor: Mods_senior
-
hujerus214
- nováček
- Příspěvky: 1
- Registrován: 09 črc 2020 10:32
- elninoslov
- Level 2.5

- Příspěvky: 386
- Registrován: 12 čer 2013 23:40
Re: Excel - pokračování makra při chybě souboru
Od pásu bez akejkoľvek skúšky ...
EDIT: Close som umiestnil za End If, samozrejme má byť pred, opravil som.
Kód: Vybrat vše
Sub Reload_Data()
Dim wbNew As Workbook
'pokus otevření souboru
On Error Resume Next
Set wbNew = Workbooks.Open(Filename:="\\cesta\Datovy_vystup.xlsx")
On Error GoTo 0
If Not wbNew Is Nothing Then
Application.DisplayAlerts = False
With ThisWorkbook
'smazání listu DATA
.Worksheets("DATA").Delete
'nahrání aktuálních dat
wbNew.Worksheets("Export_dat").Copy Before:=.Workbooks("Objednávka.xlsm").Sheets(4)
.Worksheets("Export_dat").Name = "DATA"
End With
Application.DisplayAlerts = True
wbNew.Close SaveChanges:=False
End If
End Sub
Naposledy upravil(a) elninoslov dne 10 črc 2020 00:45, celkem upraveno 1 x.
-
Uziv00
Re: Excel - pokračování makra při chybě souboru
Taky od pasu... Je to vbs, takže pro vba bude možná potřeba upravit.
Kód: Vybrat vše
file = "\\cesta\Datovy_vystup.xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(file)) Then
' stávající makro
End If
Set fso = Nothing
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 2 Odpovědi
- 14212 Zobrazení
-
Poslední příspěvek od Snekment
-
- 10 Odpovědi
- 6769 Zobrazení
-
Poslední příspěvek od Riviera kid
-
- 5 Odpovědi
- 5621 Zobrazení
-
Poslední příspěvek od L.L
-
- 1 Odpovědi
- 7193 Zobrazení
-
Poslední příspěvek od atari
-
- 5 Odpovědi
- 5724 Zobrazení
-
Poslední příspěvek od atari
