|  | 		    
					
        
         
          
         
	
          | |  | 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
 
 
 
 
 |  |  | 
 |  |