|
| vba hjælp Fra : (-Peter-) |
Dato : 29-11-06 20:58 |
|
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
| |
Jan Kronsell (29-11-2006)
| Kommentar Fra : Jan Kronsell |
Dato : 29-11-06 23:13 |
|
"(-Peter-)" <garfieldpbj@mail-online.dk> skrev i en meddelelse
news:1164830289.539211.282010@j72g2000cwa.googlegroups.com...
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...
Hvorfor VBA? Hvis alle modtagne bøger står i arket, kan du håndtere det med
en TÆL.HVIS formel ii cellen Antal hjemme.
Altsså har du fxx ID 01 i Ark1, og de modtagne i Ark2, kan du i cellen antal
hjemme sætte en formel i denen stil:
=TÆL.HVIS(Ark2!A1:A20;Ark1!A1)
Det kræver selvfølgelig at bøegerne slettes i modtagne, når de ikke længere
er hjemme.
Jan
| |
(-Peter-) (29-11-2006)
| Kommentar Fra : (-Peter-) |
Dato : 29-11-06 23:30 |
|
Jan Kronsell (nomorespam) skrev:
> Hvorfor VBA? Hvis alle modtagne bøger står i arket, kan du håndtere det med
> en TÆL.HVIS formel ii cellen Antal hjemme.
da jeg skal bruge det senere i projektet, hvor der er andre
delelementer hvor det vil være smart at genbruge elementerne :)
men ellers tak for svaret..
/peter
| |
Jan Kronsell (30-11-2006)
| Kommentar Fra : Jan Kronsell |
Dato : 30-11-06 10:47 |
|
"(-Peter-)" <garfieldpbj@mail-online.dk> skrev i en meddelelse
news:1164839420.573448.195410@14g2000cws.googlegroups.com...
Jan Kronsell (nomorespam) skrev:
> Hvorfor VBA? Hvis alle modtagne bøger står i arket, kan du håndtere det
> med
> en TÆL.HVIS formel ii cellen Antal hjemme.
da jeg skal bruge det senere i projektet, hvor der er andre
delelementer hvor det vil være smart at genbruge elementerne :)
men ellers tak for svaret..
Prøv at lægge denne i kodearket til Ark2 (det ark, hvor du har "Modtagne
bøger"). Den forudsætter stadig at alle modtagne bøger står i arket samt at
ID nummeret står i A-kolonnen i begge ark. Området, der arbejdes i, i de to
ark kan naturligvis ændres.Lige nu arbejdes i de 100 første celler i arket
med modtagne bøger og de første 20 i arket med beholdning.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cnt As Long
Dim varX As String, varY As String, adr As String
If Not Intersect(Target, Range("a1:a100")) Is Nothing Then
For Each c In Sheets(1).Range("a1:a20").Cells
If IsEmpty(c.Value) Then Exit Sub
cnt = 0
varX = c.Value
adr = c.Address
For Each p In Sheets(2).Range("a1:a100").Cells
varY = p.Value
If varX = varY Then cnt = cnt + 1
Next p
Sheets(1).Range(adr).Offset(0, 1).Value = cnt
Next c
End If
End Sub
Jan
| |
(-Peter-) (30-11-2006)
| Kommentar Fra : (-Peter-) |
Dato : 30-11-06 18:05 |
|
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-)
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim cnt As Long
> Dim varX As String, varY As String, adr As String
>
> If Not Intersect(Target, Range("a1:a100")) Is Nothing Then
> For Each c In Sheets(1).Range("a1:a20").Cells
> If IsEmpty(c.Value) Then Exit Sub
> cnt = 0
> varX = c.Value
> adr = c.Address
> For Each p In Sheets(2).Range("a1:a100").Cells
> varY = p.Value
> If varX = varY Then cnt = cnt + 1
> Next p
> Sheets(1).Range(adr).Offset(0, 1).Value = cnt
> Next c
> End If
> End Sub
>
> Jan
| |
Jan Kronsell (30-11-2006)
| Kommentar Fra : Jan Kronsell |
Dato : 30-11-06 23:36 |
|
"(-Peter-)" <garfieldpbj@mail-online.dk> skrev i en meddelelse
news:1164906308.582166.206100@l39g2000cwd.googlegroups.com...
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.
Det burde virke, hvis du ændrer områderne i koden:
Det første skal ændres til B2:B500 eller lignende. jeg gåtr ud fra at derkan
komme flere bøgfer til, end dem du allerede har.
Det andet rettes til A2:A39 og det sidste skal være det samme som det
første.
Koden skal ligge i kodemodulet til Ark2.
Jan
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim cnt As Long
> Dim varX As String, varY As String, adr As String
>
> If Not Intersect(Target, Range("a1:a100")) Is Nothing Then
> For Each c In Sheets(1).Range("a1:a20").Cells
> If IsEmpty(c.Value) Then Exit Sub
> cnt = 0
> varX = c.Value
> adr = c.Address
> For Each p In Sheets(2).Range("a1:a100").Cells
> varY = p.Value
> If varX = varY Then cnt = cnt + 1
> Next p
> Sheets(1).Range(adr).Offset(0, 1).Value = cnt
> Next c
> End If
> End Sub
>
> Jan
| |
(-Peter-) (01-12-2006)
| Kommentar Fra : (-Peter-) |
Dato : 01-12-06 13:44 |
|
Hvordan får man så kolonnen modtaget til at vise den er steget med de
x antal film der er modtaget af hver slags...?
| |
Jan Kronsell (01-12-2006)
| Kommentar Fra : Jan Kronsell |
Dato : 01-12-06 14:05 |
|
"(-Peter-)" <garfieldpbj@mail-online.dk> skrev i en meddelelse
news:1164977032.246680.164490@73g2000cwn.googlegroups.com...
Hvordan får man så kolonnen modtaget til at vise den er steget med de
x antal film der er modtaget af hver slags...?
Når der ændres i Ark2, skulle den gerne automatisk finde det samme ID nummer
i Ark1, som er blevet tiføjet i Ark2, og opdatere her.
Jan
| |
|
|