Excel opslaan met harde waarden (1 tabblad)

Status
Niet open voor verdere reacties.

hummus

Gebruiker
Lid geworden
16 jun 2015
Berichten
50
Beste allemaal,

Ik heb een vraag betreffende een bestand waaraan veel koppelingen zitten. In het bestand komt veel data bij elkaar maar nu wil ik alleen het voorblad (waar het om draait) opslaan als .xlsx en dan alleen met harde waarden. In dit voorblad zitten formules waarbij een x aantal klantrapporten gemaakt worden door enkel het klantnummer te veranderen. Ik zou je uitkomst dan per klant als xlsx willen opslaan. Op dit moment heb ik de volgende code gebruikt om de bestanden op te slaan:

[SQL]Sub ERT()
With Blad1
sn = .Cells(5, 16).CurrentRegion
For i = 1 To UBound(sn)
.Range("C5").Value = sn(i, 1)


ActiveWorkbook.SaveAs Filename:="\\C:\test\" & sn(i, 1) & " " & sn(i, 2) _
, FileFormat:=51, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False


Next
End With
End Sub
[/SQL]

Ik heb echter nog 2 dingen waar ik niet uit kom:
1. Hoe kan ik alleen 1 tabblad opslaan
2. Hoe zorg ik ervoor dat ik alleen harde waarden opsla.

Alvast heel erg bedankt,
Hummus
 
Bv.
Code:
Sub ERT()
with Blad1
sn = .[COLOR=#3E3E3E]Cells[/COLOR][COLOR=#66CC66]([/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#66CC66],[/COLOR][COLOR=#3E3E3E] [/COLOR][COLOR=#CC66CC]16[/COLOR][COLOR=#66CC66])[/COLOR][COLOR=#66CC66].[/COLOR][COLOR=#3E3E3E]CurrentRegion[/COLOR]
   .Copy
   ActiveWorkbook.Sheets(1).UsedRange = sn    'of ActiveWorkbook.Sheets(1).UsedRange.Value 
   ActiveWorkbook.SaveAs [COLOR=#FF0000]"[COLOR=#000099][B]\\[/B][/COLOR]C:[COLOR=#000099][B]\t[/B][/COLOR]est[COLOR=#000099][B]\"[/B][/COLOR] & sn(1, 1) & "[/COLOR][COLOR=#3E3E3E] [/COLOR][COLOR=#FF0000]" & sn(1, 2),[/COLOR] 51
end with
End Sub
 
Beste HSV,

Dank je voor je bericht maar het werkt niet helemaal. Ik krijg nu alle data onder elkaar. Er zijn bijvoorbeeld 10 klant nummers en wil dus in totaal 10 excel bestanden als waarden opslaan die ik daarna na de verantwoordelijke sales persoon kan sturen. Zij mogen uiteraard niet elkaars data zien. Dit dus alles zonder links en formules.

Enig idee?

Dank,
Hummus
 
Ik heb geen zin om steeds te raden, dus plaats een bestand.
 
Beste HSV,

Sorry voor de onvolledigheid. Zie bijgaand het bestand (test versie).

De marcro slaat in totaal 9 verschillende excels op, dit gaat goed. Ik zou graag 2 aanpassingen willen.

1. De opgeslagen excels moeten harde waarden worden, er staat nog een formule in cel D5
2. Alleen het eerste tabblad moet opgeslagen worden. Op het 2de tabblad staat de tekst test in cel C6. Dit staat ook in het bijgevoegde bronbestand op het 2de tabblad. Dit moet dus niet gekopieeerd worden.

Hopelijk is de uitleg nu wel duidelijk en lukt het je om mij te helpen.

Alvast heel erg bedankt,
Hummus
 

Bijlagen

Je moet het oorspronkelijke werkboek niet steeds onder een andere naam opslaan.

Je kan die ene cel met formule ook direct laten vullen door Vba.

Code:
Sub ERT()
    With Blad1
        sn = .Cells(5, 16).CurrentRegion
        For i = 1 To UBound(sn)
         .Range("C5").Resize(, 2) = Array(sn(i, 1), sn(i, 2))
         .Copy
           ActiveWorkbook.SaveAs "\\C:\test\" & sn(i, 1) & " " & sn(i, 2), 51
           ActiveWorkbook.Close
        Next
    End With
End Sub

Anders:
Code:
Sub ERT()
Application.ScreenUpdating = False
    With Blad1
        sn = .Cells(5, 16).CurrentRegion
        For i = 1 To UBound(sn)
         .Range("C5") = sn(i, 1)
         .Copy
           With ActiveWorkbook
            .Sheets(1).UsedRange = .Sheets(1).UsedRange.Value
            .SaveAs "\\C:\test\" & sn(i, 1) & " " & sn(i, 2), 51
            .Close
           End With
        Next
    End With
End Sub
 
Beste Harry,

Dit is precies de oplossing die ik zoek! Super bedankt voor het antwoord en al je moeite!

Dank,
Hummus
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan