Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: vraagje over een stukje eigen code  (gelezen 1393 keer)

0 leden en 1 gast bekijken dit topic.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
vraagje over een stukje eigen code
« Gepost op: 11 maart 2018, 09:43:17 »
Hallo helpers en oplossers,

If ws.Cells(iRow, 28) <> "" Then
    ws.Cells(iRow, 6) = ws.Cells(iRow, 33)
    ElseIf ws.Cells(iRow, 29) <> "" And ws.Cells(iRow, 31) <> "" Then
        If 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25) > ws.Cells(iRow, 33) Then
            ws.Cells(iRow, 6) = (1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25)) * ws.Cells(iRow, 5)
            Else
            ws.Cells(iRow, 6) = ws.Cells(iRow, 33) * ws.Cells(iRow, 5)
        End If
    ElseIf ws.Cells(iRow, 29) <> "" Then
        If 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25) < ws.Cells(iRow, 33) Then
            ws.Cells(iRow, 6) = ws.Cells(iRow, 33)
            Else
            ws.Cells(iRow, 6) = 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25)
        End If
    ElseIf ws.Cells(iRow, 30) <> "" Then
        ws.Cells(iRow, 6) = ws.Cells(iRow, 34)
    ElseIf ws.Cells(iRow, 31) <> "" Then
        If 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25) < 5 Then
            ws.Cells(iRow, 6) = 5 * ws.Cells(iRow, 5)
        End If
    ElseIf ws.Cells(iRow, 28) = "" And ws.Cells(iRow, 29) = "" And ws.Cells(iRow, 30) = "" And ws.Cells(iRow, 31) = "" Then
        If 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25) < 5 Then
            ws.Cells(iRow, 6) = 5
            Else
            ws.Cells(iRow, 6) = 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25)
        End If
End If

Bovenstaande code heb ik geschreven en het werkt, voor de cracks onder jullie zal dit een simpel klusje zijn, maar mij kosten het wel een paar uurtjes met hoofdbrekens. Maar het werkt :D

Ik heb hierover 2 vraagjes:

1. Zoals ik deze code geschreven heb, als beginner, is dit visueel gezien netjes zoals het hoort?
2. de code maakt aan de hand van enkele criteria een som, 1 + (ws.Cells(iRow, 24) * 1.1) + (ws.Cells(iRow, 25) * (24 * 60) * 0.25), schrijf ik dat zoals het hoort of kan ik daarin, of in de code in zijn geheel, nog verbeterpunten in aanbrengen?

Alvast dank voor de aandacht ;)

Johan
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: vraagje over een stukje eigen code
« Reactie #1 Gepost op: 11 maart 2018, 21:20:52 »
Zonder bijlage waar deze procedure in staat, wordt het een beetje giswerk. Maar goed, als het werkt, werkt het. Toch? En als je niet merkt dat je sheet of Workbook er erg traag van wordt, is het ook wel OK.
Overigens zie ik alleen maar berekeningen. Kan je dat niet met formules in de sheet afvangen? Ingebouwde functies werken meestal sneller dan iets wat je via VBA tracht te bereiken.

Mocht je - van mij - meer info willen hebben mbt je vraag, is het handig om je workbook ff als bijlage te plaatsen.
______________________________

Groet, Leo

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: vraagje over een stukje eigen code
« Reactie #2 Gepost op: 11 maart 2018, 21:35:53 »
Hoi RedHead,

Dank voor je reactie.

Het gaat mij erom of het een beetje netjes is geschreven. Deze berekening is nogal uitgebreid omdat het met diverse opties moet rekening houden, bij alle overige berekeningen volstaat 1 regel VBA code.

Het gaat mij er om dat ik op jaarbasis zo'n 7000 facturen invoer en als ik dan naar de bestandsgrootte kijk wordt dat erg groot, terwijl de VBA code slechts de uitkomst in de cel plaatst.

Johan
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

 


www.combell.com