Meerdere subroutines ipv 1 lange.. hoe?

Status
Niet open voor verdere reacties.

lieke66

Gebruiker
Lid geworden
29 jul 2016
Berichten
47
Goedemiddag!

De vraag is; hoe kan ik variabelen meegeven aan een subroutine?

Achtergrond:
Ik heb 1 'lange' code geschreven welke eigenlijk drie subroutines zou kunnen bevatten:
1. Open een excel
2. doe daar iets mee
3. Sla op onder een andere naam

Ik weet dat het mooier/netter/beter is om code kort en krachtig te houden, en duidelijk bij functie wat het doet.
Op moment is mijn code alles behalve dat. Maar ik kan wel wat hulp gebruiken om dit te verbeteren.

Voor het gemak:
Hier mijn code en in de bijlage mijn test bestandje.

Code:
Sub zoekFile()
'
Dim mijnBestand As String
Dim gezochtBestand As String
Dim wb As Workbook
Dim factuurDatum As String
Dim factuurPeriode As String
Dim week As String
Dim nieuweNaam As String
Dim klant As String

Dim zendingen As Long
Dim colli As Long

zendingen = Range("A" & Rows.Count).End(xlUp).Row - 1
colli = WorksheetFunction.Sum(Range("C:C"))

klant = Sheets(1).Name
factuurDatum = Sheets(1).Range("F1")
factuurPeriode = Sheets(1).Range("F2")
week = Sheets(1).Range("F3")
nieuweNaam = "Factuur " & Sheets(1).Name & " Week " & week

MsgBox klant
gezochtBestand = klant & ".xlsx"
mijnBestand = Dir("C:\Users\lieke\Desktop\Oefenen\" & gezochtBestand)

If gezochtBestand <> mijnBestand Then
    MsgBox "Geen Template voor " & gezochtBestand
Else
   Set wb = Workbooks.Open("C:\Users\lieke\Desktop\Oefenen\" & gezochtBestand) 'Helaas werkt 'mijnBestand' nog niet
    
End If

'sub doeIets()

wb.Worksheets(1).Range("H10").Value = factuurDatum
wb.Worksheets(1).Range("H11").Value = factuurPeriode

'sub slaOp()

wb.SaveAs ("C:\Users\lieke\Desktop\Oefenen\" & nieuweNaam & ".xlsx")
wb.Close

End Sub
 

Bijlagen

  • Oefenen.xlsm
    19,5 KB · Weergaven: 18
Laatst bewerkt:
Parameters zal je moeten aangeven in de sub, met hun datatype.
Voorbeeld:
Code:
Sub zoekFile(Par1 As String, Par2 As Integer, Par3 As Date, Par4 As Boolean, Optional Par5 As String)

Optional geeft aan dat de betreffende parameter niet verplicht is.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan