Avatar billede garfieldpbj Nybegynder
29. november 2006 - 20:52 Der er 13 kommentarer og
1 løsning

Hjælp til VBA søges

Hej er der nogen der kan hjælpe eller fortælle hvor jeg kan få
hjælp til nedenstående problemstilling...?

Har 1 workbook med  2 worksheets, en sheet med Bøger(indeholder ID i
en kolonne og en anden kolonne med antal hjemme) og en sheet med
modtaget bøger(med tilsvarende ID nummer)..
Alle Modtagne bøger er blevet listet efterhånden som de bliver
modtaget, og de samme id-numre kan optræde flere gange(da der er flere
ens bøger)


Det jeg nu ønsker er at hver modtagne bog bliver registreret under
kolonnen med antal hjemme i sheetet med bøger...


Således at hvis jeg modtager i alt 3 bøger med Id nummer 01 (hvilket
ses på sheetet med modtaget)
skal dette vises i sheete med bøger hvor antal hjemme skal stige med 3
under antal hjemme..


Skal bruge nogle løkker og tælle-variable, men kan ikke lige
gennemskue hvordan jegskal gribe denne lille opgave an...


Mvh.


Peter
Avatar billede kabbak Professor
29. november 2006 - 22:58 #1
= TÆL.HVIS(Ark1!A:A;Ark2!A2)

Tæller alle ID i Ark1!A:A der er = ID i Ark2!A2
Avatar billede garfieldpbj Nybegynder
29. november 2006 - 23:14 #2
hej og tak for svaret.. jeg søger dog vba-koden til ovenstående, da jeg skal bruge værdierne senere...

/peter
Avatar billede kabbak Professor
29. november 2006 - 23:19 #3
A = WorksheetFunction.CountIf(Sheets("Ark1").Range("A:A"), Sheets("Ark2").Range("A2"))
Avatar billede garfieldpbj Nybegynder
29. november 2006 - 23:28 #4
tak for hjælpen.. prøver om jeg ikke kan få det til at virke..

mvh og fortsat god aften (nat :-))

/peter
Avatar billede garfieldpbj Nybegynder
30. november 2006 - 18:08 #5
Hej.. tak for hjælpen..! Opgaven volder mig dog stadigvæk problemer,
desværre..

Ved ikke om koden er helt rigtigt eller om det er bare er mig der ikke
rigtigt forstår den..!


Så vil lige skrive mine områder...


Ark1: BogId befinder sig i Range (A2:A39) (Hvor Id numrene listet 1 for
1 dernedaf)
        Bøger hjemme: her søges det at når bøger bliver modtaget,
vil kolonnen hjemme,stige med 1 ud fra den respektive BogId (samme
bøger kan komme flere gange!) Modtag har range (D2:D39), er pt. tom
men ønsket er at de nu skal opdateres med stk. antal der er kommet
hjem ud fra Ark 2.


Ark 2: BogId i ark 2 har Range(B2:B322), hver enkelt bog listes op og
hver linie afspejler en modtagelse, hvilket vil sige at samme BogId kan
komme flere gange..


Er måske lidt gentaget.. men syntes nu heller ikke det er den
simpleste opgave. Skal laves i VBA, da det på længere sigt skal kunne
udvides med Ventelister, og skal kunne modtage reservationer etc.


Mvh.


(-Peter-)
Avatar billede kabbak Professor
01. december 2006 - 09:58 #6
ER det et biblioteks udlån du prøver at lave, så må du jo også registrere dem der er ude.
Så hvordan er det registreret
Avatar billede garfieldpbj Nybegynder
01. december 2006 - 15:03 #7
Dette er ikke regisreret endnu, bliver det første senere.. lige nu er mit eneste mål at lave en funktion der kan få kolonnen "modtaget" til at stige med en for hver modtaget bog.. og dermed skal det kun registreres det ene sted...!
Avatar billede kabbak Professor
01. december 2006 - 20:34 #8
= TÆL.HVIS(Ark2!$B$2:$B$322;A2)
Jeg forstår ikke hvorfor du vil have det i VBA, når Excels indbyggede funktion kan gøre det.

Sæt denne formel ind i en celle i række 2 Ark1 og træk den nedad til række 39, så regner den det ud.
Avatar billede garfieldpbj Nybegynder
01. december 2006 - 21:12 #9
Det er fordi det er en skoleopgave hvor kravet er at det skal laves i VBA...!
Avatar billede kabbak Professor
01. december 2006 - 22:50 #10
Public Sub TælBøger()
    Dim I As Long, X As Long, Antal As Long
    Antal = 0    ' antal nulstilles
    For I = 2 To Sheets("Ark1").Range("A65536").End(xlUp).Row    ' Finder sidste række i Ark1 A kolonnen
        For X = 2 To Sheets("Ark2").Range("B65536").End(xlUp).Row    ' Finder sidste række i Ark2 B kolonnen
            If Sheets("Ark2").Cells(X, "B") = Sheets("Ark1").Cells(I, "A") Then    ' Sammenligner
                Antal = Antal + 1    ' tæller
            End If
        Next
        Sheets("Ark1").Cells(I, "D") = Antal    ' skriver antal i Ark1 D kolonnen
        Antal = 0    ' antal nulstilles
        ' næste bog
    Next
End Sub
Avatar billede garfieldpbj Nybegynder
02. december 2006 - 00:33 #11
tusinde tak for hjælpen.. det virkede med det samme uden problemer..
Avatar billede kabbak Professor
02. december 2006 - 10:08 #12
Ok, held og lykke med opgaven ;-))
Avatar billede kabbak Professor
02. december 2006 - 22:40 #13
husk at afslutte spørgsmålet, ved at markere mit navn i boksen til venstre og tryk accepter
Avatar billede garfieldpbj Nybegynder
03. december 2006 - 13:28 #14
TAK... og undskyld, troede jeg havde gjort 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
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