jeg er igang med at lave en liste/skema i exel
ark1 er et skema og ark2 er en liste til sammentælling. Hvordan gør jeg det,
Så værdien i ark1 b2 over til ark2 b4 hvis værdien i ark1 b1 er lig 1
Og værdien i ark1 b2 over til ark2 b5 hvis værdien i ark1 b1 er lig 2
Og værdien i ark1 b2 over til ark2 b6 hvis værdien i ark1 b1 er lig 3
Hej Bo
I ark2 B4
=HVIS(Ark1!B1=1;Ark1!B2;"")
Tilsvarende for B5 og B6.
En celle kan ikke *flytte* data til en anden celle. Princippet
er, at du i den "modtagende" celle bruger en formel til at
"hente" data fra andre celler.
--
Med venlig hilsen
Leo Heuser
Followup to newsgroup only please.
Problemet er ikke helt løst for når jeg ændre værdien i ark1b1 til 2
forsvinder værdien i ark2b4 den skulle gerne blive da det er en liste til
sammentælling.
"Leo Heuser" <leo-h...@NOSPAMadslhome.dk> skrev i en meddelelse
news:3j6ev5F...@individual.net...
Velbekomme, Bo.
Dette kan gøres med VBA, hvor værdier gemmes i en anden del af arket
eller i et andet ark. Disse værdier bliver så opdateret, hver gang der
indtastes nye i Ark1!B1:B2
Det *kan* også gøres ved at sætte cirkulær reference til én gentagelse,
men der er altså nogle faldgruber her.
Jeg går ud fra, at det, du er interesseret i, er at summere indtastningerne
i Ark1!B2, alt efter hvilken værdi der står i Ark1!B1?
Hvis der fx står 1 i Ark1!B1 og 4 i Ark1!B2, hvad skal der så ske med
opdateringer, hvis du fx indtaster 2 i Ark1!B1. Skal der så opdateres
med tallet 4, eller skulle du først have slettet B2, inden du indtastede
et nyt tal i B1?
Det er korrekt B kolonen i ark2 bliver talt sammen
> Hvis der fx står 1 i Ark1!B1 og 4 i Ark1!B2, hvad skal der så ske med
> opdateringer, hvis du fx indtaster 2 i Ark1!B1. Skal der så opdateres
> med tallet 4, eller skulle du først have slettet B2, inden du indtastede
> et nyt tal i B1?
Hvis jeg indtaster 2 i ark1b1skal værdien i ark1b2 bare kopieres til ark2b5
indtaster jeg 3 iark1b1 skal værdien i ark1 b2 kopieres til ark2b6 osv.
LeoH
Nej
Værdien i ark1b1 bliver ændret sammen med værdien i ark1b2 Der skal ikke stå
9(6+3) Hvis værdien i ark1b2 ændres til 6 er det 6 der skal stå i ark2
kolonne b
Kopiér nedenstående kode.
Højreklik på arkfanen i Ark1 og vælg "Vis programkode".
Indsæt koden i det højre vindue.
Koden afvikles hver gang, der sker en forandring i en celle
i ark1. Hvis denne celle er B2, vil koden checke værdien i
B1 og indsætte værdien fra B2 i den tilhørende celle i
området B4:B6 i ark2.
Private Sub Worksheet_Change(ByVal Target As Range)
'Leo Heuser, 14-7-2005
Dim CheckRange As Range
Dim CheckRangeValues As Variant
Dim DestRange As Range
Dim Dummy As Variant
Dim SourceCell As Range
Set SourceCell = Range("B2")
Set CheckRange = Range("B1")
CheckRangeValues = Array(1, 2, 3)
Set DestRange = Sheets("Ark2").Range("B4:B6")
If Target.Cells.Address = SourceCell.Address Then
Dummy = Application.Match(CheckRange, CheckRangeValues, 0)
If Not IsError(Dummy) Then
DestRange.Cells(Dummy, 1).Value = SourceCell.Value
End If
End If
End Sub
Hej Leo
Det virker fint hjemme på min pc, men på jobbet hvor jeg egentlig
skal
bruge det virke det ikke.
Når jeg vælger "WORKSHEET og CHANGE" bliver den første linie :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Jeg har prøvet at slette Excel. manuelt uden effekt. Hvad kan der
være
galt (gammel version af excel?)
For at færdig udvikle mit projekt vil jeg i ark2 kolonne B have ialt
30 poster til sammentælling dernæst vil jeg gerne have 30 poster i
kolonne E Til slut vil jeg gerne fortsætte på ark3 med 30 poster i
kolonne B og dernæst 30 poster i kolonne E
Hvordan skriver jeg det ind? Jeg er kommet så vidt :
Private Sub Worksheet_Change(ByVal Target As Range)
'Leo Heuser, 14-7-2005
Dim CheckRange As Range
Dim CheckRangeValues As Variant
Dim DestRange As Range
Dim Dummy As Variant
Dim SourceCell As Range
Set SourceCell = Range("b20")
Set CheckRange = Range("b14")
CheckRangeValues = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30)
Set DestRange = Sheets("ark1").Range("b11:b40")
If Target.Cells.Address = SourceCell.Address Then
Dummy = Application.Match(CheckRange, CheckRangeValues, 0)
If Not IsError(Dummy) Then
DestRange.Cells(Dummy, 1).Value = SourceCell.Value
End If
End If
End Sub
Det virker som sagt på min hjemme pc
Jeg håber du vil hjælpe mig denne sidste gang
venlig hilsen
"Bo Jakobsgaard" <bo.jako...@fjernesget2net.dk> skrev i en meddelelse >
Når jeg vælger "WORKSHEET og CHANGE" bliver den første linie :
> Private Sub Worksheet_Change(ByVal Target As Excel.Range)
> Jeg har prøvet at slette Excel. manuelt uden effekt. Hvad kan der
> være
> galt (gammel version af excel?)
>
Det lyder som en ældre sag.
Hvilken version af Excel har du på arbejdet?
Jeg kan kun checke løsninger i Excel 97 og frem.
> For at færdig udvikle mit projekt vil jeg i ark2 kolonne B have ialt
> 30 poster til sammentælling dernæst vil jeg gerne have 30 poster i
> kolonne E Til slut vil jeg gerne fortsætte på ark3 med 30 poster i
> kolonne B og dernæst 30 poster i kolonne E
Den er du nødt til at forklare nærmere.
LeoH
Private Sub Worksheet_Change(ByVal Target As Range)
'Leo Heuser, 26-7-2005
Dim CheckRange As Range
Dim CheckRangeValues As Variant
Dim DestRange As Range
Dim Dummy As Variant
Dim SourceCell As Range
Set SourceCell = Range("B2")
Set CheckRange = Range("B1")
CheckRangeValues = Array(1, 2, 3)
Set DestRange = Sheets("Ark2").Range("B4:B6")
If Not Intersect(Target, Union(SourceCell, CheckRange)) Is Nothing Then
Dummy = Application.Match(CheckRange, CheckRangeValues, 0)
If Not IsError(Dummy) Then
DestRange.Cells(Dummy, 1).Value = SourceCell.Value
End If
End If
End Sub
Med venlig hilsen
LeoH
Jeg har checket løsningen (nedenstående) i Excel 97 med Windows XP,
og den fungerer, som den skal.
Du har muligvis fået noget "snask" fra mellemrummene i starten af
linjerne med over, da du kopierede koden.
Prøv at kopiere koden, som den står nedenfor og sæt den ind i det
korrekte vindue.
Hvis det ikke hjælper, har jeg ikke noget bud på, hvad der er galt.
Private Sub Worksheet_Change(ByVal Target As Range)
'Leo Heuser, 26-7-2005
Dim CheckRange As Range
Dim CheckRangeValues As Variant
Dim DestRange As Range
Dim Dummy As Variant
Dim SourceCell As Range
Set SourceCell = Range("B2")
Set CheckRange = Range("B1")
CheckRangeValues = Array(1, 2, 3)
Set DestRange = Sheets("Ark2").Range("B4:B6")
If Not Intersect(Target, Union(SourceCell, CheckRange)) Is Nothing Then
Dummy = Application.Match(CheckRange, CheckRangeValues, 0)
If Not IsError(Dummy) Then
DestRange.Cells(Dummy, 1).Value = SourceCell.Value
End If
End If
End Sub
LeoH
Det var Excel 97 SR-2
LeoH
Mange tak for hjælpen Leo nu kører projektet fint jeg har lige et
spørgsmål : Når jeg efter endt indtastninger vil begynde på en ny
produktion sletter jeg alle data på ark2 så kan jeg ikke "starte"
regnearket igen
vh Bo
Mener du, at når du taster tal ind i B1 og B2 i ark1, så kommer
der ingen tal i B4:B6 i ark2?
LeoH
Ja når jeg vil prøve at taste nye tal ind i ark1 B1 og B2 efter at
have slettet talene i ark2, kommer der ingen tal i ark2 B4:B6 ?
vh Bo
>>
>>Mener du, at når du taster tal ind i
>>B1 og B2 i ark1, så kommer
>>der ingen tal i B4:B6 i ark2?
>
> Ja når jeg vil prøve at taste nye tal ind i ark1 B1 og B2 efter at
> have slettet talene i ark2, kommer der ingen tal i ark2 B4:B6 ?
>
> vh Bo
>
Jeg kan ikke genskabe problemet. Når du tømmer ark2, foregår det
så med, at du *sletter* cellerne eller *rydder* cellerne?
Sker det i begge versioner af Excel?
Kan du ikke maile en kopi af en sådan projektmappe, hvor det ikke
virker, efter du har slettet ark2.
LeoH
Det er min fejl. Undskyld! Jeg er kommet til at sætte
tankestreg mellem fornavn og efternavn i stedet for punktum,
så der er ikke noget at sige til, at du får den retur. Det skulle
nu være rettet fremover.
Med venlig hilsen
LeoH