/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Datoproblem..
Fra : Anders Kristiansen


Dato : 02-12-02 18:26

Hej NG.

I må hjælpe mig lidt igen for jeg er kørt sur i det...

Jeg har et ark der består af ca. 500 linier, jeg er ret sikker på at det
kommer fra noget "cut and paste". Det er noget jeg vil modtage ofte så jeg
må finde en eller anden smart løsning.

I den ene kolonne er der en dato. Denne dato er angivet enten som MM/DD/YY
eller som MM-DD-YY
Desværre har jeg brug for at få en "rigtig" excel kode (DD.MM.YYYY)

Jeg skal checke om datoen er ældre end f.eks. 180 dage og hvis den er det så
skal mail-koden aktiveres.
Jeg har den stump kode jeg mener vil checke om datoen er ældre en 180 dage.
Den skal så bare kobles sammen med den kode jeg har for mail (sender ikke
mail, men ligger den i kladder)

Når den har checket i række af skal den også gøre det i kolonne B etc.
indtil der ikke er flere rækker.
evt. ved hjælp af en indput box.

Hvordan laver jeg MM/DD/YY og MM-DD-YY om til DD.MM.YYYY ?



For Each cell In Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row)
With cell
If DateDiff(interval:="d", date1:=.Value, date2:=Date) > 180 Then _
send mail (modtagers adresse står i kolonne A)
End With
End For



Sub Mail1()

Dim olApp As Object, olDrafts As Object
Dim olMail As Object
Dim Bdy As String
Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(0)
Set olDrafts = olApp.GetNamespace("MAPI").GetDefaultFolder(16)
With olMail
.Subject = "emnet"
Bdy = Bdy & "tekst" & vbCrLf & vbCrLf
Bdy = Bdy & "tekst" & vbCrLf
Bdy = Bdy & "tekst"
.Body = Bdy
.Recipients.Add "" &ActiveCell
.Move olDrafts
End With
Set olMail = Nothing
Set olApp = Nothing
End Sub






 
 
Claus Bernth (03-12-2002)
Kommentar
Fra : Claus Bernth


Dato : 03-12-02 11:10


Kan du ikke bare lave en variabel af typen 'Date'.

Jeg ville *egentlig* tro at du blot kunne smække indholdet fra en given celle
direkte ind i variablen da Date variablen er rimeligt fleksibel.

Ellers må du replace forekomster af '/' og '-' i strengen før du fortsætter.

Du kunne f.eks. gøre noget á la:
--
Dim MinDato as Date
MinDato = Trim(Replace(Replace( [celleindhold], "-", "."), "/", ".")))
--
Teksten "[celleindhold]" skal selvfølgelig udskiftes med den relevante celles
indhold.
Hvis du vil være helt 100% på at datoerne kan du formatere datoen om til lokalt
(maskinafhængigt) format inden du tildeler værdien til MinDato.

MinDato = Mid( [celleindhold], 4, 2) & "-" & Mid( [celleindhold], 1, 2) & "-" &
Mid( [celleindhold], 7, 2)

Vh,
Claus


Mid Function
Returns a Variant (String) containing a specified number of characters from a
string.

Syntax

Mid(string, start[, length])

The Mid function syntax has these named arguments:

Part Description
string : Required. String expression from which characters are returned. If
string contains Null, Null is returned.
start : Required; Long. Character position in string at which the part to be
taken begins. If start is greater than the number of characters in string, Mid
returns a zero-length string ("").
length : Optional; Variant (Long). Number of characters to return. If omitted or
if there are fewer than length characters in the text (including the character
at start), all characters from the start position to the end of the string are
returned.






>


preben nielsen (03-12-2002)
Kommentar
Fra : preben nielsen


Dato : 03-12-02 17:06


"Anders Kristiansen" <Anderssk@email.dk> skrev i en meddelelse
news:asg505$11qa$1@news.cybercity.dk...

> Jeg skal checke om datoen er ældre end f.eks. 180 dage og hvis
den er det så
> skal mail-koden aktiveres.
> Jeg har den stump kode jeg mener vil checke om datoen er ældre
en 180 dage.
> Den skal så bare kobles sammen med den kode jeg har for mail
(sender ikke
> mail, men ligger den i kladder)
>
> Når den har checket i række af skal den også gøre det i kolonne
B etc.
> indtil der ikke er flere rækker.
> evt. ved hjælp af en indput box.
>
> Hvordan laver jeg MM/DD/YY og MM-DD-YY om til DD.MM.YYYY ?

Du formatterer kolonnen som dato og kører en søg-og-erstat på "/"
til "-". Når dato er indtastet med "-" og kolonnen er formatteret
som dato, så vil Excel også opfatte det som en dato.

PS. Det rigtige sted at spørge havde været dk.edb.regneark.

--
/\ preben nielsen
\/\ prel@post.tele.dk





Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste