Avatar billede dsj1972 Mester
22. oktober 2007 - 11:01 Der er 56 kommentarer og
1 løsning

Hvordan kan jeg få et indtastet tal i en celle over i en anden

Hejsa,

Jeg har oprettet en projektmappe med en masse ark som skal hjælpe med styring af betemte projekter og deres varer.

Og i den forbindelse kunne jeg godt tænke mig at man kunne indtaste en værdi i en celle (f.eks "vare ind") som så umiddelbart skulle flytte sig over i en anden celle (f.eks "summa Lager") og en trejde celle som viser en værdi af behovet for den enkelte varer som så skal trække fra i "Summa lager"

som eks.

A1(vare ind) "her indtastes antal indkommen vare"
B1(behov) "antal af pågældene vare forbrug"
C1(Summa lager) "her skulle resultat altid være hvad aktuel vare beholdning er (altså "summa lager" + "varer ind" + "-(behov*ordre)"
F1(Ordre)


Jeg tænker at man kunne kode en knap "opdater" som får tal fra "varer ind" til at flytte over i "Summa lager" og adderes og "summa lager" viser ny aktuel værdi.
Samme gælder med "behov" som så flyttes over i "summa lager" som så trækker "behov" fra "summa lager"

Jeg håber i kan tyde hvor jeg vil hen med mit spørgsmål og kan hjælpe. Ellers så bare spørg.

På forhånd tak!

Mvh Dsj
Avatar billede mugs Novice
22. oktober 2007 - 11:05 #1
Kan du ikke blot anvende de sædvanlige regnefunktioner som addition, subtraktion m.v. f.eks i C1:

=C1+A1+(B1*F1)
Avatar billede dsj1972 Mester
22. oktober 2007 - 11:12 #2
Hej Mugs,

Joe det kunne man godt men så skal du jo selv ind og slette tal i de enkelte celler og rette til, ikk?

Eller hva?

Mvh dsj
Avatar billede dsj1972 Mester
22. oktober 2007 - 11:14 #3
Jeg mener,

det skal fungere sådan at jeg kan registrere når der kommer en ny vare hjem hvor mange der er (nogen gange kommer der flere gange på en uge) og så skal feltet jo være klar til næste registrering.

mvh dsj
Avatar billede mugs Novice
22. oktober 2007 - 11:23 #4
C1 vil altid vise den beregning der svarer til de aktuelle tal i de andre celler.
Avatar billede dsj1972 Mester
22. oktober 2007 - 11:26 #5
Hej igen,

ja, men hvad sker der så når jeg går ind og skriver nye varer i A1(vare ind), dvs så sletter jeg jo det tal som stod der før.
Avatar billede mugs Novice
22. oktober 2007 - 11:32 #6
Ja - Det er korrekt. Vil det sige at du vil gemme en form for historik på A1
Avatar billede dsj1972 Mester
22. oktober 2007 - 11:39 #7
Ja, Det kunne man godt sige, dog er det ikke nødvendig at gemme gamle data, hvad jeg snare har behov for er en eller anden funktion som kan huske ny aktuel værdi på C1 og bruge disse til ny beregning selv om data slettes i A1 og B1.
Vi er nok ude i nogle cirkulære referencer under alle omstændigheder, men regner med at det kan lade sig gøre.

Men tænker at det nok vil lette gøre proces hvis man lavede en knap som "opdatere" resultat (gemmer aktuel værdi i C1 og sletter data i A1)
Samme kunne man gøre med en knap "ordre" som vil (gemme aktuel værdi i C1 og derefter slette data i F1 (som jo så automatisk vil slette data i B1))

Eller noget i den du´r
Avatar billede mugs Novice
22. oktober 2007 - 11:47 #8
OK - Så må du nok vente til en Excel-haj kommer forbi.
Avatar billede dsj1972 Mester
22. oktober 2007 - 11:47 #9
Jeg tror at der skal noget VBA ind imellem alt der her for at det skal kunne lade sig gøre.

mvh dsj
Avatar billede dsj1972 Mester
22. oktober 2007 - 11:49 #10
Jeg skal ud og kører nu men er tilbage i eftermiddag så håber jeg at der er kommet nogle andre excel hajer til at kigge på spm.

mvh dsj
Avatar billede jlemming Nybegynder
22. oktober 2007 - 11:52 #11
hej

Prøv denne kode:
højre klik, på ark navn, vis kode, indsæt dette:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A1:A30")) Is Nothing Then


Target.Offset(0, 4).Value = Target.Offset(0, 4).Value + Target.Offset(0, 0).Value
Target.Offset(0, 0).Value = 0

End If
End Sub

sætter resulatet i kolonne E, dette kan du bare ændre
Target.Offset(0, 3) betyder kolonne D
Target.Offset(0, 4) betyder kolonne E
Target.Offset(0, 5) betyder kolonne F
osv.
Avatar billede jlemming Nybegynder
22. oktober 2007 - 12:55 #12
en mere korrekt metode

højre klik, på ark navn, vis kode, indsæt dette:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A2:A30")) Is Nothing Then


Target.Offset(0, 2).Value = Target.Offset(0, 2).Value + Target.Offset(0, 0).Value
Target.Offset(0, 0).Value = 0

End If
End Sub
Beskrivelse: overfør din vare antal til beholdning, og sletter indtastning med det samme

For din ordre:
Opret en knap, indsæt denne kode under knappen:
Sub Button1_Click()
    Cells(ActiveCell.Row, 3).Value = Cells(ActiveCell.Row, 3).Value - (Cells(ActiveCell.Row, 2).Value * Cells(ActiveCell.Row, 6).Value)
   
    Cells(ActiveCell.Row, 6).Value = 0
End Sub
Beskrivelse: lager = behov*ordre, sletter herefter ordre.
Kkræver at man stå på den linie man skal have opdateret
Avatar billede jlemming Nybegynder
22. oktober 2007 - 13:10 #13
Hvis du vil have en knap til nye vare istedet for

opret en knap (vælg, vis-værktøjslinie, hak i formularer)
vælg knap, tegn knappen, du får nu en vindue hvor du kan tilknytte en makro, vælg ny, indsæt kode.

kode for indsæt ny vare antal:
    Cells(ActiveCell.Row, 3).Value = Cells(ActiveCell.Row, 3).Value + Cells(ActiveCell.Row, 1).Value
   
    Cells(ActiveCell.Row, 1).Value = 0
kræver at du stå på den pågældende linie.

koden for ordre er stadigvæk den samme, opret knappen på samme måde
Avatar billede jlemming Nybegynder
22. oktober 2007 - 14:15 #14
Hvis du vil tage flere rækker på en gang
i dette tilfælde række 2 -100

Sub Button2_Click()
' indlæs ordre
    For i = 2 To 100
      If Cells(i, 6).Value > 0 Then
        Cells(i, 3).Value = Cells(i, 3).Value - (Cells(i, 2).Value * Cells(i, 6).Value)
        Cells(i, 6).Value = 0
      End If
    Next i
End Sub
Sub Button1_Click()
' indlæs ny ny vare antal
    For i = 2 To 100
      If Cells(i, 1).Value > 0 Then
        Cells(i, 3).Value = Cells(i, 3).Value + Cells(i, 1).Value
        Cells(i, 1).Value = 0
      End If
    Next i
End Sub
Avatar billede dsj1972 Mester
22. oktober 2007 - 14:37 #15
Hej Så er jeg tilbage,

Hold da op ny begynder det at ligne noget a´la det jeg havde tænkt mig :-)

Jlemming, din kommentar 13:10:42, kunne det tænkes at der kunne indbygges en formular i denne, således ved tryk på knap så fremkommer en rubrik hvor man kan indskrive antal og dette så udføre handling.

og så forstår jeg ikke helt lige hvad du mener med at man skal stå på pågældene linje, skal det forståes man skal være i den celle som handling udføres på???
Avatar billede dsj1972 Mester
22. oktober 2007 - 14:39 #16
jlemming;

kommentar: 14:15:39; dette eksempel er også lige noget jeg kan bruge, men kræve dette eks. at der er indtastet noget i hver celle i kolone??
Avatar billede jlemming Nybegynder
22. oktober 2007 - 14:49 #17
til kommentar 14:39, nej
ved ordre kun hvis celle Fx >0

ved indlæs kun hvis celle Ax >0

det med vindue til indtastning kan også sagtens lad sig gøre,
er det for indtastning af antal vare?
Avatar billede dsj1972 Mester
22. oktober 2007 - 14:54 #18
jlemming;

ok, så er det jo perfekt,
ja det er lige precis til indtastning af antal vare, tænkte at det måske kan gøre det lidt nemmere således at man ikke skal tænke på om man nu lige står i samme linie når man indtaster og klikker på knap, som jeg lige har erfaret at man skal være påpasselig med ved dit eks. på kode for "indsæt ny vare" , med oprettet knap til.
Avatar billede dsj1972 Mester
22. oktober 2007 - 14:56 #19
en anden lille detalje som jeg også har opdaget er at kolone "behov" (som svare til antal vare som skal bruges til ordre)egentlig skal trækkes fra i "Summa lager", er der derfor en metode til at angive at resultat i denne kolone altid sættes i negativ?
Avatar billede jlemming Nybegynder
22. oktober 2007 - 14:57 #20
okay
Prøv denne kode, vil du have en for ordre også ?

Sub Button1_Click()
' indlæs ny ny vare antal
    vare = Application.InputBox("Indtast antal vare ", , , , , , , 1)
    rk = Application.InputBox("Indsæt i række ", , , , , , , 1)
    Cells(rk, 3).Value = Cells(rk, 3).Value + vare
End Sub
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:05 #21
Nej ordre, skulle egentlig have sin virkning under alle omstændigheder da den kun har indflydelse på "behov", eneste jeg her mangler er en eller anden form for negativ angivelse af kolone "behov"
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:10 #22
nå, nu havde nået at lave den, så du får den alligvel :o)
har ændret vare indtastning også.

hvad mener du med negativ angivelse?, alarm hvis behov > beholdning ?

Sub Button1_Click()
' indlæs ny ny vare antal
    vare = Application.InputBox("Indtast antal vare ", , , , , , , 1)
    rk = Application.InputBox("Indsæt i række ", , , , , , , 1)
    Cells(rk, 3).Value = Cells(rk, 3).Value + vare
    MsgBox ("Der er indlagt " & vare & " i række " & rk & ". Ny beholdning " & Cells(rk, 3).Value)
End Sub

Sub Button2_Click()
' indlæs ordre
    ordre = Application.InputBox("Indtast ordre ", , , , , , , 1)
    rk = Application.InputBox("Hent fra række ", , , , , , , 1)
        Cells(rk, 3).Value = Cells(rk, 3).Value - (Cells(rk, 2).Value * ordre)
    MsgBox ("Der er hentet " & (Cells(rk, 2).Value * ordre) & " fra række " & rk & ". Ny beholdning: " & Cells(rk, 3).Value)
End Sub
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:24 #23
Hey, det er fint nok, gemmer det bare til anden god gang, måske kan jeg bruge det alligevel.

Med negativ angivelse mener jeg:
"behov" er udtryk for ("antal af aktuel vare"*"antal i ordre) da dette så er noget som bliver taget ud af lager beholdning skal "behov" jo trækkes fra "summa lager"
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:24 #24
hvis du vil have at behov celle f.eks bliver rød hvis behov > beholdning, gør følgende:

stå i behov celle, i menulinien vælger du format, con. formatting, "celle værdi" "større end" "=$c2", under format kan f.eks vælge rød.

min excel er engelsk, så de danske tekster er gættet lidt
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:33 #25
Nej det var ikke lige sådan ment. Men simpelt at tal i kolone "behov" bliver tilført et negativt fortegn automatisk (eller angivelse af værdi tal i kolone "B" alias "Behov" altid bliver negative tal) "da det jo er noget som tages ud af lager"
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:35 #26
Sidste nye kodning til knapper virker bare super perfekt, lige precis det jeg manglede, nu mangler jeg bare at få det hele til at virke som det skal på hele projekt mappe.
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:39 #27
øøh, ikke forstået.

meen som jeg forstå det vil du gerne have negativ fortegn på kolonne B
marker kolonne B, ctrl+1, vælg custom, sæt format til -#.##0
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:41 #28
Jeg har forsøgt at snige et negativt fortegn ind i en formel for "Behov" men dette kan vist ikke lade sig gøre, ihvertfald ikk når det er en hvis betinget formel.
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:42 #29
hvad mener du med "nu mangler jeg bare at få det hele til at virke som det skal på hele projekt mappe." er det noget du skal bruge min hjælp til? :o)
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:47 #30
Nej nej, det var bare info, næe du har været en rigtig stor hjælp kan du tro.

Har også fået negativ fortegn på kolone nu, og er lige igang med at kode knap for ordre også, den volder mig dog lidt props
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:48 #31
hvis det med formattet ikke kan bruges, kan du i din betinget formel gange med -1
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:51 #32
ja der er nok en fejl, da jeg har misforstående ordre funktionen
jeg har sagt at beholdning = beholdning- behov*ordre

det er hvis ikke rigtigt?
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:51 #33
Jeg får en fejl med "can´t execute in break mode" hvad hulen mener den med det???


har fået styr på negativ format nu
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:54 #34
Nåe ja, det kunne jo være det som er fejl.
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:55 #35
du er kommet til at stoppe din kode, inden den var færdig
under vba programmet vælger du run i menulinien og reset
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:56 #36
hvad skal formelen så være:
beholdning = beholdning- behov

eller ??
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:57 #37
Hov, det skyldes jo nok også at jeg har glemt at nævne at jeg også har en kolone som er benævnt "antal"

"behov" er så udtryk for (Ordre*Antal)
Avatar billede dsj1972 Mester
22. oktober 2007 - 15:58 #38
"antal" har jeg iøvrigt lagt i kolone "I"
Avatar billede jlemming Nybegynder
22. oktober 2007 - 15:59 #39
ok, hvis vi skal lave knap for ordre, hvad vil du så gerne have den skal gøre?, indtastninger/beregninger?
Avatar billede dsj1972 Mester
22. oktober 2007 - 16:01 #40
ja hvis beholdning er det samme som lager total eller "summa lager" som jeg kalder det
Avatar billede jlemming Nybegynder
22. oktober 2007 - 16:04 #41
beholdning =beholdning-ordre*antal


Sub Button2_Click()
' indlæs ordre
    ordre = Application.InputBox("Indtast ordre ", , , , , , , 1)
    rk = Application.InputBox("Hent fra række ", , , , , , , 1)
        Cells(rk, 3).Value = Cells(rk, 3).Value - (Cells(rk, 9).Value * ordre)
    MsgBox ("Der er hentet " & (Cells(rk, 9).Value * ordre) & " fra række " & rk & ". Ny beholdning: " & Cells(rk, 3).Value)
End Sub
Avatar billede dsj1972 Mester
22. oktober 2007 - 16:04 #42
ville være ret hvis den kunne det samme som "ny vare" knappen, altså rubrik frem hvor man indtaster antal i ordre og derved regnes (ordre*antal)=Behov som trækkes fra i "summa lager" og ny værdi gemmes i "summa lager"
Avatar billede jlemming Nybegynder
22. oktober 2007 - 16:10 #43
til 16:04 OK, den skulle være her:

Jeg bliver nød til at løbe nu, er på igen ca. 17:30 :o)

Sub Button2_Click()
' indlæs ordre
    ordre = Application.InputBox("Indtast ordre ", , , , , , , 1)
    rk = Application.InputBox("Hent fra række ", , , , , , , 1)
        Cells(rk, 1).Value = (Cells(rk, 9).Value * ordre)  'opdatere bhov
        Cells(rk, 3).Value = Cells(rk, 3).Value - (Cells(rk, 9).Value * ordre)
    MsgBox ("Der er hentet " & (Cells(rk, 9).Value * ordre) & " fra række " & rk & ". Ny beholdning: " & Cells(rk, 3).Value)
End Sub
Avatar billede dsj1972 Mester
22. oktober 2007 - 16:11 #44
Helt ok, jeg prøver med den sidste imellem tiden
Avatar billede dsj1972 Mester
22. oktober 2007 - 16:38 #45
Jeg smutter også nu, kan desværre ikke nå at komme på senere i dag, så er tilbage igen imorgen tidlig.

På forhånd tak
Avatar billede dsj1972 Mester
23. oktober 2007 - 11:31 #46
Hej, så er jeg tilbage og har lige prøvet lidt videre og det virker helt perfekt med "ny vare" knappen, men ordre volder mig dog lidt props, men det skyldes nok at "ordre" egentlig kun er en celle information og kunne derfor godt stå (isoleret), hvor derimod "antal" er forskellig fra vare til vare og deraf bliver "behov" jo også forskellig.
Men jeg er nu igang med at forsøge om man kan flette den kode med flere rækker på engang, men har på fornemmelsen af at det bare vil blive samme resultat i alle celler derefter.

mvh dsj
Avatar billede jlemming Nybegynder
23. oktober 2007 - 12:28 #47
Prøv at beskrive hvordan du gerne vil have ordren til at virker, så den kører optimal
så laver vi koden efter det, ingen problemer :o)

Har du forresten ikke en varetekst på dine rækker ?
Avatar billede dsj1972 Mester
23. oktober 2007 - 13:40 #48
Hej igen,

Jo har varetekst på. Nu er jeg blevet helt i tvivl om det er række eller kollone??
anyway all vare tekst står aller først på det "rigtige" ark dvs. fra A4 og nedefter, men det skal måske rettes lidt til. Jeg laver disse kode forsøg på et andet ark, så jeg bedre kan danne mig et billede og fremme forståelse af hvordan koder virker.

"ordre" funktionen som jeg gerne ville have den, er at den skulle komme frem med inputBox (til at fortælle hvor mange antal i ordre)
Og dernæst skulle den så gerne lave en udregning (Antal stk vare*ordre) hvorved resultat "Behov" af dette sættes ind i rk 3 "lager Beholdning" og derved igen beregner resultat ved formel (Lager Beholdning - Behov).

Jeg må hellere lige forklare:
Jeg har en masse vare emner som alle bruges til et produkt i produktion og det er dette produkt som angives i ordre og så er det her jeg gerne vil have at jeg ved angivelse af antal af produktet (ordre) kan se hvor mange af de enkelte vare (emner) som bruges og hvad lager beholdning er derefter.

ved ikke om du helt forstod det jeg lige skrev ;-)
Avatar billede dsj1972 Mester
23. oktober 2007 - 13:54 #49
Måske lidt a´la sådan her,

Sub Knap2_Klik()
' indlæs ordre
    ordre = Application.InputBox("Indtast ordre ", , , , , , , 1)
    rk = Application.InputBox("Indsæt i række ", , , , , , , 1)
        Cells(rk, 3).Value = Cells(rk, 3).Value - (Cells(rk, 9).Value * ordre)
    MsgBox ("Der er sat " & ordre & " i ordre ")
End Sub

Men ville gerne have at indsæt rk her blev gjort på alle vare emner og det vil jo sige at beregning er forskellig hvor hvert emne. Bliver det for kompleks så??
Avatar billede dsj1972 Mester
23. oktober 2007 - 13:56 #50
Kunne man måske inbygge en "range" altså en benævnelse fra rk x t.o.m rk y f.eks
Avatar billede jlemming Nybegynder
23. oktober 2007 - 14:25 #51
Rækker =vandret
kolonne= lodret

ny kode, tager flere rækker
Sub Button2_Click()
' indlæs ordre
    ordre = Application.InputBox("Indtast ordre ", , , , , , , 1)
    startRk = Application.InputBox("Start i række ", , 2, , , , , 1)
    SlutRk = Application.InputBox("Slut i række ", , 200, , , , , 1)
    For i = startRk To SlutRk
        Cells(i, 2).Value = (Cells(i, 9).Value * ordre)  'opdatere behov
        Cells(i, 3).Value = Cells(i, 3).Value - (Cells(i, 9).Value * ordre)
    Next i
End Sub
Avatar billede jlemming Nybegynder
23. oktober 2007 - 14:34 #52
Kolonne = lodret
række = vandret

Beskrivelse, i=2

Cells(i, 2).Value = (Cells(i, 9).Value * ordre)  'opdatere behov
betyder:
cell( rækkke2, kolonneB) værdi = cell(række2,kolonneI)*ordre
Avatar billede dsj1972 Mester
23. oktober 2007 - 14:37 #53
Ja for pokker, det er lige noget der virker, dog men undtagelse af "behov" der bliver tal stående, men det er i og for sig også ok, hvis man så bare laver en knap "opdater" som sletter tal i "behov". På den måde kan jeg lade tal i "behov" stående så længe jeg skal bruge dem og derefter slette disse tal med knappen "opdater.

Meeeen hold da helt ferie, hvor det virker blæret nu. ;-)
Avatar billede jlemming Nybegynder
23. oktober 2007 - 14:59 #54
ja, lige præsic, jeg lod behov tallene stå med vilje.
Jeg var visnok kommet til at skrive resultat i en forkert kolonne tidligere

p.s
SlutRk = Application.InputBox("Slut i række ", , 200, , , , , 1)

De 200 er en default værdi, den kan du jo bare ændre!
Avatar billede jlemming Nybegynder
23. oktober 2007 - 14:59 #55
og så får du lige et svar :o)
Avatar billede dsj1972 Mester
23. oktober 2007 - 15:06 #56
Jamen Det er skisme fair nok ;o)

Du skal have tusind tak for hjælpen, jeg bokser selv lidt videre med det sidste, hvilket jeg allerede er igang med.

Mvh dsj
Avatar billede dsj1972 Mester
23. oktober 2007 - 15:21 #57
Ej hvor det virker helt igennem blæret, er sgu lidt ked af at jeg ikke kan give flere point for så super hjælp, lærte i oven i købet en hel masse xstra ved siden af :o)
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