Avatar billede acw Nybegynder
17. september 2003 - 14:59 Der er 16 kommentarer og
1 løsning

validering af indhold

hvordan får man vba til at sammenligne data i en txt-fil og et array i regnearket, så hvis man trykker på den gem-knap jeg har lavet, vil den poppe op (eksempelvis) og exit sub, hvis fil og array stemmer overens?

ved ikke om det kan lade sig gøre...
Avatar billede bak Forsker
17. september 2003 - 16:45 #1
du indlæser da begge i hvert sit array og kører disse igennem og sammenligninger :-)

Hvis det er tal så en er hurtigere måde måske at indlæse tekstfilens data i et array, summere dem, summere data på regnearket og sammenligne summerne
Avatar billede acw Nybegynder
17. september 2003 - 20:09 #2
ka du ik smide noget kode op...jeg er efterhånden ved at være ret godt inde i VBA og excel, men problemet er jo at tekstfilen IKKE skal indlæses i arket, hvis indholdet i denne og et område på arket er nøjagtig de samme...
Avatar billede tfa_dk Nybegynder
17. september 2003 - 20:31 #3
Hvis de bare skal sammenlignes i deres helhed var det da nemmere at indlæse data fra filen så man var fri for at taste dem ind.....
Jeg tror måske du mener, at det der tastes ind skal være en delmængde af det der står i filen. Skifter filen indhold over tid? Hvis du vil have mere konkret hjælp skal du beskrive problemstillingen noget mere udførligt.
Avatar billede acw Nybegynder
18. september 2003 - 09:15 #4
Det handler om timeregistrering
en bruger taster nogle data ind, som bliver gemt som en tabulatorsepareret fil vha. en knap.
en anden knap henter disse data ind igen vha. kopier-sæt-ind.
en tredje knap gemmer data som tabulatorsepareret fil og emailer denne fil.
Problemet er, at brugerne gerne må sende flere filer med samme navn, men ikke med samme indhold. Så hvis man har indtastet timer for eks. mandag og har sendt dem, og man så onsdag taster for tirsdag OG onsdag, må man gerne kunne sende denne fil, men ikke hvis indholdet er det samme som en allerede gemt fil...håber i forstår
Avatar billede tfa_dk Nybegynder
18. september 2003 - 10:38 #5
Det lyder som om du gør en nem problemstilling svær, nem lad os i første omgang se bort fra det.

Resume

1. Person inddatere sine timer resultat gemmes i en fil.
2. Person indlæser timerne i sit eget regneark og kontrollere at de ikke allerede findes.
Spørgsmål: Har du ikke et medarbejdernummer og registringsdato i din tabulatorsepareret fil som kan bruges som nøgler ved validering?
Avatar billede acw Nybegynder
18. september 2003 - 10:48 #6
arg det er svært at forklare...

Det er intet problem at få vba til at sammenligne filnavn.

________________________________________________
Sub check_dublet()

    ' her checker jeg om filen man er ved at gemme allerede eksisterer, hvis den gør, afbryder den
    a = Dir("c:\timeregistrering\" & Range("init").Value & "\*.txt")
               
        If a = Range("init").Value & " " & Range("uge").Value & "s" & ".txt" Then
          MsgBox "Du har allerede gemt for denne uge!", vbCritical
          Exit Sub
          End If

End Sub
____________________________________

din 2.'er er forkert. Bruger checker ikke at de allerede findes...
Avatar billede bak Forsker
18. september 2003 - 11:06 #7
Hvilken separator bruger du i din tekstfil ?
Avatar billede acw Nybegynder
18. september 2003 - 11:18 #8
tabulator
Avatar billede acw Nybegynder
18. september 2003 - 11:20 #9
eksempel på en linie i tekstfil:

12345    17-09-2003    TA        5,5

og ja, der er 2 mellemrum mellem TA og 5,5
Avatar billede bak Forsker
18. september 2003 - 11:57 #10
et eksempel på hvordan man kan sammenligne uden at læse tekstfilen ind i regneark, men istadet ind i et variantarray

Sub test()
Dim i As Long, b As Long
Dim x As Variant
Dim y As String
Open "c:\bookxxx.txt" For Input As #1
While Not EOF(1)
    Line Input #1, y
    b = b + 1
    x = Split(y, Chr(9))
    For i = LBound(x) To UBound(x)
      If x(i) <> Cells(b, i + 1).Text Then
            MsgBox "Der er en forskel"
            GoTo Forskel
      End If
    Next
 
Wend
Close #1
MsgBox "Ingen forskel"
Exit Sub
Forskel:

Close #1
ActiveWorkbook.SaveAs "cncncncncn"
End Sub
Avatar billede acw Nybegynder
18. september 2003 - 12:06 #11
hvilket område i arket sammenligner den med?
Avatar billede acw Nybegynder
18. september 2003 - 12:14 #12
i øvrigt skal det "kun" være de tre første værdier (vandret) der skal sammenlignes
Avatar billede bak Forsker
18. september 2003 - 12:38 #13
Nu er det jo kun et eksempel, du kan arbejde videre ud fra. Jeg kender ikke resten af din kode.

Her sammenlignes kun A1,b1,c1 på det aktive ark med 1,2 og 3. værdi i tekstfilen

Sub test()
Dim i As Long, b As Long
Dim x As Variant
Dim y As String
Open "c:\bookxxx.txt" For Input As #1
'While Not EOF(1)
    Line Input #1, y
    b = b + 1
    x = Split(y, Chr(9))
    For i = LBound(x) To 2
      If x(i) <> Cells(b, i + 1).Text Then
            MsgBox "Der er en forskel"
            GoTo Forskel
      End If
    Next
 
'Wend
Close #1
MsgBox "Ingen forskel"
Exit Sub
Forskel:

Close #1
ActiveWorkbook.SaveAs "cncncncncn"
End Sub
Avatar billede acw Nybegynder
18. september 2003 - 14:55 #14
det er fint tak, nu har jeg noget at gå ud fra...svar for point
Avatar billede bak Forsker
18. september 2003 - 15:05 #15
ok, her er et svar......
Avatar billede acw Nybegynder
19. september 2003 - 08:48 #16
nu har jeg rodet lidt med det, og hvordan får man det ændret til at checke b9,c9,d9 ?
Avatar billede acw Nybegynder
19. september 2003 - 08:49 #17
ligemeget, har fundet ud af det
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