opslaan als via tekstbox

Status
Niet open voor verdere reacties.

polderploer

Gebruiker
Lid geworden
13 sep 2007
Berichten
69
de bedoeling is dat er via een inputbox wordt ingevult wat de naam van een bestand moet worden. Nadat deze is ingevuld moet het bestand worden opgeslagen in een bepaalde map met als naam datgene wat is ingevuld.

Zover heb ik het, maar het lukt me niet om het verder af te maken:

If Trim(Me.offertenummer.Value) = "" Then
Me.cboPart.SetFocus
MsgBox "vul aub een offertenummer in"
Exit Sub
End If

Sheets("offerte in tekst").Select

Range("tekst").Select

Selection.Copy

Set appWD = CreateObject("Word.Application")
appWD.Visible = True

appWD.Documents.Open Filename:="C:\docs\berekening v2\offerte sjabloon.dot"

Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("blad1")

'find first empty row in database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row


'copy
ws.Cells(iRow, 1).Value = Me.cboPart.Value
ws.Cells(iRow, 2).Value = Me.cbowie.Value
ws.Cells(iRow, 3).Value = Me.offertenummer.Value


Dim bestandsnaam As String

ActiveWorkbook.Save
Pad = Me.offertenummer.Value

If ActiveWorkbook.FileFormat = xlNormal Then
ActiveWorkbook.SaveAs Filename:="C:\docs" & bestandsnaam
End If


Het gaat om de laatste regels, hij zegt dat ie C:\docs niet kent, als ik er c:\docs\ van maak precies hetzelfde, terwijl deze map wel degelijk bestaat. Haal ik C:\docs helemaal weg, dan doet ie het wel, maar slaat ie het op het bureaublad op, en dat is niet de bedoeling.
 
En waar staat die Inputbox dan in de code?

Vergeet ook geen \ achter de docs en voor de bestandsnaam.

Wigi
 
hier heb je de hele code, wellicht dat dat duidelijkheid schept:


Private Sub annuleren_Click()


Unload Me

End Sub



Private Sub offerte_aanmaken_Click()

Selection.AutoFilter Field:=1, Criteria1:="<>"


If Trim(Me.offertenummer.Value) = "" Then
Me.cboPart.SetFocus
MsgBox "vul aub een offertenummer in"
Exit Sub
End If

Sheets("offerte in tekst").Select

Range("tekst").Select

Selection.Copy

Set appWD = CreateObject("Word.Application")
appWD.Visible = True

appWD.Documents.Open Filename:="C:\docs\berekening v2\offerte sjabloon.dot"

Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("blad1")

'find first empty row in database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row


'copy
ws.Cells(iRow, 1).Value = Me.cboPart.Value
ws.Cells(iRow, 2).Value = Me.cbowie.Value
ws.Cells(iRow, 3).Value = Me.offertenummer.Value


Dim bestandsnaam As String

ActiveWorkbook.Save
Pad = Me.offertenummer.Value

If ActiveWorkbook.FileFormat = xlNormal Then
ActiveWorkbook.SaveAs Filename:="C:\docs" & bestandsnaam
End If


'ActiveWorkbook.SaveAs Filename:="C:\docs\" & Me.offertenummer.Value.xls, FileFormat:=xls, CreateBackup:=False
'ActiveWorkbook.SaveAs Filename:="C:\docs\Me.offertenummer.Value.csv", FileFormat:=xlCSV, CreateBackup:=False


''''Me.cboPart.Value = ""
''''Me.cbowie.Value = ""
''''Me.offertenummer.Value = ""



'Application.DisplayAlerts = False




End Sub



'Unload Me
'Documents("Sales.doc").Activate
'Documents("offerte sjabloon.dot").Activate
'End Sub


Sub OpenSales()
'Sales.doc must exist and be open but not active.
Documents("offerte sjabloon.dot").Activate
End Sub










Private Sub UserForm_Initialize()
Dim cPart As Range
Dim cLoc As Range
Dim ws As Worksheet
Set ws = Worksheets("LookupLists")

For Each cPart In ws.Range("contactpersonenlijst")
With Me.cboPart
.AddItem cPart.Value
.List(.ListCount - 1, 1) = cPart.Offset(0, 1).Value
End With
Next cPart

For Each cPart In ws.Range("offertemaker")
With Me.cbowie
.AddItem cPart.Value
.List(.ListCount - 1, 1) = cPart.Offset(0, 1).Value
End With
Next cPart

End Sub
 
Code:
Dim bestandsnaam As String

ActiveWorkbook.Save
Pad = Me.offertenummer.Value

If ActiveWorkbook.FileFormat = xlNormal Then
ActiveWorkbook.SaveAs Filename:="C:\docs" & bestandsnaam
End If

waar wordt de naam toegekend aan bestandsnaam?
variabele bestandsnaam wordt gedeclareerd als string maar krijgt vervolgens geen waarde toegewezen.
 
in dit besturingselement, zie bijlage.

Nogmaals als ik er geen plaats neer zet (zoals c:\docs\) dan doet alles het, maar dan slaat hij het bestand op het bureaublad op en dat is niet de bedoeling. Dus in het besturingselement vul ik het offertenummer in, vervolgens slaat de macro het excel bestand op onder het offertenummer op het bureaublad, maar dit moet ergens anders zijn.
 

Bijlagen

  • besturingselement.JPG
    besturingselement.JPG
    59,8 KB · Weergaven: 53
bedankt voor de tips, ik heb het inmiddels opgelost,

zie code:

Dim bestandsnaam As String

ActiveWorkbook.Save
bestandsnaam = Me.offertenummer.Value

If ActiveWorkbook.FileFormat = xlNormal Then
ActiveWorkbook.SaveAs Filename:="C:\docs\" & bestandsnaam
End If

:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan