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

[Excel] Slechts een deel van document opslaan middels macro*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem:

Ik wil in excel via een knop een bepaalde sheet opslaan.
Dit is niet zo moeilijk want dit kan met de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Sub Opslaan_Klikken()

'Working in Excel 2000-2007
    Dim fname As Variant
    Dim NewWb As Workbook
    Dim FileFormatValue As Long

    'Check the Excel version
    If Val(Application.Version) < 9 Then Exit Sub
    If Val(Application.Version) < 12 Then

        'Only choice in the "Save as type" dropdown is Excel files(xls)
        'because the Excel version is 2000-2003
        fname = Application.GetSaveAsFilename(InitialFileName:="", _
        filefilter:="Excel Files (*.xls), *.xls", _
        Title:="Planning")

        If fname <> False Then
            'Copy the ActiveSheet to new workbook
            Sheets("Planning").Copy
            Set NewWb = ActiveWorkbook

            'We use the 2000-2003 format xlWorkbookNormal here to save as xls
            NewWb.SaveAs fname, FileFormat:=-4143, CreateBackup:=False
            NewWb.Close False
            Set NewWb = Nothing

        End If
    Else
        'Give the user the choice to save in 2000-2003 format or in one of the
        'new formats. Use the "Save as type" dropdown to make a choice,Default =
        'Excel Macro Enabled Workbook. You can add or remove formats to/from the list
        
        fname = Application.GetSaveAsFilename(InitialFileName:="", filefilter:= _
        " Excel 2000-2003 Workbook (*.xls), *.xls,", _
        FilterIndex:=2, Title:="Planning")

        'Find the correct FileFormat that match the choice in the "Save as type" list
        If fname <> False Then
            Select Case LCase(Right(fname, Len(fname) - InStrRev(fname, ".", , 1)))
            Case "xls": FileFormatValue = 56
            Case Else: FileFormatValue = 0
            End Select

            'Now we can create/Save the file with the xlFileFormat parameter
            'value that match the file extension
            If FileFormatValue = 0 Then
                MsgBox "Sorry, unknown file extension"
            Else
                'Copies the ActiveSheet to new workbook
                Sheets("Planning").Copy
                Set NewWb = ActiveWorkbook

                'Save the file in the format you choose in the "Save as type" dropdown
                NewWb.SaveAs fname, FileFormat:= _
                             FileFormatValue, CreateBackup:=False
                NewWb.Close False
                Set NewWb = Nothing

            End If
        End If
    End If

End Sub


Maar nu komt het probleem!
Ik wil niet heel de sheet opslaan, maar cel A1 t/m I54.

Ik heb al vanalles geprobeerd met:

range
activate
sheets.activate
copy

maar ik kom er niet uit

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Hoe zie je dat voor je, alleen die paar cellen opslaan? Wat gebeurt er dan met de rest van het document? Wat wil je zien als je het opgeslagen document opent? :?

Verder: 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.


Verwijderd

Topicstarter
-NMe- schreef op woensdag 05 maart 2008 @ 10:42:
Hoe zie je dat voor je, alleen die paar cellen opslaan? Wat gebeurt er dan met de rest van het document? Wat wil je zien als je het opgeslagen document opent? :?

Verder: Waar hoort mijn topic?
PRG>>OFF
De geselecteerde cellen plakt de code in een nieuwe sheet.
Deze sheet wordt automatisch verzonden via een mail.
Het is een planning, maar de werknemers hoeven niet de hele planning te krijgen, alleen cel a1:i54

Verwijderd

zie de site van Ron de Bruin : Mail Range or Selection

Verwijderd

Topicstarter
dankje het is gelukt :D


alleen zit ik nu nog met een probleempje.
ik heb (ook via de site van ron de bruin, bedankt _Heretic_!) ook een vba code gebruikt om een sheet te laten opslaan. Dat gaat allemaal goed, de gebruiker krijgt een schermpje waar hij het bestand op wil slaan e.d. ... maaaaaar als de gebruiker op Annuleren klikt (bij het saveas schermpje dus) dan krijg ik foutmeldingen in mijn "programma":

foutmelding 1004 tijdens uitvoeren.
methode saveas is mislukt.

Hoe kan ik dit afvangen?

[ Voor 49% gewijzigd door Verwijderd op 09-03-2008 15:13 ]


Verwijderd

de oplossing staat in de code in TS. het resultaat van getsaveasfilename stokeer je in een variabele die je test op de waarde FALSE.

Verwijderd

Topicstarter
Verwijderd schreef op maandag 10 maart 2008 @ 13:10:
de oplossing staat in de code in TS. het resultaat van getsaveasfilename stokeer je in een variabele die je test op de waarde FALSE.
Ja, dankjewel :D tis gelukt
Pagina: 1