Page 1 of 1
ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่าย
Posted: Tue Nov 15, 2011 5:34 pm
by prawitj
สมมติว่ามีการ Update ข้อมูลใน column A แล้ว จะให้ column b ขึ้นชื่อคนที่ update แบบอัตโนมัติตามชื่อ user ที่ตั้งในเครือข่าย น่ะครับ เพราะ file นี้จะทำเป็น File sharing มี admin เข้ามา update ได้หลายคน เลยอยากจะ รู้ว่าใครที่เข้ามา update ล่าสุดน่ะครับ
Re: ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่า
Posted: Tue Nov 15, 2011 6:59 pm
by snasui
การแชร์ไฟล์สามารถติดตามได้โดยเข้าเมนู Tools > Track change ก็จะทราบว่าใครเป็นผู้เข้ามา Update ครับ
หากต้องการให้เป็นอัตโนมัติเข้าใจว่าต้องใช้ VBA เข้ามาช่วย หากต้องการใช้ VBA ลองเขียนมาก่อนครับ ติดตรงไหนก็ค่อยมาดูกันต่อครับ
Re: ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่า
Posted: Wed Nov 16, 2011 9:37 am
by prawitj
ผม ไม่รู้ Code ว่าจะเขียนอย่างไร ให้ขึ้น show คนที่ มา update
จะถามอาจารย์อีกข้อด้วยครับ
คือผมเขียน code update เวลา ให้เป็น now ใน cclumn "AW" ตาม Code VBA เลยครับ ผม วน Loop เอา เผื่อเวลาแก้ไข เพิ่ม Column จะได้แก้ง่าย
จุดระสงค์คือ ทุก column ที่เป็น สีเหลือง (G-AT) หากมีการ update ช่องใดช่องหนึ่ง แล้วให้ขึ้นเวลา ที่ update ล่าสุดใน AW ซึ่งก็ได้ผลในกรณีที่ update ทีละช่อง
แต่บังเอิญผมได้ลากทุกช่องทีเดียวเพื่อจะลบข้อความ test ก้เลยเห็น bug
เช่นเวลา ผมลบข้อความ ใน col AS และ AT พร้อมกันโดยลากครอบ ปรากฏว่า เวลาที่ update มันไปโผล่ที่ column AX ด้วย แต่ผมต้องการให้ปรากฏที่ col AW ที่เดียว จะทำได้อย่างไรครับ
รบกวนช่วยแนะนำ Code VBA หาคน update มาลงที่ AX ด้วยครับ
Re: ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่า
Posted: Thu Nov 17, 2011 3:54 pm
by snasui
ลองปรับ Code เป็นตามด้านล่าง ซึ่งเป็นการแสดงชื่อผู้ Update ค่าเข้ามาครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rall As Range, rs As Range
Application.EnableEvents = False
With Sheets("po")
Set r = .Range("G7", .Range("AT" & Rows.Count))
Set rall = Selection
If Not Intersect(Target, r) Is Nothing Then
For Each rs In rall
.Range("AW" & rs.Row) = Now
.Range("AX" & rs.Row) = Environ$("username")
Next rs
End If
End With
Application.EnableEvents = True
End Sub
Re: ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่า
Posted: Mon Nov 21, 2011 3:41 pm
by prawitj
ขอบคุณคร๊าบบบบ ใช้ได้แล้ว
Re: ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่า
Posted: Mon Nov 21, 2011 4:27 pm
by prawitj
เพิ่งสังเกตุ ว่ามันขึ้น Delay ไป 3 บรรทัดน่ะครับ เช่น เรา Update ที่บรรทัด AT 7 แต่ วันเวลาและผู้ Update มันไปขึ้นที่บรรทัดที่ 10 น่ะครับ ผม พยายามแกะ Code แล้วแต่ทำไม่ได้เลยครับ รบกวนอาจารย์แนะนำด้วยครับ
Re: ให้ขึ้น Show คนที่เข้ามา Update ตาม ชื่อ user ในเครือข่า
Posted: Tue Nov 22, 2011 12:10 am
by snasui
ลองปรับเป็นตามด้านล่างครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Range, rs As Range
Application.EnableEvents = False
With Sheets("po")
Set r = .Range("G7", .Range("AT" & Rows.Count))
If Not Intersect(Target, r) Is Nothing Then
For Each rs In Target
.Range("AW" & rs.Row) = Now
.Range("AX" & rs.Row) = Environ$("username")
Next rs
End If
End With
Application.EnableEvents = True
End Sub