Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[VB] bestandsnaam opslaan

Pagina: 1
Acties:
  • 379 views

Verwijderd

Topicstarter
Ik heb in Excel met behulp van VB een programma die factureringen maakt. Programma werkt top (niet door mijzelf gemaakt btw). Er is alleen 1nadeel. Als ik de factuur opsla doet hij dit automatisch in Map1.xls, Map2.xls, Map3.xls, enz. In het begin had ik 5facturen per maand, toen vond ik het niet zo'n ramp op ze handmatig te hernoemen.. maar heb er nu zo 15 per dag en dan wordt het hard minder..

Wat ik graag wil is dat hij de factuurnummer ook gaat gebruiken als bestandsnaam. Dat als ik dus bijvoorbeeld factuur 100365 heb dat hij hem ook opslaat als 100365.xls
Dit is wat ik op moment aan VB code heb voor het opslaan:

'Kopiebestand opslaan
On Error GoTo FoutBijOpslaan
If Bestandsnaam$ > "" Then ActiveWorkbook.SaveAs Bestandsnaam$
On Error GoTo 0

FactuurNummer1 = FactuurNummer1 + 1
Call Bewaarfactuurnummer


ReageerOpTweedeKlik = 0
Range("A1").Select
Call Afsluiten

FoutBijOpslaan:
Resume Next


Kan iemand mij hier bij helpen? Alvast bedankt!!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Visual Basic:
1
ActiveWorkBook.SaveAs "C:\melp\blaat\bestandsnaam.xls"

Mag jij raden hoe en waar je de bestandsnaam aanpast en doorgeeft.

Ik gok dat je FactuurNummer1 wil hebben?

[ Voor 68% gewijzigd door TeeDee op 28-02-2008 10:47 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Wat die man voor me gemaakt had voor de factuur was:


'Bestandsnaam voor kopiebestand samenstellen
x1$ = Range("Debiteuren!LocatieFactuurbestanden")
x2 = Range("Factuur!Factuurnr.")
x3$ = "\": If Right$(x1$, 1) = "\" Then x3$ = ""
Bestandsnaam$ = x1$ + x3$ + Trim$(Str$(x2)) + ".xls"
If x1$ = "" Or x2 < 1 Then Bestandsnaam$ = ""

Maar dit werkt niet, en lijkt mij ook veel te ingewikkeld. Het enige wat ik dus nodig ben is het Factuurnr.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Verwijderd schreef op donderdag 28 februari 2008 @ 10:56:
Wat die man voor me gemaakt had voor de factuur was:

Visual Basic:
1
2
3
4
5
6
'Bestandsnaam voor kopiebestand samenstellen
    x1$ = Range("Debiteuren!LocatieFactuurbestanden")
    x2 = Range("Factuur!Factuurnr.")
    x3$ = "\": If Right$(x1$, 1) = "\" Then x3$ = ""
    Bestandsnaam$ = x1$ + x3$ + Trim$(Str$(x2)) + ".xls"
    If x1$ = "" Or x2 < 1 Then Bestandsnaam$ = ""

Maar dit werkt niet, en lijkt mij ook veel te ingewikkeld. Het enige wat ik dus nodig ben is het Factuurnr.
Definieer werkt niet. Anders neem je contact op met de maker. GoT levert geen support op Third Party oplossingen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
das probleem.. maker leeft niet meer..

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 19-11 14:59
Nou dan moet je even aangeven wat er mis gaat. Voor zover ik zien kan zit er geen fout in de code.

Hail to the king baby!


Verwijderd

Topicstarter
hij slaat het bestand op als Map1.xls, Map2.xls, Map3.xls, enz. en dat is niet de bedoeling

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je hebt al een factuurnummer variabele in je startpost... gebruik die bij het saven en je bent klaar? :?

{signature}


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 19-11 14:59
Wat komt er als bestandsnaam uit dan?

Hail to the king baby!


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Als je nu eerst even rustig ademhaalt en alle relevante code plaats in plaats van iedere keer een ander lapje code waarbij wij moeten gaan verzinnen hoe of wat.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Er komt Map14.xls uit op dit moment. Terwijl dit 100365 had moeten zijn.

  • Raging_Trancer
  • Registratie: Mei 2006
  • Laatst online: 05-06-2022
Duidelijk iemand met Basic ervaring en geen Visual Basic...

Wat ik even niet snap is:
Visual Basic:
1
2
3
4
On error Goto FoutBijOpslaan
...
FoutBijOpslaan:
Resume Next


Als je dan toch geen error trapping doet, dan is dit beter;
Visual Basic:
1
On Error Resume Next


Mgoed (zonder poespas):
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub FactuurOpslaan()
Dim lngFactuurnummer as Long
dim strPadnaam as string

    lngFactuurnummer = Range("Factuur!Factuurnr.")

    'strPadnaam=.... Verzin eens iets? ;) 

    If IsNumeric(lngFactuurnummer) then
        ActiveWorkbook.SaveAs lngFactuurnummer & ".xls"
    Else
        'Hier nog wat code als factuurnummer niet een nummer is...
    End If

End Sub


Nog wat;
String variabelen hieven niet met $ beeindigd te worden :)
Gebruik niet "\" als pad aanduiding. Mocht een of andere jojo iets anders verzinnen, dan moet je code aangepast worden. Gebruik liever Application.PathSeperator

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:34

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op donderdag 28 februari 2008 @ 11:30:
Er komt Map14.xls uit op dit moment. Terwijl dit 100365 had moeten zijn.
Ok, en wat heb je nu zelf al geprobeerd en wat lukte daar niet mee? Je code dumpen, roepen wat er fout is en hopen dat wij het voor je gaan oplossen is hier niet de bedoeling. Het is hier een discussie forum en geen helpdesk om ff snel je code te laten fixen.

Kijk aub eens naar Programming Beleid en dan met name naar Programming Beleid - De Quickstart en vul aub de gevraagde informatie aan.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Thnx Raging_Trancer, ik ben hier al stuk verder mee gekomen. Er zit nu nog 1fout in. Hij slaat de sjabloom op als het factuurnummer en niet het gegenereeerde werkblad.

Ik zal even de code neerzetten zoals ik hem nu heb.


'Bestandsnaam voor kopiebestand samenstellen
Dim lngFactuurnummer As Long
Dim strPadnaam As String
lngFactuurnummer = Range("Factuur!Factuurnr.")

If IsNumeric(lngFactuurnummer) Then
ActiveWorkbook.SaveAs lngFactuurnummer & ".xls"
Else
'Hier nog wat code als factuurnummer niet een nummer is...
End If

'Kopiebestand aanmaken
Sheets("Factuur").Select
ActiveSheet.DropDowns(1).Visible = False

'Kopiebestand opslaan
On Error GoTo FoutBijOpslaan
If Bestandsnaam$ > "" Then ActiveWorkbook.SaveAs Bestandsnaam$
On Error GoTo 0

FactuurNummer1 = FactuurNummer1 + 1
Call Bewaarfactuurnummer


ReageerOpTweedeKlik = 0
Range("A1").Select
Call Afsluiten

FoutBijOpslaan:
Resume Next

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:34

Creepy

Tactical Espionage Splatterer

Eeh.. die fout mag je in eerste instantie zelf proberen op te lossen zoals ik net al had aangegeven. Als je er zelf niet uitkomt dan kan je een nieuw topic openen maar let daarbij dus op de eerder genoemde quickstart. Je code dumpen en zeggen wat er fout gaat is niet genoeg hier.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.