Avatar billede alex_sleiborg Nybegynder
27. september 2005 - 10:32 Der er 2 kommentarer og
1 løsning

VBA Funktion

Jeg kan ikke helt få denne her funktion til og virke. Og ved nu heller ikke helt hva den gør. Håber der er en skarp hjerne der kan hjælpe mig

Her er linket hvor jeg fandt funktionen

http://www.cpearson.com/excel/weeknum.htm

Og så selve koden

Public Function ISOWeekNum(AnyDate As Date, _
    Optional WhichFormat As Variant) As Integer
'
' WhichFormat: missing or <> 2 then returns week number,
'              = 2 then YYWW
'
Dim ThisYear As Integer
Dim PreviousYearStart As Date
Dim ThisYearStart As Date
Dim NextYearStart As Date
Dim YearNum As Integer

ThisYear = Year(AnyDate)
ThisYearStart = YearStart(ThisYear)
PreviousYearStart = YearStart(ThisYear - 1)
NextYearStart = YearStart(ThisYear + 1)
Select Case AnyDate
    Case Is >= NextYearStart
        ISOWeekNum = (AnyDate - NextYearStart) \ 7 + 1
        YearNum = Year(AnyDate) + 1
    Case Is < ThisYearStart
        ISOWeekNum = (AnyDate - PreviousYearStart) \ 7 + 1
        YearNum = Year(AnyDate) - 1
    Case Else
        ISOWeekNum = (AnyDate - ThisYearStart) \ 7 + 1
        YearNum = Year(AnyDate)
End Select

If IsMissing(WhichFormat) Then
    Exit Function
End If
If WhichFormat = 2 Then
    ISOWeekNum = CInt(Format(Right(YearNum, 2), "00") & _
    Format(ISOWeekNum, "00"))
End If

End Function

Det jeg gerne vil have er et lille script der kan regne ud hvor mange uger der er fra f.eks 12-7-2001 til d 31-1-2003
Avatar billede nielsrs Nybegynder
27. september 2005 - 14:12 #1
Der er en funktion i VBScript som udregner forskel mellem 2 datoer, her kan bruge
timer, dage, måneder o.l.

Kan du ikke bruge den ???  Jeg har klippet den ind efterfølgende.



DateDiff Function
Returns the number of intervals between two dates.

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

The DateDiff function syntax has these parts:

Arguments
interval

Required. String expression that is the interval you want to use to calculate the differences between date1 and date2. See Settings section for values.

date1, date2

Required. Date expressions. Two dates you want to use in the calculation.

firstdayofweek

Optional. Constant that specifies the day of the week. If not specified, Sunday is assumed. See Settings section for values.

firstweekofyear

Optional. Constant that specifies the first week of the year. If not specified, the first week is assumed to be the week in which January 1 occurs. See Settings section for values.

Settings
The interval argument can have the following values:

Setting Description
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week of year
h Hour
n Minute
s Second


The firstdayofweek argument can have the following values:

Constant Value Description
vbUseSystem 0 Use National Language Support (NLS) API setting.
vbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday


The firstweekofyear argument can have the following values:

Constant Value Description
vbUseSystem 0 Use National Language Support (NLS) API setting.
vbFirstJan1 1 Start with the week in which January 1 occurs (default).
vbFirstFourDays 2 Start with the week that has at least four days in the new year.
vbFirstFullWeek 3 Start with the first full weekof the new year.


Remarks
You can use the DateDiff function to determine how many specified time intervals exist between two dates. For example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks between today and the end of the year.

To calculate the number of days between date1 and date2, you can use either Day of year ("y") or Day ("d"). When interval is Weekday ("w"), DateDiff returns the number of weeks between the two dates. If date1 falls on a Monday, DateDiff counts the number of Mondays until date2. It counts date2 but not date1. If interval is Week ("ww"), however, the DateDiff function returns the number of calendar weeks between the two dates. It counts the number of Sundays between date1 and date2. DateDiff counts date2 if it falls on a Sunday; but it doesn't count date1, even if it does fall on a Sunday.

If date1 refers to a later point in time than date2, the DateDiff function returns a negative number.

The firstdayofweek argument affects calculations that use the "w" and "ww" interval symbols.

If date1 or date2 is a date literal, the specified year becomes a permanent part of that date. However, if date1 or date2 is enclosed in quotation marks (" ") and you omit the year, the current year is inserted in your code each time the date1 or date2 expression is evaluated. This makes it possible to write code that can be used in different years.

When comparing December 31 to January 1 of the immediately succeeding year, DateDiff for Year ("yyyy") returns 1 even though only a day has elapsed.

The following example uses the DateDiff function to display the number of days between a given date and today:

Function DiffADate(theDate)
  DiffADate = "Days from today: " & DateDiff("d", Now, theDate)
End Function
Avatar billede alex_sleiborg Nybegynder
27. september 2005 - 14:41 #2
Jeg er har ikke brugt vba ret meget, er kun fordi det er et krav jeg bruger vba. Men hvordan bruger jeg den funktion??? Vil gerne have jeg kan regne antal uger ud imellem 2 uger
Avatar billede nielsrs Nybegynder
27. september 2005 - 15:43 #3
Jeg har ikke brugt denne funktion ret meget, men jeg har lavet et lille eksempel. Du kan indsætte linierne i en alm.tekstfil f.eks. i wordpad  og gemme filen med endelsen/typen  ".vbs". Så kan du starte programmet ved at klikke på vbs-filen.

Måske kan du indlægge linierne i VBA, men det kan jeg ikke hjælpe dig med. Jeg bruger kun VBScript og kender ikke VBA, men jeg har indtryk af, at mange funktioner er ens ??
-------------------------------------------------------------
option explicit

dim dag1, dag2, forskel
'***********formatet er vigtigt !!!!!
dag1 = inputbox("Indtast 1. dato","format dd-mm-åååå")
dag2 = inputbox("Indtast 2. dato","format dd-mm-åååå")

'**********w=antal hele uger 
'**********ww=forskel i ugenr. f.eks. lørdag til mandag = 1 uge
forskel = datediff("w",dag1, dag2)

msgbox("Forskellen mellem dagene er " & forskel & " uger")
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
Kurser inden for grundlæggende programmering

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