Avatar billede kim1a Ekspert
03. februar 2015 - 15:15 Der er 2 kommentarer og
1 løsning

VBA kode til formel i Excel

Jeg har brug for lidt hjælp til at komme videre.

I en celle skal jeg bruge denne formel:
=IF(AB2>EOMONTH("31-12-2014";0);1;0)
(den skal angive et 1-tal hvis AB2 er før 31-12-2014). Jeg ønsker dog at den er lidt mere dynamisk (hvilket er grunden til Eomonth funktion også.

i VBA er jeg strandet omkring det med anførselstegn. Men jeg forsøgte så at tænke funktionen dynamisk også.

Jeg har en variabel (LagerFilterDato) som er indtastet af brugeren. Jeg kunne godt tænke mig at min nye variabel (som skulle erstatte "31-12-2014") altid valgte sidste dag i året før LagerFilterDato.

Mit udtryk i VBA var noget i retning af dette:
ActiveCell.Formula = "=IF(" & Referencelagerind & "3>Eomonth(" & year(LagerFilterDato)-1 & ",0),1,0))"

Referencelagerind er blot en henvisning til en kolonne i arket (den giver i denne måned kolonne AB).
jeg er med på at year(LagerFilterDato)-1 ikke giver 31-12-YYYY, men blot YYYY - så der er flere udfordringer.
Avatar billede jens48 Ekspert
03. februar 2015 - 18:12 #1
Du kan skrive sidste dag i året før en bestemt dato således:

=DATE(YEAR(A1);1;1)-1

Med makro kan det gøres således:

Sub Macro1()
Range("A6") = DateSerial(Year(Range("A1")), 1, 1) - 1
End Sub
Avatar billede kim1a Ekspert
06. februar 2015 - 15:31 #2
Jeg får ikke tid til at teste før næste månedsafslutning, så du skal da have point nu, for du lyder overbevisende :-)
Smid et svar.
Avatar billede jens48 Ekspert
06. februar 2015 - 15:46 #3
Ok, du får et svar, selv om jeg ikke ved hvordan man trækker point tilbage når de først er givet, hvis du ikke kan få det til at virke.
God weekend
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester