22. oktober 2007 - 11:01Der 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.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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.
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))
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
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.
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
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
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
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
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å???
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.
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?
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
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"
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
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"
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"
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.
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.
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"
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.
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 ;-)
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å??
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. ;-)
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)
Synes godt om
Ny brugerNybegynder
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.