Phần mềm excel quản lý ngành dịch vụ

Kết quả hoạt động dịch vụ thường không có hình thái hiện vật cụ thể, đa dạng về phương thức.
Tổ chức theo quy trình dịch vụ hoặc từng đơn hàng. Sản xuất và tiêu thụ thực hiện đồng thời.
Vì vậy, Excel Dịch Vụ cần chính xác, quản lý đầy đủ thông tin, tiền bạc và dữ liệu khách hàng.

Phần mềm excel quản lý kho bãi và vận tải

Hoạt động vận tải: Theo dõi được doanh thu, chi phí, lãi lỗ từng đầu xe. Từng phương tiện.
Lịch trình, thời gian bảo dưỡng từng xe, chi phí từng lần sửa chữa. Lãi lỗ từng mảng kinh doanh.
Excel Kho Vận cần chi tiết, chính xác, quản lý và tập hợp chi phí được phương tiện, từng mảng.

Phần mềm excel quản lý kho bãi và vận tải

Hoạt động vận tải: Theo dõi được doanh thu, chi phí, lãi lỗ từng đầu xe. Từng phương tiện.
Lịch trình, thời gian bảo dưỡng từng xe, chi phí từng lần sửa chữa. Lãi lỗ từng mảng kinh doanh.
Excel Kho Vận cần chi tiết, chính xác, quản lý và tập hợp chi phí được phương tiện, từng mảng.

Phần mềm excel quản lý ngành sản xuất sản phẩm

Sản xuất là sự kết hợp sức, đối tượng và tư liệu lao động theo chuỗi công việc để tạo sản phẩm.
Chi phí sản xuất gồm chi phí trực tiếp và chi phí gián tiếp. Giá thành là toàn bộ chi phí sản xuất.
Excel Sản Xuất cần quy trình, tập hợp đủ chi phí, theo dõi định mức và quản lý sản phẩm tạo ra.

Phần mềm excel quản lý ngành xây dựng

Ở xây dựng, mỗi công trình, hạng mục đều có một dự toán biệt lập. Giá ở mỗi nơi khác nhau.
Một dự án thường kéo dài nhiều kỳ kế toán. Xuất vật tư phải phù hợp với định mức dự toán.
Với đặc thù trên, Excel Xây Dựng cũng phải chia tách, liên kết và kiểm soát chi phí cụ thể nhất.

Phần mềm excel quản lý ngành thương mại mua bán

Thương mại thường là phân phối độc quyền, hoặc là đại lý. Bán hàng theo nhóm khách hàng.
Mua hàng nhiều đợt, từ nhiều nhà cung cấp có giá và chiết khấu khác nhau. Nhiều kênh bán.
Excel Thương Mại cần chi tiết, quản lý dữ liệu khách hàng, cài đặt đầy đủ chiết khấu và giá.

Phần mềm excel quản lý cho ngành tài chính tiêu dùng

Tài Chính thường là các công ty tài chính tiêu dùng hoặc quản lý quỹ. Quản lý danh mục đầu tư.
Cơ cấu tính lãi, doanh thu, chi phí riêng biệt và chi tiết. Kiểm soát chặt về thời gian và định mức.
Excel Tài Chính cần sâu sát, kiểm soát hợp đồng, dự toán ngân sách, chi phí đúng bộ phận.

Phần mềm excel quản lý ngành dịch vụ

Kết quả hoạt động dịch vụ thường không có hình thái hiện vật cụ thể, đa dạng về phương thức.
Tổ chức theo quy trình dịch vụ hoặc từng đơn hàng. Sản xuất và tiêu thụ thực hiện đồng thời.
Vì vậy, Excel Dịch Vụ cần chính xác, quản lý đầy đủ thông tin, tiền bạc và dữ liệu khách hàng.

Phần mềm excel mẫu thông dụng nhất

Không cần phải tốn nhiều thời gian để tự thiết kế các file excel theo yêu cầu công việc.
Cung cấp các file excel được thiết kế sẵn, đẹp, đơn giản, thông dụng và thực tế nhất.
Download file và sử dụng chúng, dành thời gian cho việc kiểm soát tốt công việc.

Phần mềm excel quản lý ngành thương mại mua bán

Thương mại thường là phân phối độc quyền, hoặc là đại lý. Bán hàng theo nhóm khách hàng.
Mua hàng nhiều đợt, từ nhiều nhà cung cấp có giá và chiết khấu khác nhau. Nhiều kênh bán.
Excel Thương Mại cần chi tiết, quản lý dữ liệu khách hàng, cài đặt đầy đủ chiết khấu và giá.

Tin Tức các vấn đề về hỏi đáp liên quan excel và Vba

Excel luôn là một công cụ hữu hiệu và linh hoạt để tạo ra các phần mềm quản lý nhanh chóng.
Excel đem lại sự tiện dụng, giá cả phải chăng và tính kết hợp, truy xuất rất cao trong quản lý.
Tin Tức Excel sẽ giúp bạn hoàn thiện hơn các kỹ năng làm việc và tạo ra các công cụ hiệu quả.

Video các vấn đề về hướng dẫn sử dụng và kỹ năng excel

Quá trình thao tác và tạo phần mềm Excel cần chi tiết và hiểu rõ quy trình làm việc mỗi ngành.
Xác định được các đặc thù về thực tế làm việc ở mỗi vị trí và phần hành trong chuỗi công việc.
Video Excel sẽ cung cấp cho bạn các Clip trực quan hơn về hướng dẫn và cách làm khoa học.

Showing posts with label Excel-Tin-Tuc. Show all posts
Showing posts with label Excel-Tin-Tuc. Show all posts

Tuesday, March 12, 2019

Code Vba Thông Dụng Trong Excel - Bài 7

Chào các bạn, Hôm trước trong bài thứ 6 mình đã giới thiệu về code tìm kiếm nhanh dữ liệu. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Hôm nay mình xin giới thiệu đến các bạn code chèn hình ảnh nhanh vào 1 ô trong excel.

Hiện nay, khi các bạn chèn hình ảnh vào một ô trong excel, các bạn thường dùng nút Insert để chèn. Tuy nhiên khi chèn như vậy, hình ảnh sẽ rất lớn và không vừa khít với kích thước của ô, làm các bạn phải chỉnh sửa rất nhiều. Vì vậy mình xin giới thiệu đến các bạn đoạn code sau, đoạn code này sẽ giúp các bạn chèn nhanh hình ảnh vào excel và vừa khít với kích thước của ô được chọn.

+ Đoạn code như sau:

Sub ChenHinh()

Dim PicList() As Variant
Dim PicFormat As String
Dim Rng As Range
Dim sShape As Shape
Dim Col As Variant
Dim Row As Variant
Dim i As Long

On Error Resume Next
PicList = Application.GetOpenFilename(PicFormat, MultiSelect:=True)
Col = Application.ActiveCell.Column
If IsArray(PicList) Then
    Row = Application.ActiveCell.Row
    For i = LBound(PicList) To UBound(PicList)
        Set Rng = Cells(Row, Col)
        Set sShape = ActiveSheet.Shapes.AddPicture(PicList(i), msoFalse, msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)
        Row = Row + 1
        
    ActiveSheet.DrawingObjects.Placement = xlMoveAndSize
    Application.CommandBars("Format Object").Visible = False
    Next i
End If
End Sub

+ Đối với code này các bạn không cần chỉnh sửa gì cả. Rất đơn giản nhưng hiệu quả.

+ Các bạn tiến hành đưa Code Vba vào file Excel theo hình ảnh mình hướng dẫn sau nghe.
1. Các bạn mở một file excel bất kỳ muốn chèn code vào. VD: file mình có tên là "Book1-TT1".
    Tiếp theo, các bạn bấm phím "ALT + F11" trên bàn phím để mở trình VbaProject.
2. Các bạn kích chuột phải vào dòng VBAProject (Book1-TT1.xlsx). Chọn như hình thứ 2.
3. Các bạn kích đúp chuột vào "Module" đã tạo và copy code Vba dán vào khung bên phải.
4. Các bạn bấm vào nút "Save" trên trình VbaProject để lưu code lại, như hình thứ 4.




+ Các bạn tiến hành tạo nút kích chọn vào file Excel theo hình ảnh mình hướng dẫn sau nghe.



==>Sau đó các bạn kích Ok vậy là xong. Các bạn có thể đặt tên lại nút kích theo nhu cầu của mình.
==>Khi các bạn cần chèn hình, các bạn chỉ cần để con chuột tại 1 ô cụ thể, kích nút và chọn hình ảnh cần chèn vào ô hiện hành, khi đó hình ảnh sẽ tự động chèn vào ô đó vừa kích thước của ô.

=> Vậy là các bạn đã tạo được một code chèn hình ảnh.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

Thursday, November 8, 2018

Code Vba Thông Dụng Trong Excel - Bài 6

Chào các bạn, Hôm trước trong bài thứ 5 mình đã giới thiệu về code sắp xếp trong excel. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Hôm nay mình xin giới thiệu đến các bạn code tìm kiếm nhanh dữ liệu để chỉnh sửa khi có sự thay đổi.

Hiện nay, khi các bạn tìm kiếm dữ liệu trong một vùng dữ liệu nhiều dòng, các bạn thường dùng Filter để tìm. Việc đó cũng không sao, tuy nhiên các bạn thường thực hiện nhiều bước. Vì vậy mình xin giới thiệu đến các bạn đoạn code sau, đoạn code này sẽ giúp các bạn tìm kiếm nhanh dữ liệu để chỉnh sửa.

+ Đoạn code như sau:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 3 And Target.Row = 5 Then 'ô C5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=3, Criteria1:="=*" & Range("C5:C5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 4 And Target.Row = 5 Then 'ô D5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=4, Criteria1:="=*" & Range("D5:D5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 5 And Target.Row = 5 Then 'ô E5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=5, Criteria1:="=*" & Range("E5:E5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 6 And Target.Row = 5 Then 'ô F5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=6, Criteria1:="=*" & Range("F5:F5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 7 And Target.Row = 5 Then 'ô G5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=7, Criteria1:="=*" & Range("G5:G5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 8 And Target.Row = 5 Then 'ô H5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=8, Criteria1:="=*" & Range("H5:H5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 9 And Target.Row = 5 Then 'ô I5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=9, Criteria1:="=*" & Range("I5:I5").Value & "*", _
        Operator:=xlFilterValues
End If
End Sub
- Mình sẽ giới thiệu từng phần trong đoạn code này như sau:

1. ("$B$7:$Q$5000"): Đây là vùng dữ liệu toàn bộ của bảng tính đang có. Cần phải chọn hết.
2. Column = 3 And Target.Row = 5: 3 Là số thứ tự cột của ô mà bạn chọn để đánh ký tự tìm kiếm vào.
- 5: Là số thứ tự dòng của ô mà bạn chọn để đánh ký tự tìm kiếm vào.
3.  Field:=3: 3 Là số thứ tự cột của ô mà bạn chọn để đánh ký tự tìm kiếm và để excel sort dữ liệu.
4. Range("C5:C5"): C5:C5: Là ô mà bạn chọn để nhập ký tự tìm kiếm. Đây là chỉ định ô nhập mà thôi.
5: ElseIf Target.Column = 9 And Target.Row = 5 Then 'ô I5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=9, Criteria1:="=*" & Range("I5:I5").Value & "*", _
Operator:=xlFilterValues
Tương tự các bạn muốn tạo ô để nhập ký tự tìm kiếm ở chỗ trường dữ liệu nào, thì chỉ cần các bạn copy nguyên như dòng ở mục 5, mình tô đỏ để enter xuống dòng và dán tiếp vào bên dưới mà thôi.
+ Thường các ô chỉ định dùng để nhập ký tự tìm kiếm là các ô ở trên các trường thông tin của mỗi cột dữ liệu.
=> Khi các bạn muốn tìm kiếm thì các bạn chỉ cần đánh ký tự tìm kiếm bất kỳ vào ô đã chỉ định trên trường thông tin cần tìn kiếm. Sau đó bấm Enter để tìm, code sẽ tự lọc ra các dòng có chứa thông tin bạn cần tìm kiếm.
+ Khi đã chọn được dòng cần chỉnh sửa, các bạn chỉ cần sửa lại thông tin ở dòng đó.
+ Mình sẽ gửi kèm các bạn hình ảnh để các bạn tham khảo cách làm ở bên dưới nhé.
+ Việc copy code này và đưa vào trong Sheet cần tìm kiếm, mình đã giới thiệu ở các bài trước. Nay mình xin đăng lại hình ảnh để các bạn tiện thao tác.
- Đầu tiên các bạn bấm ALT + F11 để vào cửa sổ VBAPROJECT như hình sau.
- Tiếp theo các bạn kích đúp chuột vào tên sheet mà bạn muốn đặt code này vào, sau đó tiến hành copy đoạn code của mình qua và dán vào phần bên phải của của sổ như hình bên dưới.
- Cuối cùng các bạn bấm lưu code, sau khi code được lưu xong, các bạn tắt cửa sổ Vba và quay lại file excel của mình để xem thành quả nhé. Hình 3.
- Tiếp theo các bạn tạo các ô tìm kiếm giống như hình dưới đây. Các ô tìm kiếm là các ô có màu xám nhé.
=> Vậy là mình đã giới thiệu xong đến các bạn đoạn code tìm kiếm nhanh dữ liệu. Còn nhiều code rất thú vị và hay ở các bài sau, mình sẽ gửi các bạn sau nhé.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

Thursday, October 11, 2018

Code Vba Thông Dụng Trong Excel - Bài 5

Chào các bạn, Hôm trước trong bài thứ 4 mình đã giới thiệu về code Data Validation. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Hôm nay mình xin giới thiệu đến các bạn code sắp xếp tăng dần hoặc giảm dần từ A->Z hoặc từ Z->A.

Hiện nay, khi các bạn sắp xếp một vùng dữ liệu, một cột, vd: sắp xếp tên khách hàng, sắp xếp mã khách hàng, ngày sinh....Các bạn thường sử dụng ứng dụng có sẵn trong excel để Sort, tuy nhiên ứng dụng đó lại qua nhiều bước thao tác và bị hạn chế. Vì vậy mình xin giới thiệu đến các bạn đoạn code sau, đoạn code này sẽ loại bỏ đi các yêu tố vướng mắc mà các bạn cần. Và đặc biệt là rất nhanh chóng.

+ Đoạn code như sau:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
[A3:A3].Font.ColorIndex = 0
[A3:A3].Interior.ColorIndex = xlNone
Dim R As Long, C As Long
If Not Intersect(Target, [A3:A3]) Is Nothing Then
    R = [A65536].End(xlUp).Row
    C = Target.Column
    If Target.Cells.Count = 1 Then
Range("A4:J" & R).Sort Key1:=Cells(4, Target.Column), Order1:=IIf([D1] = 1, xlDescending, xlAscending)
        [D1] = IIf([D1] = 1, 2, 1)
        Target.Font.ColorIndex = 3
        Target.Interior.ColorIndex = 6
        Range("D1").Select
    End If
End If
Application.EnableEvents = True
End Sub

- Mình sẽ giới thiệu từng phần trong đoạn code này như sau:
1. [A3:A3]: Đây là vùng tiêu đề của cột mà bạn cần sắp xếp trong sheet bạn muốn sắp xếp. Bạn có thể thay đổi vùng này cho phù hợp với vùng mà bạn muốn sắp xếp tăng hoặc giảm. VD: Cột tên khách hàng, thì tiêu đề sẽ là "Tên Khách Hàng" và bạn chọn vùng này. Các mã có [A3:A3] các bạn đều thay đổi như vậy cho đúng.
2. R = [A65536].End(xlUp).Row: Vùng này các bạn thay đổi theo cột tương ứng với cột cần sắp xếp ở mục 1, đây chỉ là câu lệnh để xác định dòng cuối cùng có dữ liệu trong cột A mà thôi. Mục đích là để nó Sort bao quát hết dữ liệu trong bảng tính.
3. Range("A4:J" & R): Vùng này là toàn bộ vùng dữ liệu bạn sẽ lấy đi kèm khi sắp xếp cột A. Mục đích là dữ liệu của dòng nào thì sẽ được đi kèm với dòng đó, không bị lộn xộn dữ liệu, sai dữ liệu khi sắp xếp.
+ Vùng dữ liệu bảng tính của sheet sắp xếp là vùng nào thì các bạn thay đổi chỗ: "A4:J" cho phù hợp.
+ Vùng này là bỏ đi dòng tiêu đề, sẽ được chọn từ dòng tiếp theo đến cột cuối cùng. VD: "A4:J".
4. =Cells(4, Target.Column): Đối với thuộc tính này, các bạn đổi lại chỗ số 4, đây là dòng tiếp theo sau khi bỏ đi dòng tiêu đề bảng tính là dòng mấy: VD: của mình tiêu đề là dòng 3, dòng tiếp theo là dòng 4.
5. Order1:=IIf([D1] = 1: Chỗ ô D1 các bạn đổi lại một ô bất kỳ ngoài bảng tính, và ô này là ô không có dữ liệu. Mục đích ô này là để code xác định được số 1 hoặc 2 để Sort mà thôi. Số này tự động nó điền.
6. [D1] = IIf([D1] = 1, 2, 1), Range("D1").Select: Tương tự ba ô D1 này các bạn cũng đổi lại ô trống không có dữ liệu như hướng dẫn ở mục 5. Các bạn đổi lại bằng đúng ô các bạn đã đổi ở mục 5 nhé.
+ Code này khi bạn đặt con trỏ vào ô tiêu đề của cột sắp xếp, thì dữ liệu sẽ được sắp xếp ngay lập tức.
+ Tại ô tiêu đề của cột cần sắp xếp sẽ tiến hành tự động đổi màu nền của ô để phân biệt với cột khác.
=> Việc bạn đưa Code vào Sheet hiện hành mình đã hướng dẫn ở bài 4, mình xin đăng lại hình ảnh để các bạn tiện theo dõi và thao tác. Các bạn copy đoạn code của mình và đưa vào sheet như sau.
- Đầu tiên các bạn bấm ALT + F11 để vào cửa sổ VBAPROJECT như hình sau.
- Tiếp theo các bạn kích đúp chuột vào tên sheet mà bạn muốn đặt code này vào, sau đó tiến hành copy đoạn code của mình qua và dán vào phần bên phải của của sổ như hình bên dưới.
- Cuối cùng các bạn bấm lưu code, sau khi code được lưu xong, các bạn tắt cửa sổ Vba và quay lại file excel của mình để xem thành quả nhé. Hình 3.
=> Vậy là mình đã giới thiệu xong đến các bạn đoạn code sắp xếp dữ liệu tăng dần hoặc giảm dần. Còn nhiều code rất thú vị và hay ở các bài sau, mình sẽ gửi các bạn sau nhé.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

Monday, October 1, 2018

Code Vba Thông Dụng Trong Excel - Bài 4

Chào các bạn, Hôm trước trong bài thứ 3 mình đã giới thiệu về code xóa hàng loạt. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Hôm nay mình xin giới thiệu đến các bạn code tạo Data Validation để chọn.

Hiện nay, khi các bạn tạo Data Validation để chọn theo list, nếu trong vùng dữ liệu đó có nhiều dữ liệu trùng nhau, hoặc bạn chọn một vùng dài, nhưng trong vùng đó có một khoảng trống các dòng thì khi Data Validation được tạo ra. Vùng dữ liệu trùng sẽ bị lặp lại và có khoảng trống trong list chọn, việc này làm cho list chọn của chúng ta bị rối và nhìn thật không thẩm mỹ chút nào. Vì vậy mình xin giới thiệu đến các bạn đoạn code sau, đoạn code này sẽ loại bỏ đi các yêu tố vướng mắc mà các bạn cần.

+ Đoạn code như sau:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim arr, Item, dic As Object, Tmp As String
  On Error Resume Next
  If Not Intersect(([F2]), Target) Is Nothing Then
    If Target.Count = 1 Then
      arr = Sheet1.Range("AC4:AC1003").Value
      Set dic = CreateObject("Scripting.Dictionary")
      For Each Item In arr
        Tmp = CStr(Item)
        If Len(Tmp) Then
          If Not dic.exists(Tmp) Then dic.Add Tmp, ""
        End If
      Next
      With Target.Validation
        .Delete
        If dic.Count Then .Add 3, , , Join(dic.Keys, ",")
      End With
    End If
  End If
End Sub

- Mình sẽ giới thiệu từng phần trong đoạn code này như sau:
1. If Not Intersect(([F2]), Target) Is Nothing Then: Tại ô F2, đây là ô mình đặt List Data Validation, ô này nằm trong sheet các bạn đang đặt code này vào, nếu các bạn muốn để List chỗ ô nào, thì có thể thay đổi lại địa chỉ ô này cho đúng theo nhu cầu thực tế của mình.
2. arr = Sheet1.Range("AC4:AC1003").Value: Đây là vùng chứa dữ liệu sẽ được nằm trong List các bạn sẽ chọn khi tạo Data Validation. Nếu dữ liệu nằm trong sheet nào thì các bạn thay đổi lại thứ tự sheet cho hợp lý. Sheet1 thành..2.3...Đối với vùng Range("AC4:AC1003"). Đây là vùng nằm trong sheet 1 chứa dữ liệu mà bạn muốn chọn để tạo thành list. Nếu vùng của bạn là vùng nào, thì bạn có thể thay đổi theo thực tế mình cần.
+ Để biết sheet có chứa dữ liệu là sheet nào, các bạn bấm ALT + F11 và xem bên trái phần VbaProject. Nó sẽ hiện số thứ tự sheet và tên sheet, các bạn xem và sửa lại cho đúng sheet.
+ Việc các bạn đưa Code vào module thì mình đã hướng dẫn, nhưng việc đưa code vào sheet thì mình chưa hướng dẫn các bạn. Hôm nay mình sẽ hướng dẫn các bạn để đưa code này vào trong sheet.
- Đầu tiên các bạn bấm ALT + F11 để vào cửa sổ VBAPROJECT như hình sau.
- Tiếp theo các bạn kích đúp chuột vào tên sheet mà bạn muốn đặt code này vào, sau đó tiến hành copy đoạn code của mình qua và dán vào phần bên phải của của sổ như hình bên dưới.
- Cuối cùng các bạn bấm lưu code, sau khi code được lưu xong, các bạn tắt cửa sổ Vba và quay lại file excel của mình để xem thành quả nhé. Hình 3.
=> Vậy là mình đã giới thiệu xong đến các bạn đoạn code tạo Data Validation. Còn nhiều code rất thú vị và hay ở các bài sau, mình sẽ gửi các bạn sau nhé.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

Saturday, September 22, 2018

Code Vba Thông Dụng Trong Excel - Bài 3

Chào các bạn, Hôm trước trong bài thứ 2 mình đã giới thiệu về code in hàng loạt. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Hôm nay mình xin giới thiệu đến các bạn code xóa một vùng dữ liệu lớn.

Hôm nay mình sẽ giới thiệu đến các bạn code Vba về xóa một vùng dữ liệu lớn:
Hiện nay, khi các bạn thao tác nhập liệu vào một file data nào đó, khi đến cuối tháng, cuối quý, hay cuối năm, các bạn muốn xóa dữ liệu trong file kỳ cũ để chuyển file sang kỳ mới, hay năm mới để làm việc. Với một vùng dữ liệu bạn đã nhập vào rất nhiều, việc các bạn chọn vùng để xóa cũng tốn thời gian. Với code này, các bạn chỉ cần bấm nút xóa, thì toàn bộ dữ liệu trong file cũ sẽ được xóa đi.

Dưới đây là code về xóa vùng dữ liệu trong file cũ.
+ Đoạn code như sau:

Sub Xoa()
    Dim Ask
    Ask = MsgBox("Ban co muon xoa khong!", vbYesNo, "Thong bao!")
    If Ask = vbYes Then
        With Sheet9
            .Range("B5:H12000").ClearContents
            .Range("H5:M12000").ClearContents
        End With
    End If
End Sub

- Mình sẽ giới thiệu từng phần trong đoạn code này như sau:
1. Ask: Là trước khi xóa, code sẽ hiện thông báo, nếu bạn muốn xóa thì bấm Ok. Không thì bấm No.
2. Sheet9: Là Sheet chứa dữ liệu cần xóa, nếu file bạn sheet nào thì bạn sửa lại sheet đó theo số thứ tự.
+ Để biết sheet có chứa dữ liệu là sheet nào, các bạn bấm ALT + F11 và xem bên trái phần VbaProject. Nó sẽ hiện số thứ tự sheet và tên sheet, các bạn xem và sửa lại cho đúng sheet.
3. Range("B5:H12000"): Là vùng chứa dữ liệu cần xóa trong sheet đã chọn.
+ Nếu các bạn muốn xóa xen kẽ các vùng thì có thể copy đoạn ".Range("H5:M12000").ClearContents" để Enter xuống dòng trước "End With" và sửa lại vùng xen kẽ mình cần xóa.
=> Vậy là code Vba về xóa vùng dữ liệu lớn mình đã giới thiệu xong. Các bạn muốn xóa được thì phải tạo một nút để bấm xóa như mình đã giới thiệu trong bài 2. Và đưa code vào Module như mình đã giới thiệu trong bài 1.
+ Mình xin đăng lại hình ảnh để các bạn xem cho dễ hiểu.
A. Thêm code vào Module. Các bạn copy đoạn code của mình và dán vào Module như hướng dẫn sau:
Các bạn bấm ALT + F11 để có được hình như bên dưới nhé.
B. Tạo nút bấm xóa như hình ảnh sau. Mình xin đăng lại hình của bài 2.
=> Chú ý: Ở hộp Macros in: Các bạn chọn file hiện hành bạn đang đặt code để xóa dữ liệu file cũ nghe.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

Friday, September 7, 2018

Code Vba Thông Dụng Trong Excel - Bài 2

Chào các bạn, Hôm trước trong bài đầu tiên về Code Vba rất thông dụng trong excel. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Các bạn nên tận dụng các bài về code Vba của mình để áp dụng vào thực tế, mục đích làm tăng tiến độ công việc thực tế của các bạn.

Hôm nay mình sẽ giới thiệu đến các bạn code Vba về in hàng loạt chứng từ: Như các chứng từ về Phiếu Thu, Phiếu Chi, Phiếu Xuất, Phiếu Nhập, Phiếu Kế Toán, Phiếu Báo Công Nợ, Biên Bản Đối Chiếu Công Nợ, Đơn Hàng, Biên Bản....

Hiện nay, các bạn thường in từng phiếu một, nếu số lượng phiếu các bạn dồn lại của 1 tháng, một quý, hay một năm, thậm chí là nhiều năm..thì các bạn in từng tờ vậy quả thật là tốn nhiều thời gian.

Dưới đây là code về in tùy chọn theo số in trong excel và các bạn có thể in hàng loạt, nhiều bản...
+ Đoạn code như sau:

Sub InPCHI()
Dim i As Long, p1, p2, cp
p1 = Sheet6.Range("R3").Value
p2 = Sheet6.Range("R4").Value
cp = Sheet6.Range("R5").Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then Exit Sub
If p1 > p2 Then Exit Sub
If cp = "" Or IsNumeric(cp) = False Then cp = 1
For i = p1 To p2 Step 1
    Sheet6.Range("G8").Value = i
'    Sheet6.PrintPreview 'To preview
    Sheet6.PrintOut From:=1, To:=1, Copies:=cp
Next
End Sub

- Mình sẽ giới thiệu từng phần trong đoạn code này như sau:
1. p1: là số phiếu đầu tiên để in. (các bạn có thể sửa ô R3, thành ô nơi gõ số phiếu in đầu tiên).
2. p2: là số phiếu cuối để in. (các bạn có thể sửa ô R4, thành ô nơi gõ số phiếu in cuối cùng).
3. cp: là số bản cần in. (các bạn có thể sửa ô R5, thành ô nơi gõ số bản cần in).
4. Sheet6.Range: Là Sheet các bạn đang có mẫu để in, nếu mẫu in ở sheet nào thì các bạn sửa lại.
+ Để biết sheet có chứa mẫu in là sheet nào, các bạn bấm ALT + F11 và xem bên trái phần VbaProject. Nó sẽ hiện số thứ tự sheet và tên sheet, các bạn xem và sửa lại cho đúng sheet.
5. Sheet6.Range("G8").Value = i: Ô G8 này là ô chứa số phiếu in hiện hành, các bạn có thể tùy chỉnh ô đặt số phiếu in hiện hành, và số này tự động nhảy từ số đầu tiên đến số cuối cùng mà các bạn đã gõ ở ô R3 và R4.
6. Sheet6.PrintPreview 'To preview: Là cú pháp xem phiếu trước khi in, nếu các bạn muốn xem trước khi in thì xóa dấu nháy ở đầu dòng của cú pháp này đi, nếu các bạn không muốn xem trước khi in thì để dấu nháy vào ở đầu dòng của cú pháp này, câu lệnh sẽ không được thực thi.
+ Nếu các bạn đặt cú pháp này là thực thi thì khi bấm in, xem trước bản in xong, nếu ok không có gì sai sót trong bản in, thì các bạn bấm ESC để tiến hành in.
=> Việc đưa code này vào "Module" thì mình đã có hướng dẫn trong bài 1, các bạn có thể xem lại là sẽ rõ ngay, rất đơn giản thôi.
=> Lưu ý các bạn: Là các bạn cần kết hợp các hàm Vlookup(), hoặc Index() lấy số phiếu in ở ô G8 làm đối tượng tìm kiếm, mục đích là để dò tìm các thông số về dữ liệu của phiếu cần in qua mẫu in, thì các bạn mới có dữ liệu ở mẫu in theo số phiếu, mà in được.
=> Và tất nhiên là các bạn phải có 1 sheet data dữ liệu để lấy dữ liệu qua mẫu in rồi, và sheet dữ liệu này phải có đầy đủ các thông số về số phiếu in theo số từ 1 đến n, các dữ liệu về phiếu in theo từng dòng của chứng từ, y như trong sổ nhật ký chung.

+ Các bạn tạo mẫu in như hình ảnh bên dưới: (đây là mẫu cơ bản, các bạn có thể tùy tạo).
1. Trước tiên các bạn tạo một nút để bấm in như hình sau.
2. Khi có nút in rồi, các bạn gõ tên vào nút in và tiến hành chỉ định nút in này đến code vba đã tạo.
- Kích chuột phải vào nút in và chọn như hình sau.
- Đến hình kế tiếp và làm tiếp như hướng dẫn bên dưới.
- Ở hộp Macros in: Chọn đến file hiện hành bạn đang cài đặt in, và file này phải đang mở nhé.
3. Tiếp tục chọn đến Macros đã tạo khi đưa code vào, như hình sau, ở đây mình là "InPCHI".
- Xong bấm ok và các bạn có mẫu in như sau.
=> Vậy là các bạn đã tạo được một code in hàng loạt tùy chỉnh rồi nghe. Rất hay đó.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

Saturday, September 1, 2018

Code Vba Thông Dụng Trong Excel - Bài 1

Như các bạn đã biết Excel là một phần mềm office, dữ liệu được lưu nhiều thì đôi lúc nó trở nên nặng. Vì vậy các bạn cần hạn chế sử dụng công thức link quá nhiều, chỉ sử dụng những công thức cần thiết nhất. VBA là một công cụ rất tốt, nó sẽ giúp bạn thao tác nhẹ nhàng, nhanh gọn, nhưng rất chính xác.

+ Trong loạt bài này, mình sẽ giới thiệu đến các bạn một số code VBA thông dụng nhất.

1. Code VBA đọc số ra chữ trong Excel
- Đa phần, hiện nay các bạn sử dụng Add-in để tiến hành đọc số ra chữ, điều này rất bất tiện. Thứ nhất việc cài Add-in vào có thể làm file thêm nặng hơn. Thứ hai, nếu sử dụng file ở máy khác không có Add-in đó thì các bạn sẽ không dùng được nữa. Thứ ba, khi thao tác Add-in các bạn phải chọn công cụ và làm theo bảng điều khiển, tốn nhiều thao tác. Với VBA này các bạn chỉ cần đặt tại ô, gõ "=DocSo(tiếp đến chọn ô số cần đọc)", Enter.
+ Đoạn Code như sau:

Function DocSo(ByVal Number, Optional ByVal Font = 1) As String
Dim MyArray

Dim Str
Str = Format(Abs(Number), "000000000000000000")
Select Case Font
Case 1
MyArray = Array("không ", "m" & ChrW(7897) & "t ", "hai ", "ba ", "b" & ChrW(7889) & "n ", "n" & ChrW(259) & "m ", "sáu ", "b" & ChrW(7843) & "y ", "tám ", "chín ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "t" & ChrW(7927) & ", ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "", "tr" & ChrW(259) & "m ", "m" & ChrW(432) & ChrW(417) & "i ", "không " & "m" & ChrW(432) & ChrW(417) & "i" & " không ", "không " & "m" & ChrW(432) & ChrW(417) & "i", "l" & ChrW(7867), "m" & ChrW(432) & ChrW(417) & "i" & " không", "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " n" & ChrW(259) & "m", "m" & ChrW(432) & ChrW(417) & "i" & " l" & ChrW(259) & "m", "m" & ChrW(7897) & "t " & "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(7901) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7897) & "t", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7889) & "t", "Âm ")
Case 2
MyArray = Array("khoâng ", "moät ", "hai ", "ba ", "boán ", "naêm ", "saùu ", "baûy ", "taùm ", "chín ", "trieäu, ", "ngaøn, ", "tyû, ", "trieäu, ", "ngaøn, ", "", "traêm ", "möôi ", "khoâng möôi khoâng ", "khoâng möôi", "leû", "möôi khoâng", "möôi", "möôi naêm", "möôi laêm", "moät möôi", "möôøi", "möôi moät", "möôi moát", "AÂm ")
Case 3
MyArray = Array("kh«ng ", "mét ", "hai ", "ba ", "bèn ", "n¨m ", "s¸u ", "b¶y ", "t¸m ", "chÝn ", "triÖu, ", "ngµn, ", "tû, ", "triÖu, ", "ngµn, ", "", "tr¨m ", "m­¬i ", "kh«ng m­¬i kh«ng ", "kh«ng m­¬i", "lÎ", "m­¬i kh«ng", "m­¬i", "m­¬i n¨m", "m­¬i l¨m", "mét m­¬i", "m­êi", "m­¬i mét", "m­¬i mèt", "©m ")
End Select
If Str = "000000000000000000" Then
    DocSo = UCase(Left(MyArray(0), 1)) & Trim(Mid(MyArray(0), 2)) & "."
    Exit Function
End If
For i = 1 To Len(Str)
If Left(Str, i) <> 0 And Mid(Str, (Int((i + 2) / 3) - 1) * 3 + 1, 3) <> 0 Then
    DocSo = DocSo & MyArray(Mid(Str, i, 1)) & MyArray(-(9 + i / 3) * (i Mod 3 = 0) - (15 + i Mod 3) * (i Mod 3 <> 0))
ElseIf i = 9 And Mid(Str, 7, 3) = 0 And Left(Str, 6) <> 0 Then
    DocSo = DocSo & MyArray(12)
End If
Next
DocSo = Trim(Replace(Replace(Replace(Replace(Replace(Replace(DocSo, MyArray(18), MyArray(15)), MyArray(19), MyArray(20)), MyArray(21), MyArray(22)), MyArray(23), MyArray(24)), MyArray(25), MyArray(26)), MyArray(27), MyArray(28)))
If Number < 0 Then
DocSo = MyArray(29) & DocSo
End If
DocSo = Replace(UCase(Left(DocSo, 1)) & Mid(DocSo, 2) & ".", ",.", ".")
End Function

+ Các bạn tiến hành đưa Code Vba vào file Excel theo hình ảnh mình hướng dẫn sau nghe.
1. Các bạn mở một file excel bất kỳ muốn chèn code vào. VD: file mình có tên là "Book1-TT1".
    Tiếp theo, các bạn bấm phím "ALT + F11" trên bàn phím để mở trình VbaProject.
2. Các bạn kích chuột phải vào dòng VBAProject (Book1-TT1.xlsx). Chọn như hình thứ 2.
3. Các bạn kích đúp chuột vào "Module" đã tạo và copy code Vba dán vào khung bên phải.
4. Các bạn bấm vào nút "Save" trên trình VbaProject để lưu code lại, như hình thứ 4.
Thế là xong, các bạn tắt trình VBA, ra ngoài file excel, đặt con trỏ ở một ô và dùng công thức như mình giới thiệu ở đầu bài để xem kết quả.
=> Còn rất nhiều code hay và hữu ích, các bạn xem tiếp những bài sau nhé. Cảm ơn các bạn.