Avatar billede rabitjosph Juniormester
08. februar 2009 - 08:59 Der er 16 kommentarer og
1 løsning

Omsæt tal til dato til "excelent"

Hej

Format som jeg skal bruge er 10-02-2009 som jeg vil gerne have til at stå i celle A1

Det som jeg slår op i en celle er 1002 henter det i et andet regneark

Hvordan får jeg makro til dette ?
Avatar billede excelent Ekspert
08. februar 2009 - 09:35 #1
Så vidt jeg husker må et spørgsmål ikke stiles til en bestemt person - ifølge reglerne
Men mon ikke der kommer en expert forbi med løsningen.
Avatar billede rabitjosph Juniormester
08. februar 2009 - 11:41 #2
Var det muligt at få et svar ?
Avatar billede Lene Fredborg Ekspert
08. februar 2009 - 11:58 #3
Hvis følgende forudsætninger gælder:
- den dato, du henter, har altid 4 cifre
- året skal være indeværende år
- du har gemt datoen i en variabel ved navn strDate
så kan du ændre datoen til det ønskede sådan:

strDate = Left(strDate, 2) & "-" & Right(strDate, 2) & "-" & Year(Date)

Eks: 1002 vil blive til 10-02-2009, 0304 vil blive til 03-04-2009

Følgende vil skrive strDate i celle A1:
Range("A1") = strDate
Avatar billede rabitjosph Juniormester
08. februar 2009 - 12:30 #4
Hammer godt tak
svar tak
Avatar billede Lene Fredborg Ekspert
08. februar 2009 - 12:42 #5
Velbekom.
Avatar billede rabitjosph Juniormester
08. februar 2009 - 12:56 #6
UPS lige en lille ting

Hvordan fjerner de 2 gåseøjne

"10-02-2009" = strDate

så det bliver til
10-02-2009 = str(Date) ?

forward thx
Avatar billede Lene Fredborg Ekspert
08. februar 2009 - 13:31 #7
Jeg er ikke helt med på, hvad du spørger om.

Du kan ikke have noget, der vender sådan:

"10-02-2009" = strDate

strDate skal være defineret som en variabel af typen String, og der skal gåseøjne om. Hvis du sætter strDate = "10-02-2009" og indsætter strDate i en celle, er det kun
10-02-2009
der bliver indsat. Gåseøjnene kommer ikke med.

Det ville gøre det lettere at svare dig, hvis du viser den kode, du har lavet.
Avatar billede rabitjosph Juniormester
08. februar 2009 - 13:37 #8
Håber det hjælper lidt

Jeg bruger Value1 til at finde en bestemt række
hvis datoen står i Cells(2, 2).Value virker det og jeg vil tro at det er en dato og ikke en string ?


strDate = Range("a1")
    strDate = Left(strDate, 2) & "-" & Right(strDate, 2) & "-" & Year(Date)
    Value1 = strDate

'Value1 = Cells(2, 2).Value  'Lavet miderligt Dato tidigt så det står i celle G40
    Windows("Målepunkter Ny 2009 Feb automa.xls").Activate
      Columns(1).Select
next1:
    Selection.Find(What:=Value1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
    True).Activate
   
       
    slutomr = ActiveCell.Row ' Det skulle være rækken med ønsket dato
Avatar billede rabitjosph Juniormester
08. februar 2009 - 13:38 #9
'Value1 = Cells(2, 2).Value  'Lavet miderligt Dato tidigt så det står i celle G40

Ja når jeg bruger linien så er det ikke G40 men B2
Avatar billede Lene Fredborg Ekspert
08. februar 2009 - 14:04 #10
Jeg forstår vist ikke helt, hvad det er, du forsøger at få til at ske. Variablen strDate indeholder allerede datoen i det format, du vil have. Hvorfor gemmer du den i en anden variabel i stedet for med det samme at indsætte værdien af strDate, der hvor du vil have den?

Et generelt spørgsmål:
Har du i toppen af dine VBA-moduler en linje med teksten:
Option Explicit

Hvis det ikke er tilfældet, skulle du skrive det i toppen af det modul, der indeholder din makro. For automatisk at få "Option Explicit" indsat i nye moduler, vælg i VBA-editoren følgende:
Tools > Options > fanen Editor. Slå "Require Variable Declaration" til.
Det betyder, at din kode vil vise fejl, hvis du ikke har erklæret en eller flere variabler eller hvis du har rod i typerne, så du f.eks. prøver at sætte en dato lig med en streng.
Det er en stor hjælp til at sikre, at du skriver kode, der kan virke.
Avatar billede rabitjosph Juniormester
08. februar 2009 - 15:21 #11
Hej
Det var et forsøg på at fjerne de omtale gåseøjne "    "

Når man holder musen hen over strDate vil den vise "10-02-2009"
under programafvikling med step F8

Hvis så jeg har indtastet dato i en celle og tager den over i value1 viser den 10-02-2009 og så kan det vider forløb køre

  Columns(1).Select
next1:
    Selection.Find(What:=Value1, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
    True).Activate


og det er det her lille styk kode der skal finde en dato i A rækken
Avatar billede Lene Fredborg Ekspert
08. februar 2009 - 16:04 #12
Det lyder jo så til, at du har fået det til at virke.

Vær opmærksom på, at en String i VBA altid vises med gåseøjne omkring mens f.eks. en Integer eller en Date ikke gør. Når din Value1 ikke har gåseøjne om, skyldes det jo så, at det ikke er en String. Jeg kan ikke af din indsatte kode se, hvordan (eller om) du har erklæret dine variable (Dim strDate as String osv.).

Hvis du har "Option Explicit" i toppen af dit modul, vil du få fejl 13, "Type mismatch", hvis du prøver at sætte en variabel lig en anden, med mindre de passer sammen.
Avatar billede rabitjosph Juniormester
08. februar 2009 - 16:33 #13
Nej det virker ikke og det er rigtigt som du skriver at det nok er min dim der er problemer med

strDate = Left(strDate, 2) & "-" & Right(strDate, 2) & "-" & Year(Date)

Efter denne linje er kørt, vil jeg gerne at
strDate står uden gåseøjne omkring

Har prøvet med
Dim strDate As Integer men så vil det ikke køre ?
Avatar billede Lene Fredborg Ekspert
08. februar 2009 - 18:15 #14
Det er stadig lidt noget gætteri fra min side, fordi jeg ingen steder kan se, hvordan du har erklæret dine variable. Kan du få det til at virke, hvis du gør sådan i stedet:

    Dim strDate As Variant
    Dim Value1 As Date
   
    strDate = [her skal du indsætte den værdi, du henter fra cellen i det andet regneark, f.eks. "1002"]

    'Brug nu værdien i strDate til at skabe en dato i Value1
    Value1 = Left(strDate, 2) & "-" & Right(strDate, 2) & "-" & Year(Date)
Avatar billede excelent Ekspert
08. februar 2009 - 19:19 #15
x="01-01-2003"
cdate(x) = 01-01-2003
Avatar billede rabitjosph Juniormester
09. februar 2009 - 18:02 #16
Ja hvor er ting nemt når man kan det, tak til begge
kan svar deles
Avatar billede excelent Ekspert
09. februar 2009 - 18:09 #17
Det er ok jeg står over på denne :-)
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