Tạo form nhập liệu có chèn hình ảnh

Liên hệ QC

bbq1401

Thành viên chính thức
Tham gia
21/11/06
Bài viết
72
Được thích
3
Gửi các anh chị trên diễn dàn
Xin các anh chị hướng dẫn em ạ

Em cần cần 1 file quản lý báo cáo công việc với các yêu cầu:
1. Nhiều người nhập liệu theo các mục form nhập liệu có sẵn được hiển thị khi các vào thực hiện nút nhập liệu sẽ hiện ra form nhập liệu tương tự như các mục dưới
2. Phần nhập liệu có phần chèn hình ảnh báo cáo ( ảnh này khi nhấn nhập thì sẽ được chèn vào ô chỉ định )
3. Chỉ cho phép nhập liệu, không cho phép xóa phần đã nhập

mau.jpg
 
Gửi các anh chị trên diễn dàn
Xin các anh chị hướng dẫn em ạ

Em cần cần 1 file quản lý báo cáo công việc với các yêu cầu:
1. Nhiều người nhập liệu theo các mục form nhập liệu có sẵn được hiển thị khi các vào thực hiện nút nhập liệu sẽ hiện ra form nhập liệu tương tự như các mục dưới
2. Phần nhập liệu có phần chèn hình ảnh báo cáo ( ảnh này khi nhấn nhập thì sẽ được chèn vào ô chỉ định )
3. Chỉ cho phép nhập liệu, không cho phép xóa phần đã nhập
Chẳng hiểu muốn làm cái gì?
Phải vầy không?

Anh.JPG
 
Upvote 0
Gửi Anh
Ý của em là trong form nhập liệu Ngoài các mục nhập liệu thông tin text rồi thì có mục lấy ảnh từ file trên máy tính.
Khi chọn xong đường dẫn file ảnh đó và nhấn thêm thì ảnh của file đó được chèn vào ô của sheet data.

Nó giồng file hosobenhnhan này nhưng em muốn lưu thêm ảnh chụp ạ
 

File đính kèm

  • Hosobenhnhan.xls
    53 KB · Đọc: 61
Upvote 0
Gửi Anh
Ý của em là trong form nhập liệu Ngoài các mục nhập liệu thông tin text rồi thì có mục lấy ảnh từ file trên máy tính.
Khi chọn xong đường dẫn file ảnh đó và nhấn thêm thì ảnh của file đó được chèn vào ô của sheet data.

Nó giồng file hosobenhnhan này nhưng em muốn lưu thêm ảnh chụp ạ
Cái này nên làm trên sheet (gọi là SheetForm) để còn in hóa đơn, còn làm trên UserForm chỉ dùng để nhập liệu thì chẳng có tác dụng gì cả code lại khó khăn hơn làm trên sheet.
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi Anh
Mục đích sử dụng các code từ file này là em muốn quản lý công việc của 1 số các bạn kỹ thuật đi lắp đặt cho khách hàng.
Các bạn kỹ thuật khi đi lắp đặt xong. Phải thực hiện việc cập nhật thông tin của khách hàng, Chụp ảnh các công việc triển khai lắp đặt đó để đối chiếu cuối tháng tính lương.
Vì muốn các bạn chỉ thao tác nhập liệu vào thôi, không chỉnh sửa gì.
 
Upvote 0
Gửi Anh
Mục đích sử dụng các code từ file này là em muốn quản lý công việc của 1 số các bạn kỹ thuật đi lắp đặt cho khách hàng.
Các bạn kỹ thuật khi đi lắp đặt xong. Phải thực hiện việc cập nhật thông tin của khách hàng, Chụp ảnh các công việc triển khai lắp đặt đó để đối chiếu cuối tháng tính lương.
Vì muốn các bạn chỉ thao tác nhập liệu vào thôi, không chỉnh sửa gì.
Bạn phải đưa File với tiêu đề thực tế kèm 1 ít dữ liệu thì tôi mới hiểu, muốn lấy hình thì phải dựa vào tên File hình (bạn đặt nó thế nào?), loại đuôi File hình (ví dụ: .jpg, .png, .gif ..v..v....).

Bạn nêu vấn đề lên khơi khơi và lại đính kèm File của người khác thì giúp bằng cách gì?
 
Upvote 0
Gửi Anh
Em gửi file đính kèm.
Phần nhập liệu text thì em đã làm được rồi. Em chưa biết cách nào để nhập đường dẫn đến file ảnh ( đuôi jpg hoặc gif để cho nhẻ dung lượng) ạ.
 

File đính kèm

  • Theo doi CV cua KTGL.xls
    200 KB · Đọc: 43
Upvote 0
Tôi hiểu là mỗi gói dữ liệu "đập" xuống sheet đi kèm với 4 ảnh như trong tập tin.
Nếu bạn nhập hoặc chọn tên đường dẫn thì có thể bạn nhập hoặc chọn nhầm, vì thế tôi đề nghị đặt xuống UserForm 4 Image. Trong Image_Click thì code mở cửa sổ chọn ảnh. Ảnh chọn sẽ hiển thị trong Image. Nếu nhìn Preview thấy chọn nhầm thì chọn lại.

Code chính là code chèn ảnh lên sheet. Bạn phải cho biết yêu cầu chèn: chèn Center hay Full. Tôi giải thích cho bạn. Giả sử ô ảnh trên sheet là ô vuông, và ảnh chèn có kích thước 100 x 200. Nếu là Full thì ảnh co vào khít ô. Tức chiều cao co 2 lần thì chiều rộng co 1 lần. Như thế ảnh sẽ xấu. Nếu là Center thì 2 chiều co như nhau và ảnh định vị ở giữa - một chiều luôn phủ kín.
 
Upvote 0
Tôi hiểu là mỗi gói dữ liệu "đập" xuống sheet đi kèm với 4 ảnh như trong tập tin.
Nếu bạn nhập hoặc chọn tên đường dẫn thì có thể bạn nhập hoặc chọn nhầm, vì thế tôi đề nghị đặt xuống UserForm 4 Image. Trong Image_Click thì code mở cửa sổ chọn ảnh. Ảnh chọn sẽ hiển thị trong Image. Nếu nhìn Preview thấy chọn nhầm thì chọn lại.

Code chính là code chèn ảnh lên sheet. Bạn phải cho biết yêu cầu chèn: chèn Center hay Full. Tôi giải thích cho bạn. Giả sử ô ảnh trên sheet là ô vuông, và ảnh chèn có kích thước 100 x 200. Nếu là Full thì ảnh co vào khít ô. Tức chiều cao co 2 lần thì chiều rộng co 1 lần. Như thế ảnh sẽ xấu. Nếu là Center thì 2 chiều co như nhau và ảnh định vị ở giữa - một chiều luôn phủ kín.

Gửi bạn,
Đúng chính xác ý Code chính là code chèn ảnh lên sheet.

Mình muốn chèn ảnh full bạn ạ.
 
Upvote 0
Gửi bạn,
Đúng chính xác ý Code chính là code chèn ảnh lên sheet.

Mình muốn chèn ảnh full bạn ạ.
Góp ý cho bạn:
1/ Không nên chèn ảnh Full, vì ảnh chụp có khi đứng, có khi nằm ngang nên khi chèn vào hình này sẽ đè lên hình kia sẽ rất khó nhìn.
2/ Nên quy định kích thước Cell cỡ nào rồi chèn hình vào cho vừa khít Cell sẽ dễ nhìn hơn (giống như hình bài 2).
 
Upvote 0
Gửi bạn,
Đúng chính xác ý Code chính là code chèn ảnh lên sheet.

Mình muốn chèn ảnh full bạn ạ.
Hãy đọc chú thích để biết cách dùng.
Cách dùng:
1. Chèn ảnh full như bạn nói vào ô B4 trên sheet "Nhap"
Mã:
InsertPicture "c:\Image\1.jpg", WorkSheets("Nhap").Range("B4"), True
2. Chèn ảnh full như bạn nói vào ô đang active
Mã:
InsertPicture "c:\Image\1.jpg", , True
3. Chèn ảnh vừa khít với ô B4 trên sheet "Nhap"
Mã:
InsertPicture "c:\Image\1.jpg", WorkSheets("Nhap").Range("B4")
4. Chèn ảnh center trong ô B4 trên sheet "Nhap"
Mã:
InsertPicture "c:\Image\1.jpg", WorkSheets("Nhap").Range("B4"), , True
4. Chèn ảnh center trong cụm ô B4:E10 (không cần Merge) trên sheet "Nhap"
Mã:
InsertPicture "c:\Image\1.jpg", WorkSheets("Nhap").Range("B4:E10"), , True

Phương thức tổng quát - code
Mã:
Sub InsertPicture(ByVal PicFilename As String, Optional Target As range = Nothing, _
                Optional original As Boolean = False, Optional center As Boolean = False)
'    Target: vung nhap anh. Co the la nhieu cell
'    Neu Target = Nothing thi Target = ActiveCell
'    Neu original = True thi nhap anh kich thuoc thuc.
'    Neu original = FALSE thi neu center = True thi anh se center trong vung Target,
'    nguoc lai thi se vua khit vung Target
Dim w As Double, h As Double, shp As Shape, fso As Object
    If Target Is Nothing Then Set Target = ActiveCell
    On Error Resume Next
    Target.Parent.Shapes("r" & Target.Row & "c" & Target.Column).Delete
    On Error GoTo 0
  
    Set fso = CreateObject("Scripting.FileSystemObject")
  
    If fso.FileExists(PicFilename) Then
        Set shp = Target.Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.left, Target.top, 0, 0)
        If Not shp Is Nothing Then
            With shp
                If original Then
                    .ScaleWidth 1, msoTrue
                    .ScaleHeight 1, msoTrue
                ElseIf center Then
                    .ScaleWidth 1, msoTrue
                    .ScaleHeight 1, msoTrue
                    w = Target.Width
                    h = w * .Height / .Width
                    If h > Target.Height Then
                        h = Target.Height
                        w = h * .Width / .Height
                    End If
                    .left = Target.left + (Target.Width - w) / 2
                    .top = Target.top + (Target.Height - h) / 2
                    .Width = w
                    .Height = h
                Else
                    .Width = Target.Width
                    .Height = Target.Height
                End If
                shp.Name = "r" & Target.Row & "c" & Target.Column
                shp.Placement = xlMoveAndSize
            End With
        End If
    End If
   
     Set fso = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi Bạn batman1

Mình vẫn chưa sử dụng được core trên.

Bạn có thể làm mẫu luôn vào file mình gửi giúp mình được không ạ
 
Upvote 0
Trong hình là chọn bất kỳ danh mục, nhấn nút lấy giá và gán ảnh thì nó tự động gán thông tin, cái mẫu này trước đây tôi giúp cho 1 thành viên ở Lào Cai, nhưng giúp xong thì 1 đi không trở lại, nay đưa lên để xem chơi cho vui.

Chủ Topic nghĩ mình góp ý cũng cho vui nên bỏ qua mọi lời góp ý, vì nghĩ mình không đủ trình độ để làm được việc này.

Bạn gì ở Lào Cai không nên trách mình với những hình ảnh này, vì lý do: Trước đây tôi làm giúp miễn phí thì nó thuộc bản quyền của tôi nên tôi có quyền đưa cái hình ảnh lên đây.

A_H1.JPGA_H2.JPGA_H1.JPG

Kết quả thực hiện.
A_H2.JPG
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi Bạn batman1

Mình vẫn chưa sử dụng được core trên.
Xin lỗi. Tôi viết nhưng thiếu.
Trong code sửa
Mã:
Set shp = .Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.Left, Target.Top, 0, 0)
thành
Mã:
Set shp = Target.Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.Left, Target.Top, 0, 0)

Tức trước đó thiếu Target trước .Parent

Tôi đã sửa lại trong bài #11
----------
1. Click từng Label "Đường dẫ ..." để chọn ảnh (BMP, GIF, JPG)
2. Tôi viết code nhập ảnh center trong ô (hiện đang hoạt động) và nhập ảnh vừa khít với ô (hiện đang ở dạng chú thích). Nếu thích vừa khít thì tự sửa.
3. Độ cao các dòng trên sheet bạn tự thiết lập.
4. Code nhập ảnh vĩnh viễn vào sheet. Có nhiều code trên GPE khi bạn mang tập tin sang máy khác hoặc đã xóa ảnh trên đĩa thì tập tin khi mở ra sẽ không có ảnh.

Lưu ý là bạn có thể nhập ảnh vào một cụm ô mà không cần Merge chúng.

Code trong Module1
 

File đính kèm

  • Theo doi CV cua KTGL.xls
    205 KB · Đọc: 101
Upvote 0
Xin lỗi. Tôi viết nhưng thiếu.
Trong code sửa
Mã:
Set shp = .Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.Left, Target.Top, 0, 0)
thành
Mã:
Set shp = Target.Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.Left, Target.Top, 0, 0)

Tức trước đó thiếu Target trước .Parent

Tôi đã sửa lại trong bài #11
----------
1. Click từng Label "Đường dẫ ..." để chọn ảnh (BMP, GIF, JPG)
2. Tôi viết code nhập ảnh center trong ô (hiện đang hoạt động) và nhập ảnh vừa khít với ô (hiện đang ở dạng chú thích). Nếu thích vừa khít thì tự sửa.
3. Độ cao các dòng trên sheet bạn tự thiết lập.
4. Code nhập ảnh vĩnh viễn vào sheet. Có nhiều code trên GPE khi bạn mang tập tin sang máy khác hoặc đã xóa ảnh trên đĩa thì tập tin khi mở ra sẽ không có ảnh.

Lưu ý là bạn có thể nhập ảnh vào một cụm ô mà không cần Merge chúng.

Code trong Module1

Quá tuyệt vời! Cám ơn anh chị trên diễn đàn nhiều
 
Upvote 0
Xin lỗi. Tôi viết nhưng thiếu.
Trong code sửa
Mã:
Set shp = .Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.Left, Target.Top, 0, 0)
thành
Mã:
Set shp = Target.Parent.Shapes.AddPicture(PicFilename, msoFalse, msoTrue, Target.Left, Target.Top, 0, 0)

Tức trước đó thiếu Target trước .Parent

Tôi đã sửa lại trong bài #11
----------
1. Click từng Label "Đường dẫ ..." để chọn ảnh (BMP, GIF, JPG)
2. Tôi viết code nhập ảnh center trong ô (hiện đang hoạt động) và nhập ảnh vừa khít với ô (hiện đang ở dạng chú thích). Nếu thích vừa khít thì tự sửa.
3. Độ cao các dòng trên sheet bạn tự thiết lập.
4. Code nhập ảnh vĩnh viễn vào sheet. Có nhiều code trên GPE khi bạn mang tập tin sang máy khác hoặc đã xóa ảnh trên đĩa thì tập tin khi mở ra sẽ không có ảnh.

Lưu ý là bạn có thể nhập ảnh vào một cụm ô mà không cần Merge chúng.

Code trong Module1
bài của bác hay vl ý
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom