12. maj 2011 - 21:25Der er
49 kommentarer og 1 løsning
automatisk dato i kollonne
hejsa.
det er saadan at jeg sidder paa en engelsk pc uden rettighed til at aendre tastetur saa baer over med mig ;)
Jeg kunne godt taenke mig at jeg fik lave en kollonne saa som J kolonnen til automatisk at skrive dato og klokkesaet ind saa snart jeg bare marker en kollonne "TAB"er over paa alle J'erne. uden at skrive noget eller trykke paa tasteturet?
Men det er kun i J kollonnen..
jeg har spurgt omkring mig om en macro eller noget men ingen har nogen ide saa jeg ville proeve herinde.
Nu er jeg ikke sikker på at jeg forstår dig korrekt, men denne makro skriver dato og tid i kolonne J, når der rettes i kolonne B.
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False ActiveCell.Offset(0, 8) = Format(Now(), "dd-mmm-yyyy hh:mm") End If Application.ScreenUpdating = True End Sub
Hvis markøren flyttes ned efter indtastning skal offset ændres til offset(-1, 8)
Jeg er ikke sikker på jeg helt har forstået hvad du vil, men måske dette kan bringe dig videre:
Nedenstående stump kode i det pågældende worksheet gør det at den hvis der vælges en tom celle (med mus eller tab) i kolonne J, så udfylder den med aktuel dato/tid. Hvis der vælges mere end 1 celle, gør den ikke noget, og hvis der allerede står noget overskrives det ikke.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 10 And Target.Cells.Count = 1 And Target.Value = "" Then Target.Value = Now End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") End If End Sub
Hvis den ikke skal skifte tiden, så sæt dette ind under dit ark i vba hvor du vil have koden skal virke.
alt+F11 = VBA
----------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False If ActiveCell.Offset(0, 0) = "" Then ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") Else End If End If End Sub
Hvis du forestiller dig et skema som udfyldes hen ad rækkerne, så når du når til kolonne J så indsætter den dato/tid.
Hvis du så udfylder en ny række, så vil den i den nye række indsætte dato/tid igen der.
Retter du i en række som der er udfyldt så overskriver den ikke tiden, som koden er nu ellers skal bruge den fra min kommentar:
If Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") End If End Sub
Igen mange tak, men er det saadan du ku taenke dig resten af mine point? har lige to spoergsmaal mere nemlig, hvis du lige adder mig paa msn ka jeg lige uddybe?
så brug denne kode i stedet for: Ark1.Unprotect/ Ark1.protect
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False If ActiveCell.Offset(0, 0) = "" Then Ark1.Unprotect ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") Ark1.Protect Else End If End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("J:J")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False If ActiveCell.Offset(0, 0) = "" Then Ark1.Unprotect ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") Ark1.Protect Else End If End If End Sub
well.. tid og dato er stadig i J kolonnen. (sku gerne vaere i G) og jeg vil have at naar jeg har ramt G kollonen at den hopper tilbage til B i stedet for I.
kan du ik bar skrive mig koden til hvordan jeg faar Dato og tid ind i G kolonnen saa leger jeg mig frem til resten med den info og traening du har laert mig.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub Else Application.ScreenUpdating = False If ActiveCell.Offset(0, 0) = "" Then Sheet1.Unprotect ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") Sheet1.Protect ActiveCell.Offset(1, -5).Select Else End If End If End Sub
sidste spoergsmaal jeg vil gerne have at naar jeg trykker enter skubber den bar det jeg har skrevet i boksen OPad i samme boks saa jeg ka skrive mere i samme.
med andre ord at enter ik skifter linje men bar laver et hak som i word.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub Else
If ActiveCell.Offset(0, 0) <> "" Then ActiveCell.Offset(1, -5).Select ElseIf ActiveCell.Offset(0, 0) = "" Then ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") ActiveCell.Offset(1, -5).Select Else End If End If End Sub
Ser lige om jeg har tid til det andet du spørger om...
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Range("a:f").WrapText = True If Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub Else
If ActiveCell.Offset(0, 0) <> "" Then ActiveCell.Offset(1, -5).Select ElseIf ActiveCell.Offset(0, 0) = "" Then ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") ActiveCell.Offset(1, -5).Select Else End If End If End Sub
Du skal bare blive ved med at skrive i cellen så flytter det sig. Det vil nok ikke være godt at lave om på enter funktionen. men så brug alt+enter hvis du ønsker større linie anstand.
og hver gang jeg lukker den ned saa forsvinder koden?? saa jeg skal saette den ind paa ny. altsaa den der virkede. venligst svar tilbage paa email, det ville vaere fedt hvis du gider sende mig en guide til hvordan jeg gemmer den FAST paa excel filen saa jeg ikke behoever at skrive den hver gang jeg skal bruge arket.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Range("a:f").WrapText = True
If Intersect(Target, Range("G:G")) Is Nothing Then Exit Sub Else
If ActiveCell.Offset(0, 0) <> "" Then ActiveCell.Offset(1, -5).Select ElseIf ActiveCell.Offset(0, 0) = "" Then ActiveCell.Offset(0, 0) = Format(Now(), "dd-mmm-yyyy hh:mm") ActiveCell.Offset(1, -5).Select Else End If End If
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.