02. august 2008 - 23:12Der er
21 kommentarer og 1 løsning
Bevare en tidsregistrering efter den er gemt
Jeg ved ikke hvordan jeg bevare en tidsregistrering jeg har fået vha koden NOW
Nu ændres tiderne (selvfølgelig) når jeg indsætter nye rækker, men ideen er at jeg bevare den registrede tid til videre beregninger.
Koden jeg bruger pt er:
Private Sub cmbStart_Click() Worksheets("Time registrering").Activate Range("A4").Select If Range("A4").Value = "" Then Range("A4").Activate Else Range("A4").CurrentRegion.Select ActiveCell.Offset(Selection.Rows.Count, 0).Activate End If With ActiveCell .Value = clstDørNummer.Text If chbKLB.Value = True Then .Offset(0, 3).Activate With ActiveCell ActiveCell.FormulaR1C1 = "= NOW()" End With End If
End With End Sub
Jeg skal altså bruge en anden formel der angiver den aktuelle tid bare ved et tryk på "Start" knappen, men hvor det ikke bliver opfattet som en kode Håber det er til at forstå PFT MVH Ups
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.
Private Sub cmbStart_Click() Worksheets("Time registrering").Activate If Range("A4").Value = "" Then Range("A4").Activate Else Range("A4").CurrentRegion.Select ActiveCell.Offset(Selection.Rows.Count, 0).Activate End If
ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 3) = Now End If End Sub
Men nu har jeg måske et spørgsmål mere? Eller kan det løses under dette? Når jeg taster en start tid ind, placere den helt korrekt tiden, men en slut tid bliver ikke placeret i samme række, men på en ny. Det er logisk, da jeg bruger samme kode, men jeg ville gerne at, sluttiden bliver placeret i den række hvor DørNummer allerede er placeret ved starttiden. Kan det lade sig gøre?
Den kode jeg bruger: Private Sub cmbSlut_Click() Worksheets("Time registrering").Activate If Range("A4").Value = "" Then Range("A4").Activate Else Range("A4").CurrentRegion.Select ActiveCell.Offset(Selection.Rows.Count, 0).Activate End If
ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 4) = Now End If Unload Me End Sub
Der er to problemer i det. For det første kan én afdeling godt starte op med deres del produktion førend andre. Det er dog på samme dør, og derfor vil jeg gerne at når døren først er "begyndt", notere alle deres tid på samme linie. For det andet, vi kan godt have at en afdeling starter op på fx 5 døre, og arbejder på dem samtidigt, derfor skal slut tiden for den enkelte dør, gerne placeres i den rigtige linie. Jo du har ret, rent regnemæssigt får jeg et problem når flere døre laves samtidigt, men det tror jeg godt jeg kan løde med en formel i arket hvor sammentælling foregår. Derfor bør start og slut knap først undersøge om dørnummer er igang, hvis igang skal tiderne placeres i de rigtige rækker under de respektive afdelinger, hvis ikke oprettes ny linie. Håber det er til at forstå Ups
Det vil sige at døren er en unik værdi, der kun optræder 1 gang i arket "Time registrering".
Så skal vi lige vide hvilken kolonne, den er i, så søger vi der. Her bruger jeg A kolonnen
Private Sub cmbSlut_Click() Dim Data As Variant Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) ' Læser brugte celler ind fra A kolonnen For i = 4 To UBound(Data) If Data(i, a) = clstDørNummer.Text Then ' hvis indholdet svarer tilDørNummer, sættes sluttid på Cells(i, 4) = Now Exit For End If Next Unload Me End Sub
Hej Kabbak Jeg kan ikke få det til at virke, der kommer hele tiden en fejlmelding på linien: "If Data(i, a) = clstDørnummer.Text Then (den er markeret gul)
Jeg har sikret mig at dørnummer eksistere i kolonne A.
Private Sub cmbStart_Click() Dim Data As Variant Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, a) = clstDørNummer.Text Then Cells(i, 4) = Now Exit For End If Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 3) = Now End If If chbPTA.Value = True Then ActiveCell.Offset(o, 1) = Now End If If chbSkum.Value = True Then ActiveCell.Offset(0, 5) = Now End If If chbSmed.Value = True Then ActiveCell.Offset(0, 7) = Now End If If chbRulleport.Value = True Then ActiveCell.Offset(0, 9) = Now End If If chbBeslågning.Value = True Then ActiveCell.Offset(0, 11) = Now End If If chbForsendelse.Value = True Then ActiveCell.Offset(0, 13) = Now End If
Jeg har været væk så jeg har ikke haft tid at fortsætte med dette regneark. Nu er jeg hjemme igen, og vil hører om du fortsat vil hjælpe? Jeg kan ikke få det til at virke. Sluttiden bliver stadig placeret helt tilfældigt i arket, samtidigt kan jeg ikke få en ny starttid til at blive registreret på samme linie hvor døren er registreret 1. gang. Mine koder ser således ud:
Private Sub cmbSlut_Click() Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 4) = Now Exit For End If
Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 4) = Now End If If chbPTA.Value = True Then ActiveCell.Offset(0, 2) = Now End If If chbSkum.Value = True Then ActiveCell.Offset(0, 6) = Now End If If chbSmed.Value = True Then ActiveCell.Offset(0, 8) = Now End If If chbRulleport.Value = True Then ActiveCell.Offset(0, 10) = Now End If If chbBeslågning.Value = True Then ActiveCell.Offset(0, 12) = Now End If If chbForsendelse.Value = True Then ActiveCell.Offset(0, 14) = Now End If
Unload Me End Sub
Private Sub cmbStart_Click() Dim Data As Variant Worksheets("Time registrering").Activate If Range("A4").Value = "" Then Range("A4").Activate Else Range("A4").CurrentRegion.Select ActiveCell.Offset(Selection.Rows.Count, 0).Activate End If
Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 4) = Now Exit For End If Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 3) = Now End If If chbPTA.Value = True Then ActiveCell.Offset(0, 1) = Now End If If chbSkum.Value = True Then ActiveCell.Offset(0, 5) = Now End If If chbSmed.Value = True Then ActiveCell.Offset(0, 7) = Now End If If chbRulleport.Value = True Then ActiveCell.Offset(0, 9) = Now End If If chbBeslågning.Value = True Then ActiveCell.Offset(0, 11) = Now End If If chbForsendelse.Value = True Then ActiveCell.Offset(0, 13) = Now End If
Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 4) = Now Exit For End If Next
til
Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then
cells(i,1).select ' det er kun denne linje der er sat ind
Hej Kabbak Det nærmer sig, ihvertfald med placeringen, men nu ændre starttiden sig, når jeg trykker på slut (De bliver ens) Samtidigt ændre starttiden sig i fx KLB, når Skum trykker på Start (de bliver også ens, men sluttiden i KLB ændre sig ikke) Håber du har en ide :-)
Private Sub cmbSlut_Click() Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 1).Select Cells(i, 4) = Now Exit For End If
Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 4) = Now End If If chbPTA.Value = True Then ActiveCell.Offset(0, 2) = Now End If If chbSkum.Value = True Then ActiveCell.Offset(0, 6) = Now End If If chbSmed.Value = True Then ActiveCell.Offset(0, 8) = Now End If If chbRulleport.Value = True Then ActiveCell.Offset(0, 10) = Now End If If chbBeslågning.Value = True Then ActiveCell.Offset(0, 12) = Now End If If chbForsendelse.Value = True Then ActiveCell.Offset(0, 14) = Now End If
Unload Me End Sub
Private Sub cmbStart_Click() Dim Data As Variant
Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 1).Select Cells(i, 4) = Now Exit For End If Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 3) = Now End If If chbPTA.Value = True Then ActiveCell.Offset(0, 1) = Now End If If chbSkum.Value = True Then ActiveCell.Offset(0, 5) = Now End If If chbSmed.Value = True Then ActiveCell.Offset(0, 7) = Now End If If chbRulleport.Value = True Then ActiveCell.Offset(0, 9) = Now End If If chbBeslågning.Value = True Then ActiveCell.Offset(0, 11) = Now End If If chbForsendelse.Value = True Then ActiveCell.Offset(0, 13) = Now End If
den har du i begge koder, hvis det er starttiden, der står der, så slet linjen i koden for slut
måske skulle du rette
If Data(i, 1) = clstDørNummer.Text Then Cells(i, 1).Select Cells(i, 4) = Now Exit For End If Next
til
If Data(i, 1) = clstDørNummer.Text Then Cells(i, 1).Select if Cells(i, 4) ="" then ' tjekker om den er tom, hvis ja, skrives Now i dan Cells(i, 4) = Now end if Exit For End If Next
Hej Kabbak Det bliver bedre og bedre! Men starttiden ændre sig stadig, når næste afdeling trykker på start. Altså hvis KLB har trykket start, og en tid er påført, når skum trykker start, ændre KLB's starttid sig til samme Der er ingen forskel om slut tiden for den enkelte afdeling er påført Den er jo lidt besværlig den her, du må endelig sige til hvor mange point jeg begynder at skylde ;-)
For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 1).Select Cells(i, 4) = Now ' denne er den samme som ActiveCell.Offset(0, 3),længere nede Exit For End If Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True Then ActiveCell.Offset(0, 3) = Now ' denne er den samme som Cells(i, 4) = Now End If
så jeg ved ikke om den sidste skal fjernes / ændres
Linien "IfchbKLB.value = True ....." Er jo den der bestemmer hvor tiden skal smides
Et dørnummer ligger på en række, alle afdelinger har to kolonner hhv start slut I kolonne A ligger dørnummer Jeg for står ikke helt hvad du mener problemet er, for jeg kan ikke se at noget kan undværes MVH Ups
Ja men tiden smides både i Cells(i, 4) = Now og If chbKLB.Value = True Then ActiveCell.Offset(0, 3) = Now ' denne er den samme som Cells(i, 4) = Now End If
Da det er samme celle det drejer sig om, så er spørgsmålet, hvilken af de 2 skal beholdes
Man kunne gøre sådan
Worksheets("Time registrering").Activate Data = Range("A1:A" & Range("A65536").End(xlUp).Row) For i = 4 To UBound(Data) If Data(i, 1) = clstDørNummer.Text Then Cells(i, 1).Select ' Cells(i, 4) = Now Exit For End If Next ActiveCell.Value = clstDørNummer.Text If chbKLB.Value = True and ActiveCell.Offset(0, 3) ="" Then ActiveCell.Offset(0, 3) = Now End If If chbPTA.Value = True Then ActiveCell.Offset(0, 1) = Now End If If chbSkum.Value = True Then ActiveCell.Offset(0, 5) = Now End If If chbSmed.Value = True Then ActiveCell.Offset(0, 7) = Now End If If chbRulleport.Value = True Then ActiveCell.Offset(0, 9) = Now End If If chbBeslågning.Value = True Then ActiveCell.Offset(0, 11) = Now End If If chbForsendelse.Value = True Then ActiveCell.Offset(0, 13) = Now End If
ikke flere point, hvis det virker, er jeg tilfreds.
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.