[Excel97] opslaan zonder code

Pagina: 1
Acties:

  • Rudy_X
  • Registratie: Oktober 2000
  • Laatst online: 23-03-2013
Hoi allemaal,

Ik heb een factuur-layout gemaakt, waarbij ik de factuurnummer via een code automatisch laat oplopen. (deze code heb ik via internet gevonden aangezien ik hierin niet zo goed ben)

Nu is dit natuurlijk handig, alleen kleeft er 1 probleem aan dit hele verhaal.

Ik gebruik dus de "layout" om een factuur te maken, en sla deze dan in een andere map ondere een andere naam op.

zodra ik dus deze opgeslagen factuur weer heropen, doet excel het factuurnummer weer automatisch opnummeren van deze opgeslagen factuur.

Dit moet dus niet, deze opnummering moet alleen geldig zijn voor de "layout" versie en niet voor de opgeslagen versie!

Ik kan ook geen optie vinden om tijdens het opslaan, de code niet mee te nemen!

Weten jullie misschien een oplossing voor dit probleem?

alvast bedankt!


ps: hieronder de code zoals die nu bestaat in de "layout"
-----------

Private Sub Workbook_Open()
Call LeesEnBewaarFactuurNummer3
End Sub

Sub LeesEnBewaarFactuurNummer3()
pad$ = Application.DefaultFilePath
controle = Dir("O:\werklijsten\facturen\FactuurNummer.txt")
If controle = "" Then GoTo EerstAanmaken
Open "O:\werklijsten\facturen\Factuurnummer.txt" For Input As #10
Input #10, Nummer1
Close #10
EerstAanmaken:
Nummer1 = Nummer1 + 1
Open "O:\werklijsten\facturen\FactuurNummer.txt" For Output As #10
Print #10, Nummer1
Close #10
'Noteer nu het opgehaalde factuurnummer in het werkblad
Application.GoTo Reference:="Factuurnr"
ActiveCell.FormulaR1C1 = Nummer1
End Sub

Public Sub FactuurnummerAanpassen()
UserForm1.Show
End Sub

--------

[ Voor 4% gewijzigd door Rudy_X op 18-05-2005 17:56 ]

Pc: Geen :(


  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Beste Rudy_X,

Zoals je wel wet verwachten we hier op het forum dat je zelf wat onderzoek doet voordat je een topic opent. In je topicstart kom ik weinig info tegen over wat je hebt geprobeerd, gezocht en gevonden hierover. Lees Officesuites en -software - Beleid daarover even door :)

Bedoel je dat je niet wil dat het documentnummer wordt opgehoogd? Kan je dan de functie niet gewoon uitzetten, en een tweede document gebruiken?

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Het makkelijkst lijkt me het aanmaken van een extra "property" van het document, waar je aangeeft dat het al eens is opgeslagen.

Een alternatgief is [google="remove vba" from word document] en dan een van de eerste hits -> http://www.officekb.com/u...cel-programming/200406/57 -> http://www.officekb.com/U...70/VBA-Code-to-remove-VBA ->
Deleting A Module From A Workbook

The procedure below will delete the module named "NewModule" from ThisWorkbook.
code:
1
2
3
4
5
Sub DeleteModule()
    Dim VBComp As VBComponent
    Set VBComp = ThisWorkbook.VBProject.VBComponents("NewModule")
    ThisWorkbook.VBProject.VBComponents.Remove VBComp
End Sub

You cannot delete the ThisWorkbook code module, or a sheet code module, or a chart code module.
Dus :Y)

Of dat ook in Wd97 werkt moet je zelf even checken, maar die richting kan je dus op denken.

Edit:
moet ik natuurlijk wel goed copy/pasten 8)7
Deleting All VBA Code In A Project

The procedure below will delete all the VBA code in a project. You should use this procedure with care, as it will permanently delete the code. Standard modules, user forms, and class modules will be removed, and code within the ThisWorkbook module and the sheet modules will be deleted. You may want to export the VBA code, using the procedure above, before deleting the VBA code.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub DeleteAllVBA()

Dim VBComp As VBIDE.VBComponent
Dim VBComps As VBIDE.VBComponents

Set VBComps = ActiveWorkbook.VBProject.VBComponents

For Each VBComp In VBComps
   Select Case VBComp.Type
      Case vbext_ct_StdModule, vbext_ct_MSForm, _
            vbext_ct_ClassModule
         VBComps.Remove VBComp
      Case Else
         With VBComp.CodeModule
            .DeleteLines 1, .CountOfLines
         End With
   End Select
Next VBComp

End Sub
En ja Google rules ;)

[ Voor 36% gewijzigd door F_J_K op 19-05-2005 12:21 . Reden: quotes om de code zodat de layout niet vern$%kt ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Rudy_X
  • Registratie: Oktober 2000
  • Laatst online: 23-03-2013
suf, dat ik dat niet gevonden kreeg :?

Maar in ieder geval bedankt voor de reply en ik ga het direct proberen nu!

@sanfranjake : Ja ik vermeld meestal wel wat ik al heb onderzocht, was het in de haast vergeten :)


Edit: bah... het werkt niet :( Is er misschien geen regel toe te voegen aan de bestaande code, dat hij het (na uitvoering) verwijderd?? iets in de trend van Delete all / delete *.* :p

[ Voor 31% gewijzigd door Rudy_X op 19-05-2005 10:50 ]

Pc: Geen :(


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

het werkt prima maar je moet eerst een verwijzing maken naar de juiste module (ik gok ook voor Off97 Microsoft Visual Basic for Applications Extensibility voor VBIDE) en onder extra -> macro -> beveiliging aangeven dat toegang tot VB projecten wordt vertrouwt.

Nou ja, in Office 2k3 dan: ik neem aan dat het in Off97 ook ergens zo is in te stellen (laat het even weten of en hoe het anders is).

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 11:35
Of je slaat een kopie van de data op in een nieuw blad. Is hoe dan ook netter, zo bewaar je alleen de data.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Sub opslaan()
Dim blad As Worksheet
Dim bestandsnaam As String
Set blad = ActiveSheet 'Het actieve tabblad wordt "blad" genoemd
bestandsnaam = Application.GetSaveAsFilename
blad.Copy 'kopieer het hele blad, met formatering en zo naar een nieuw bestand
blad.Cells.Copy 'kopieer de data
Workbooks(Workbooks.Count).Worksheets(1).Cells.PasteSpecial (xlPasteValues) 'plak de data
Workbooks(Workbooks.Count).SaveAs (bestandsnaam)
End Sub

(Ik hoop dat 97 dit begrijpt, heb ik al een tijdje niet mee gebruikt)

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Zoiets kan inderdaad ook, maar ik zou dan zeker geen Copy gebruiken. Kost bij een beetje document een hoop tijd & geheugen, gooit de al bestaande inhoud van ctrl-v weg en zo kopieer je nog niet alles (zoals metadata en kop- en voetteksten). :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1