[VBA/Excel] Bestand overschrijven bij opslaan met macro*

Pagina: 1
Acties:
  • 2.302 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 12-07 10:30
He

ik heb een excel bestand waar ik een aantal macro's in heb gemaakt. Ik wil dat na de macro uit te voeren, de file meteen wordt opgeslagen. Hiervoor heb ik even een testmacro gemaakt (om niet meteen m'n andere macro's in de soep te laten lopen), maar als ik die uitvoer, dan vraagt ie steeds over ik het reeds bestaande bestand wil overschrijven. In mijn geval moet het antwoord altijd JA zijn.

Ik heb al een beetje op google gezocht, maar de opties die ze daar aangeven werkten niet :? Of ik doe het fout!!

Zo ziet de test macro er iig uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 13-3-2006 door xxxxxxxx.
'
' Sneltoets: CTRL+w
'
    ActiveWorkbook.Save
    ChDir "C:\ftp"
    ActiveWorkbook.SaveAs Filename:="C:\backup\excel.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
            ChDir "G:\"
    ActiveWorkbook.SaveAs Filename:="G:\excel.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
        
        End Sub

Hij moet dus altijd het bestaande bestand gewoon overschrijven

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14-07 21:33

NMe

Quia Ego Sic Dico.

Vragen met betrekking tot VBA en andere zaken die te maken hebben met Office mogen in Officesuites en -software. Zie ook Waar hoort mijn topic?. ;)

PRG>>OFF

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Waarom niet gewoon save, ipv saveas?

Excel vraagt ook nooit op of je wilt overschrijven als je een huidig sheet opslaat. Als dat ding reeds open is, is een save meer dan genoeg.

Deze dus: ActiveWorkbook.Save

[ Voor 9% gewijzigd door RaZ op 13-03-2006 23:11 ]

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

Anoniem: 106551

Waarom gebruik je trouwens niet Workbook.Save ? Dat zou toch automatisch het bestaande bestand moeten overschrijven ?

Acties:
  • 0 Henk 'm!

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 12-07 10:30
Als ik het SaveAs commando verander (in beide regels) in Save, dan krijg ik de foutmelding:
code:
1
2
Compileerfout:
Onjuist aantal argumenten of ongeldige eigenschapstoewijzing

:?

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Je moet ook niet SaveAs veranderen in Save
Enkel: ActiveWorkbook.Save

Wacht, dat doe je trouwens al, maar je wil dus 2 copy'en elders hebben. Ik pak mijn code er ff bij, ff geduld..

Edit:
code:
1
2
3
4
5
6
7
8
9
10
11
Private Function FileExists(fname) As Boolean
'   Returns TRUE if the file exists
    Dim x As String
    x = Dir(fname)
    If x <> "" Then FileExists = True _
        Else FileExists = False
End Function

If FileExists(DBFDestDir & "\Export.dbf") = True Then
    Kill DBFDestDir & "\export.dbf"
End If

Je kan dus beter gewoon opslaan, dan de 2 copy'en killen, en een filecopy neerzetten.

Bovenstaande code zal je nog ff moeten bewerken hoor, direct uit mijn macro gehaald.

[ Voor 156% gewijzigd door RaZ op 13-03-2006 23:29 ]

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 12-07 10:30
idd, 2 copy's :)

Maar je macro werkt!
thanks!!!
Pagina: 1