Avatar billede dth Nybegynder
05. juni 2001 - 19:48 Der er 16 kommentarer og
4 løsninger

HJÆÆÆÆLP!!!

Er der nogen der kan fortælle mig hvad der er galt i dette her stykke kode??

Private Sub mnu_nypro_Click()
Dim i As Integer, j As Integer, ok As Integer
On Error GoTo 1

CommonDialog1.ShowSave

Fil = CommonDialog1.FileName

If Dir(CommonDialog1.FileName) <> \"\" Then

ok = MsgBox(\"Vil du overskrive det eksisterende projekt?\", vbYesNo + vbCritical, \"Nyt projekt\")

Open CommonDialog1.FileName For Output As #1
For j = 1995 To 2020
    For i = 0 To 11
        maaned(i, j) = 0
        Print #1, maaned(i, j)
    Next
Next

Close #1

Open Fil For Input As #1
For j = 1995 To 2020
    For i = 0 To 11
        Line Input #1, maaned(i, j)
    Next
Next

Close #1

1
End Sub

På forhånd mange tak!!

dth :-)
Avatar billede kaffe Nybegynder
05. juni 2001 - 19:59 #1
Hvilken fejlmeddelelse får du?
(fjern lige 1-tallet over End Sub)

Avatar billede dth Nybegynder
05. juni 2001 - 20:07 #2
Compile error:

Type mismatch
Avatar billede dth Nybegynder
05. juni 2001 - 20:09 #3
Og nu jeg er i gang, så kan jeg heller ikke få programmet til at formatere min tekst som den skal når jeg skriver:

Format(maaned(i, j), \"kr. 000.000.000,00\" så skriver den kr, 000.000.000,00

Jeg ville gerne have den til at formatere teksten som valuta, og uden unødige nuller foran!!!
Avatar billede dth Nybegynder
05. juni 2001 - 20:18 #4
Variablen maaned i open for input er blå.....
Avatar billede mgroetan Nybegynder
05. juni 2001 - 20:19 #5
Du skal bruke FormatCurrency-metoden, men den bruker riktig nok din regional-setting til å bestemme hva slags currency det er snakk om. Hvis ikke dette er OK får du hardkode \"kr, \" foran.
Avatar billede dth Nybegynder
05. juni 2001 - 20:39 #6
mgroetan: Hundrede mange tak, det virker sgu!!!
Pointene kommer senere!!
Avatar billede dth Nybegynder
05. juni 2001 - 20:49 #7
Jeg har også et problem med en inputbox, hvis man trykker cancel får jeg en fejlmedd.!! Hvorfor det??
Avatar billede bendixen Novice
05. juni 2001 - 21:18 #8
Det er fordi du ikke har fejlhåndtering på din inputbox
Prøv at bruge noget fra dette :

    Dim ret As String
    Dim kontrol As Integer
   
    ret = InputBox(\"Indtast comport\", \"Valg af comport...\", ComPort)
    If ret <> \"\" Then
        kontrol = Val(ret)
        If kontrol = 0 Then
            MsgBox \"Du har lavet en indtastningsfejl\", vbCritical, \"Fejl ved valg af Comport\"
            Call mnuSelectComport_Click
        Else
            ComPort = kontrol
            InitalicerPort
        End If
    End If

MVH
bendixen
Avatar billede dth Nybegynder
05. juni 2001 - 21:25 #9
Bendixen -> jeg tror du har misforstået, for det er når man trykker på cancel jeg får problemer!!
Avatar billede bendixen Novice
05. juni 2001 - 21:34 #10
Når du trykker Cancel er ret = \"\" og det er det du skal teste på.

Avatar billede dth Nybegynder
05. juni 2001 - 21:55 #11
Men hvis jeg skriver If aar = \"\" then exit sub, så slutter den også subben selvom der indtastet et rigtigt tal i boksen!!!
Avatar billede bendixen Novice
05. juni 2001 - 22:03 #12
jeg tror jeg skal se lidt mere kode for at gennemskue det.
Avatar billede dth Nybegynder
05. juni 2001 - 22:13 #13
aar = InputBox(\"Indtast årstallet\")
maaneder = Array(\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\", \"Året ialt\")

If aar < 1995 Or aar > 2020 Then
    MsgBox \"Årstallet skal være mellem 1995 og 2020\", , \"Fejl\"
    Exit Sub
End If
Avatar billede bendixen Novice
05. juni 2001 - 22:15 #14
prøv dette :
aar = InputBox(\"Indtast årstallet\")
maaneder = Array(\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\", \"Året ialt\")

If aar > 1995 Or aar < 2020 Then
    MsgBox \"Årstallet skal være mellem 1995 og 2020\", , \"Fejl\"
    Exit Sub
End If

(rettet < & >)
Avatar billede bendixen Novice
05. juni 2001 - 22:19 #15
Sorry
Her er fejlen rettet (det andet var en tanke torsk)
aar = InputBox(\"Indtast årstallet\")
maaneder = Array(\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\", \"Året ialt\")

If ((aar < 1995) Or (aar > 2020)) Then
    MsgBox \"Årstallet skal være mellem 1995 og 2020\", , \"Fejl\"
    Exit Sub
End If
Avatar billede dth Nybegynder
05. juni 2001 - 22:26 #16
Tak for det bendixen, pointene kommer når jeg finder ud af det øverste spørgsmål!
Avatar billede rasmuss Nybegynder
06. juni 2001 - 13:05 #17
Du har glemt at skrive : efter 1 tallet i slutningen.

PS:

I stedet for at skrive:

Dim i As Integer, j As Integer, ok As Integer

Så skriv:

Dim i, j, ok as Integer
Avatar billede johs_j Novice
06. juni 2001 - 15:15 #18
Jeg tror du skal prøve at se lidt på Commondialog.Flags
Der findes et flag som du kan sætte så den selv kan se om filen findes i forvejen.
Avatar billede dth Nybegynder
06. juni 2001 - 18:16 #19
Problemet ligger helt sikkert i koderne hvor jeg åbner filen anden gang for at læse den, for det er der den er markeret når fejlen opstår!
Avatar billede kaffe Nybegynder
06. juni 2001 - 18:39 #20
rasmuss ->
hvis du erklærer variable som du skriver får du i og j som variant og ok som integer.
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