• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Omzetten Excel formules naar VBA

Status
Niet open voor verdere reacties.

roseb12

Gebruiker
Lid geworden
21 sep 2017
Berichten
34
Ik heb met behulp van dit forum een paar mooie sheets gemaakt met een aantal formules. Maar ik zou willen dat die formules in VBA worden geschreven. Ik heb al wat geprobeerd maar ik kom er niet uit.

Ik heb een weekplanning, maandag t/m zondag. Volgens het rooster werkt Medewerker 1 t/m 3. Dit rooster staat in de sheet Jaar_2020.
Nu staan er formules in D1, P56 en O56. Deze zou ik heel graag in VBA hebben. Ik heb al bewerkstelligd dat de namen van de medewerker uit sheet Jaar_2020 in VBA worden gekopieerd.
En dat wanneer ik op maandag een datum invoer deze automatisch word doorgevoerd naar de volgende dagen.

Kan iemand mij helpen?
 

Bijlagen

  • PL_chauffeurs_2020week.xlsm
    102,6 KB · Weergaven: 50
Jawel dat kan ik doen, maar dan zie ik alsnog de formules in beeld.
 
Jawel dat kan ik doen, maar dan zie ik alsnog de formules in beeld.

En jij wilt niet de formules zien, maar de waarde?

Dat kan door in VBA in een cel (bv P56) de formule te laten zetten en daarna de regel
Code:
Range("P56") = Range("P56").Value

toe te voegen.
 
Dat is een hele goede tip! Ik kom steeds verder. Ik ben macro's aan het opnemen maar ik merk wel dat de VBA code erg lang is. Dit moet korter kunnen.
 
De macrorecorder schrijf precies de handelingen die je doet op.
Dus eigenlijk te veel code maar die kun je inkorten.

Plaats deze hier en er zal naar gekeken worden, denk ik.
 
Ik zal doen wanneer ik klaar ben met alle macro's.
Is er ook een manier om al die aparte macro's in 1 te zetten. Dus dat de gehele macro opstart met het openen van het bestand?
 
Zoiets?
Code:
Sub Macro1()
'voor H1
    Range("H1").FormulaR1C1 = "=MATCH(RC[-4],Jaar_2020!R[2]C[-7]:R[2]C[369],0)"
    Range("H1") = Range("H1").Value
End Sub
Sub Macro2()
'Voor O56
    Range("O56").FormulaR1C1 = "=INDIRECT(ADDRESS(RC16,R1C8,,,""Jaar_2020""))"
    Range("O56") = Range("O56").Value
End Sub
Sub Macro()
'Voor P56
    Range("P56").FormulaR1C1 = "=MATCH(RC[-2],Jaar_2020!R1C1:R7C1,0)"
    Range("P56") = Range("P56").Value
End Sub
 
Wat is het nut van het telkens opnieuw plaatsen van formules dmv VBA? Gebruik geen samengevoegde cellen. (Geeft alleen maar ellende.)

Ipv de Sub PasteSpecial_Examples()

Kan het ook in 1 keer.
Code:
Sub VenA()
  Sheets(Application.GetCustomListContents(2)).Select
  Selection.Range("N56:N62") = Sheets("Jaar_2020").Range("A5:A11").Value
  Sheets("maandag").Select
End Sub
 
Wat is het nut van het telkens opnieuw plaatsen van formules dmv VBA? Gebruik geen samengevoegde cellen. (Geeft alleen maar ellende.)

Ipv de Sub PasteSpecial_Examples()

Kan het ook in 1 keer.
Code:
Sub VenA()
  Sheets(Application.GetCustomListContents(2)).Select
  Selection.Range("N56:N62") = Sheets("Jaar_2020").Range("A5:A11").Value
  Sheets("maandag").Select
End Sub

Deze werkt niet bij mij. Ik heb m gekopieerd naar een module. Maar als ik de naamcellen van maandag (N56:62) leegmaken en de macro start blijft de cellen leeg.
 
Het quoten van een volledig bericht is niet nodig. Je kan ook op de grote blauwe knop klikken.

Blijkbaar gemist
Gebruik geen samengevoegde cellen. (Geeft alleen maar ellende.)

Wat het nut is heb je ook nog niet aangegeven.
 
Laatst bewerkt:
Had het zeker gemist. Komt blijkbaar door de warmte. En sorry, zal niet meer quoten!
Als ik een macro opneem dan komen die formules er automatisch in en ook dubbel. Ik weet nog niet hoe je die kan versimpelen.
En wat bedoel je precies met samengevoegde cellen? Welke cel? En welke ellende zal dat geven?
 
Samengevoegde cellen zijn cellen die samengevoegd zijn. Op elk 'dagblad' de cellen D1:G1. De waarde staat in D1. Als je nu een macro opneemt en D1 selecteert dan krijg je Range("D1:G1").Select. Je hebt nu 4 cellen ipv de ene met de waarde geselecteerd. Als je er dan iets mee wil doen moet je er rekening mee houden dat het doelbereik ook uit 4 cellen bestaat.

Zonder VBA kan je dan een melding krijgen als: 'Het doelbereik komt niet overeen met ....'

In de tab 'Jaar_2020' heb je de cellen A9 en A10 samengevoegd. Deze worden door direct doorgeven van het ene naar het ander bereik als 1 cel gezien en dan klopt het niet meer. Bij het direct toewijzen moeten de bereiken even groot zijn.
Dus soms gaat het goed maar vaak ook niet en daarom kan je ze beter niet gebruiken.

Voor de derde keer wat is het nut hiervan?
 
Duidelijk!
Ik heb de sheet Jaar_2020 overgenomen van een collega. Ik vermoed dat hij de cellen heeft samengevoegd om ze groter te lijken. Het jaartal 2020 staat dan voor B3 en 4 waarin de datum en dag staat.Ik ga er voor zorgen dat er maar 1 cel word gebruikt. Dus deze heeft geen nut.
Maar in de cel D1:G1 staat een datumnotatie. Deze kan ik alleen maar laten zien als ik de cellen samenvoeg. Og is er een andere optie?
 
Wat het nut is heb je ook nog niet aangegeven.

Basiskennis haal je maar uit jouw cursusboek.
 
Het nut van de samengevoegde cellen is om in cel D1:G1 de datum volledig te laten zien. Ik ga mijn cursusboek nog maar even naslaan of daar een andere mogelijkheid voor is.
 
Wat is het nut van het telkens opnieuw plaatsen van formules dmv VBA? is de vraag. Lezen lukt niet echt en is toch een belangrijk onderdeel om een antwoord te vinden.
 
Ik gaf om 15:29 aan: Als ik een macro opneem dan komen die formules er automatisch in en ook dubbel. Ik weet nog niet hoe je die kan versimpelen. Ben aan het leren hoe dat beter kan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan