' uložení sešitu do standadní cesty ukládání
ActiveWorkbook.SaveAs (cele_jmeno)
' zavření nově vytvořeného sešitu
ActiveWorkbook.Close
Workbooks.Open Filename:= Awb_namecitovat
Zaslal/a marficek119 19.2.2012 9:17
Zdravím, potřebuji poradit. Mám otevřený sešit a potřebuji makrem zkopírovat, vytvořit kopii, celého sešitu i s makry, ale tak aby se mě zdrojový sešit (ze kterého provedu kopii) nezavřel. Už nevím jak postupovat, zkoušel to i se záznamem makra, ale když se mě povede udělat kopii sešitu, tak se původní sešit zavře a otevře se kopie sešitu. Přikládám kód. Děkuji za případnou pomoc.
Private Sub CommandButton1_Click()
Dim cesta As String
Dim nove_jmeno As String
Dim cele_jmeno As String
Dim zdroj As String
Dim c_Faktury As String
zdroj = ActiveWorkbook.Name
Dim doDB As Boolean
' EXPORT NABÍDKY
Application.ScreenUpdating = True
doDB = True
' nastavení cesty pro uložení dat - tam kde byl původní sešit otevřen
cesta = ActiveWorkbook.Path
Application.DisplayAlerts = False
c_Faktury = Worksheets("Nabídka").Cells(3, 1).Value ' Číslo faktury
'existuje už v databazi?
For i = 6 To Worksheets("Databáze faktur").Cells(65000, 2).End(xlUp).Row + 1
If c_Faktury = Worksheets("Databáze faktur").Cells(i, 2) Then
f_zprava = MsgBox("V databázi už tato nabídka existuje, chcete přesto provést export?", vbYesNo, "Nabídka už existuje")
Select Case f_zprava
Case vbNo
Exit Sub
Case vbYes
doDB = False
End Select
End If
Next i
' po stisku tlačítka Ulož Nabídku
' zkopíruje celý sešit
ActiveWorkbook.SaveAs
' aktivním sešitem je nově zkopírovaný
' následuje přejmenování
nove_jmeno = c_Faktury & " nabídka" ' buňka I1 - číslo faktury
' nastavení cesty pro uložení
Dim filename As Variant
filename = Application.GetSaveAsFilename(nove_jmeno, "Excel (*.xls),*.*,Excel 07 (*.xls),*.*,", 1, "Uložit jako")
If filename = False Then Exit Sub
cele_jmeno = filename
'=existuje uz soubor?
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(cele_jmeno) Then
sZprava = MsgBox("Ve vámi zvoleném adresáři již tento soubor existuje, chcete tento soubor přepsat?" & vbCrLf & "...zápis v databazi bude nezměněn...", vbYesNo, "Přepsat soubor?")
Select Case sZprava
Case vbNo
Workbooks(Workbooks.Count).Close (False)
Application.CutCopyMode = False
Exit Sub
Case vbYes
End Select
End If
' uložení sešitu do standadní cesty ukládání
ActiveWorkbook.SaveAs (cele_jmeno)
' zavření nově vytvořeného sešitu
ActiveWorkbook.Close
'ulozeni faktury-odkazu, jmena a splatnosti do databaze
Workbooks(zdroj).Activate
Radek = Worksheets("Databáze faktur").Cells(65000, 2).End(xlUp).Row + 1
If doDB = True Then
Worksheets("Databáze faktur").Cells(Radek, 3) = Worksheets("Nabídka").Range("I10") 'Jméno
Worksheets("Databáze faktur").Cells(Radek, 4) = Worksheets("Nabídka").Range("K16") 'Datum vystavení
Worksheets("Databáze faktur").Cells(Radek, 2).Formula = "=hyperlink(""" & cele_jmeno & """,""" & c_Faktury & """)"
End If
Application.DisplayAlerts = True
Application.CutCopyMode = False
Application.ScreenUpdating = False
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.