vba kode, gemmer på dato, men overskriver ved datoskift
Jeg har denne kode til at gemme et dokument, men jeg vil gerne have den overskriver sig selv, når man når til midnat laver den en ny adresse, det vil jeg gerne undgå, så den gemmer ovenpå sig selv hver gang, er der nogen som kan hjælpe
Private Sub CommandButton1_Click() Dim Path As String Dim strDate As String Dim FileName2 As String Dim FileName3 As String Dim FileName4 As String
Du kan ikke overskrive med et andet navn - den vil gemme som et nyt dokument. Vejen frem er nok at ændre navn > gem, eller gem som > slet tidligere fil
Hvor befinder dokumentet sig inden det gemmes? Altså inden det bliver navngivet "2020-05-03 Pia Jensen" første gang? Et check kunne måske være at hvis filen allerede ligger i et arkiv længere inde end blot "C:\dokument\" så skal den blot gemme og ikke gemme-som.
Der ligger en gennemvej på desktoppen, der er gemt som skabelon, Med aktive macro, dette for ikke at overskrive originalen, Når der skal gemmes, så skal den gemme på et deledrev, så Som flere brugere har adgang til Det er ikke drev c, som jeg fik skrevet, det er drev Q: Hvis man selv skal gå ind og gemme, vil der over tid blive lavet mange fejl, da alle brugere Ikke er lige fortrolige med computere, derfor skal Der laves en knap (macro) til at gemme på
Private Sub CommandButton1_Click() Dim Path As String Dim FileName1 As String Dim FileName2 As String Dim FileName3 As String Path = "Q:\dokument\" FileName1 = Range("P2") FileName2 = Range("N2") FileName3 = Range("M2") ActiveWorkbook.SaveAs Filename:=Path & FileName1 & "-" & FileName2 & "-" & FileName3 & "-" & ".xlsm", FileFormat:=52
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Password:="123" On Error GoTo Handler If Target.Address = "$N$2" And Target.Value <> "" Then Application.EnableEvents = False Target.Offset(0, 5) = Format(Now(), "yyyy-mm-dd kl.hh") Application.EnableEvents = True End If Handler: ActiveSheet.Protect Password:="123" End Sub
Du har lige vist to forskellige makro, hvori den ene gemte dokumentet i en mappe med dato, og den anden ikke gør. Så nu er jeg lidt forvirret.
Min tanke var at kontrollere om filen er åbnet fra skabelon eller fra eksisterende ny version (gemt med makro) af filen. Den nemme måde var at se om stien er der hvor den ville gemme sig hvis man vælger saveas. Så erstat din save as med denne if sætning (der både kan gemme eller gemme som:
If Application.ActiveWorkbook.Path = Path Then ActiveWorkbook.Save Else ActiveWorkbook.SaveAs Filename:=Path & FileName1 & "-" & FileName2 & "-" & FileName3 & "-" & ".xlsm", FileFormat:=52 End If
Private Sub CommandButton1_Click() Dim Path As String Dim FileName1 As String Dim FileName2 As String Dim FileName3 As String Path = "Q:\dokument\" FileName1 = Range("P2") FileName2 = Range("N2") FileName3 = Range("M2")
If Application.ActiveWorkbook.Path = Path Then ActiveWorkbook.Save Else ActiveWorkbook.SaveAs Filename:=Path & FileName1 & "-" & FileName2 & "-" & FileName3 & "-" & ".xlsm", FileFormat:=52 End If
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.