Fout 1004

Status
Niet open voor verdere reacties.

jwinkelhof

Gebruiker
Lid geworden
28 nov 2010
Berichten
5
Hi allemaal,

Ik zit een beetje te puzzelen met een excel bestand, die heel de tijd foutmelding 1004 geeft.
Methode SaveAs van object _workbook is mislukt.

bestand moet zichzelf opslaan met naam klachtenformulier en waarde van cel B8 erachter:

Code:
Sheets("Klachtformulier").Copy
ActiveWorkbook.SaveAs Filename:= _
    ActiveWorkbook.Path & "\" & Range("B8") & ".xls", FileFormat:= _
    xlExcel8
ActiveWindow.Close

Ik hoor graag of jullie de oplossing weten.
 
Niet verstandig:

Het formulier bevat een emailadres, een persoonsnaam en bedrijfsnaam.
Verwijder svp het bestand.

Naar een bestand met samengevoegde cellen kijk ik niet; dat is vragen om moeilijkheden.
 
Het bestand staat nog steeds stijf van de samengevoegde cellen.
 
Wijzig Opslaan klachtenformulier eens in dit:
Code:
Sheets("Klachtformulier").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
    ThisWorkbook.Path & "\" & Range("B8") & ".xls", FileFormat:= _
    xlExcel8
Application.DisplayAlerts = True
ActiveWindow.Close
 
Waar heb je dit bestand gevonden? De verschillende functions zijn niet nodig en slaan eigenlijk nergens op omdat altijd het laatste aangevinkte vakje wordt gekozen.
De hele code kan je reduceren tot zoiets:
Code:
Public Sub OpslaanKlacht()
  ar = Array("Crediteren", "Anders", "Vervangen", "Ophalen product", "Afvoeren", "Productvreemde bestanddelen", "Recall", "Microbiologisch", "Kantoor", "Anders", "Incident met impact", "Structureel", "Structureel met impact", "Incindent", "Voedselveiligheid", "Sorteer", "Verpakking", "Product", "Levering")
  For j = 0 To 18
    Select Case j
      Case 0 To 4
        If ActiveSheet.CheckBoxes(j + 1) Then c00 = ar(j)
      Case 5 To 9, 15 To 18
        If ActiveSheet.CheckBoxes(j + 1) Then c01 = ar(j)
      Case Else
        If ActiveSheet.CheckBoxes(j + 1) Then c02 = ar(j)
    End Select
  Next j
  Sheets("2018").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 26) = Array([B8].Value, [B9].Value, [G8].Value, [G9].Value, [B11].Value, [B12].Value, [B13].Value, [G11].Value, [G12].Value, [G13].Value, [B15].Value, [B16].Value, [B17].Value, [G16].Value, [G17].Value, [A25].Value, c00, [A28].Value, [A30].Value, [A32].Value, [B33].Value, [F33].Value, [B34].Value, [F34].Value, c01, c02)
  
  Sheets("Klachtformulier").Copy
  With ActiveWorkbook
    .SaveAs ThisWorkbook.Path & "\" & Range("B8") & ".xlsx", 51
    .Close 0
  End With
  
  Range("B8:D9,G8:H9,B11:D13,G11:H13,B15:H15,B16:D17,G16,G17:H17,A25:H25,A25:H25,A28:H28,A30:H30,A32:H32,B33:D34,F33:H34").ClearContents
  For j = 1 To 19
    ActiveSheet.CheckBoxes(j) = 0
  Next j
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan