dùng vba vẽ graph theo điều kiện (1 người xem)

  • Thread starter Thread starter vic_it
  • Ngày gửi Ngày gửi

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

vic_it

Thành viên mới
Tham gia
31/7/10
Bài viết
44
Được thích
10
Kính gửi Anh/Chị,
E có 2 case chắc cần sử dụng đến vba, vẽ graph theo điều kiện ban đầu. (Chi tiết mô tả có trong file Excel)

Case1
Bài toán Cho 1 khung hình vuông chia làm 12 ô, dữ liệu chứa trong các ô vàng
Nếu ô vàng có dữ liệu, sẽ thực hiện vẽ graph mũi tên đến các cung theo quy tắc vẽ mũi tên 1> 5,7,9
Ví dụ 1 tại ô 1, nguồn là A
đích 1: Ô 1 +4 (1+4=5). Vẽ kết nối đến ô 5
đích 2: ô 1, +6 (1+6=7). Vẽ kết nối đến ô 7
đích 3: ô 1, +8 (1+8=9). Vẽ kết nối đến ô 9
Khi 2 đầu đều có dữ liệu, thì vẽ mũi tên 2 chiều. Khi đầu đích không có dữ liệu, vẽ mũi tên 1 chiều.
Tương tự công thức cho 12 ô còn lại, khi ô cần xét có dữ liệu. Tuy nhiên, vì có 12 ô nên số vượt ngưỡng 12 thì phải tính lại. Ví dụ dưới
Ví dụ 2 tại ô 8, nguồn là B
đích 1: ô 8+4 (8+4=12). Vẽ kết nối đến ô 12
đích 2: ô 8, +6 (8+6=14), 14-12=2 . Vẽ kết nối đến ô 2
đích 3: ô 8, +8 (8+8=16), 16-12=4 . Vẽ kết nối đến ô 4
Khi 2 đầu đều có dữ liệu, thì vẽ mũi tên 2 chiều. Khi đầu đích không có dữ liệu, vẽ mũi tên 1 chiều.

Case 2
Đọc dữ liệu trong các ô màu xanh
Nếu dữ liệu là Táo, vẽ vòng oval quanh giá trị
Nếu dữ liệu là Cam, vẽ hình chữ nhật quanh giá trị
Có thể điều chỉnh màu, độ dày mỏng….

Cả 2 case thêm 1 nút để bật tắt việc hiển thị/ẩn graph.

Nhờ Anh/Chị có kinh nghiệm hỗ trợ giúp em.

Em cám ơn nhiều.
 

File đính kèm

Kính gửi Anh/Chị,
E có 2 case chắc cần sử dụng đến vba, vẽ graph theo điều kiện ban đầu. (Chi tiết mô tả có trong file Excel)

Case1
Bài toán Cho 1 khung hình vuông chia làm 12 ô, dữ liệu chứa trong các ô vàng
Nếu ô vàng có dữ liệu, sẽ thực hiện vẽ graph mũi tên đến các cung theo quy tắc vẽ mũi tên 1> 5,7,9
Ví dụ 1 tại ô 1, nguồn là A
đích 1: Ô 1 +4 (1+4=5). Vẽ kết nối đến ô 5
đích 2: ô 1, +6 (1+6=7). Vẽ kết nối đến ô 7
đích 3: ô 1, +8 (1+8=9). Vẽ kết nối đến ô 9
Khi 2 đầu đều có dữ liệu, thì vẽ mũi tên 2 chiều. Khi đầu đích không có dữ liệu, vẽ mũi tên 1 chiều.
Tương tự công thức cho 12 ô còn lại, khi ô cần xét có dữ liệu. Tuy nhiên, vì có 12 ô nên số vượt ngưỡng 12 thì phải tính lại. Ví dụ dưới
Ví dụ 2 tại ô 8, nguồn là B
đích 1: ô 8+4 (8+4=12). Vẽ kết nối đến ô 12
đích 2: ô 8, +6 (8+6=14), 14-12=2 . Vẽ kết nối đến ô 2
đích 3: ô 8, +8 (8+8=16), 16-12=4 . Vẽ kết nối đến ô 4
Khi 2 đầu đều có dữ liệu, thì vẽ mũi tên 2 chiều. Khi đầu đích không có dữ liệu, vẽ mũi tên 1 chiều.

Case 2
Đọc dữ liệu trong các ô màu xanh
Nếu dữ liệu là Táo, vẽ vòng oval quanh giá trị
Nếu dữ liệu là Cam, vẽ hình chữ nhật quanh giá trị
Có thể điều chỉnh màu, độ dày mỏng….

Cả 2 case thêm 1 nút để bật tắt việc hiển thị/ẩn graph.

Nhờ Anh/Chị có kinh nghiệm hỗ trợ giúp em.

Em cám ơn nhiều.
Mô tả của bạn còn rất nhiều điểm không hiểu, mình mới đọc vài dòng đầu có câu hỏi bạn
ở case1 ví dụ 1 :
1. Vẽ mũi tên luôn luôn từ ô 1 nguồn A đến các ô 5,7,9 có phải không?
nếu phải thì diễn đạt "Ô 1 +4 (1+4=5). Vẽ kết nối đến ô 5 " để làm gì ?
Nếu không phải thì quy tắc vào để biết vẽ từ ô 1 đến ô nào ? ( giải thích 1+ 4 =5 là gì?)


Mình nghĩ case này còn phải hỏi cả trăm câu hỏi nữa á
 
Upvote 0
Dạ, để e mô tả cách hàm chạy tương ứng từ ô 1 đên ô 12, nếu ô nguồn có dữ liệu, sẽ sinh ra các graph theo logic đó.
 
Upvote 0
Kính gửi Anh/Chị,
E có 2 case chắc cần sử dụng đến vba, vẽ graph theo điều kiện ban đầu. (Chi tiết mô tả có trong file Excel)

Case1
Bài toán Cho 1 khung hình vuông chia làm 12 ô, dữ liệu chứa trong các ô vàng
Nếu ô vàng có dữ liệu, sẽ thực hiện vẽ graph mũi tên đến các cung theo quy tắc vẽ mũi tên 1> 5,7,9
Ví dụ 1 tại ô 1, nguồn là A
đích 1: Ô 1 +4 (1+4=5). Vẽ kết nối đến ô 5
đích 2: ô 1, +6 (1+6=7). Vẽ kết nối đến ô 7
đích 3: ô 1, +8 (1+8=9). Vẽ kết nối đến ô 9
Khi 2 đầu đều có dữ liệu, thì vẽ mũi tên 2 chiều. Khi đầu đích không có dữ liệu, vẽ mũi tên 1 chiều.
Tương tự công thức cho 12 ô còn lại, khi ô cần xét có dữ liệu. Tuy nhiên, vì có 12 ô nên số vượt ngưỡng 12 thì phải tính lại. Ví dụ dưới
Ví dụ 2 tại ô 8, nguồn là B
đích 1: ô 8+4 (8+4=12). Vẽ kết nối đến ô 12
đích 2: ô 8, +6 (8+6=14), 14-12=2 . Vẽ kết nối đến ô 2
đích 3: ô 8, +8 (8+8=16), 16-12=4 . Vẽ kết nối đến ô 4
Khi 2 đầu đều có dữ liệu, thì vẽ mũi tên 2 chiều. Khi đầu đích không có dữ liệu, vẽ mũi tên 1 chiều.

Case 2
Đọc dữ liệu trong các ô màu xanh
Nếu dữ liệu là Táo, vẽ vòng oval quanh giá trị
Nếu dữ liệu là Cam, vẽ hình chữ nhật quanh giá trị
Có thể điều chỉnh màu, độ dày mỏng….

Cả 2 case thêm 1 nút để bật tắt việc hiển thị/ẩn graph.

Nhờ Anh/Chị có kinh nghiệm hỗ trợ giúp em.

Em cám ơn nhiều.
Mới chỉ vẽ thôi đấy. Chạy thử thì biết
 

File đính kèm

Upvote 0
Mới chỉ vẽ thôi đấy. Chạy thử thì biết
Dear Anh/Chị, e đã chạy code và xin comment dưới (chi tiết mô tả trong file excel)
Ví dụ 1, chỉ có các ô 1,5,7 có dữ liệu nguồn. Nên chỉ vẽ khi nguồn có dữ liệu. Ô 9 ko có dữ liệu nguồn nên chỉ vẽ với nguồn chiếu đến.
Kết quả sau khi vẽ từ các ô 1,5,7 đi thì sẽ được kết quả cuối cùng.
Với dữ liệu trùng lặp:
ô 1 và 5 nguồn/đích đều có dữ liệu 2 chiều, nên dùng lại graph từ ô 1.
ô 1 và 7 nguồn/đích đều có dữ liệu 2 chiều, nên dùng lại graph từ ô 1.
Ví dụ 2: thực hiện tương tự.

Lưu ý là code sẽ chạy 1 vòng check từ ô 1 đến ô 12, ô nào có dữ liệu nguồn là vẽ graph. Hiện tại code đang nhập thủ công.

Em cám ơn,
 

File đính kèm

Upvote 0
Dear Anh/Chị, e đã chạy code và xin comment dưới (chi tiết mô tả trong file excel)
Ví dụ 1, chỉ có các ô 1,5,7 có dữ liệu nguồn. Nên chỉ vẽ khi nguồn có dữ liệu. Ô 9 ko có dữ liệu nguồn nên chỉ vẽ với nguồn chiếu đến.
Kết quả sau khi vẽ từ các ô 1,5,7 đi thì sẽ được kết quả cuối cùng.
Với dữ liệu trùng lặp:
ô 1 và 5 nguồn/đích đều có dữ liệu 2 chiều, nên dùng lại graph từ ô 1.
ô 1 và 7 nguồn/đích đều có dữ liệu 2 chiều, nên dùng lại graph từ ô 1.
Ví dụ 2: thực hiện tương tự.

Lưu ý là code sẽ chạy 1 vòng check từ ô 1 đến ô 12, ô nào có dữ liệu nguồn là vẽ graph. Hiện tại code đang nhập thủ công.

Em cám ơn,
Ùi, phức tạp quá. Mà tải file về bị antivirus trảm, không dùng được
 
Upvote 0
Máy e toàn phần mềm chống virus xịn Trend và Kapersky, không hiểu Anh/Chị bị lỗi gì vậy?
Bị addins McAfee trên Chrome chém, lúc sáng không mở được nhưng chừ lại dùng được rồi.

Đường từ 5 đến 11 sai ha? ô 11 đâu có dữ liệu.
1764857503856.png
 
Upvote 0
Sửa lỗi và điều chỉnh bố trí điểm đầu, cuối của mũi tên cho đẹp
 

File đính kèm

Upvote 0
Sửa lỗi và điều chỉnh bố trí điểm đầu, cuối của mũi tên cho đẹp
Hiện tại, test case thực tế thì nó đang ko được như mong muốn, vì các trường đã có sự khác nhau từ form gốc, mà code định vị theo toạ độ bị xê dịch.
E có mô tả chi tiết trong excel, nên Anh/Chị có thể xem giúp có thể cải tiến được không, về logic thì không thay đổi nhiều.

Thực tế cần 30-45 giây để làm tay vì có template sẵn, e chỉ copy & paste trên pdf, nhưng nếu chạy code như Anh?Chị đang hỗ trợ thì chuyên nghiệp hơn nhiều :)
Em cám ơn,
 

File đính kèm

Upvote 0
Hiện tại, test case thực tế thì nó đang ko được như mong muốn, vì các trường đã có sự khác nhau từ form gốc, mà code định vị theo toạ độ bị xê dịch.
E có mô tả chi tiết trong excel, nên Anh/Chị có thể xem giúp có thể cải tiến được không, về logic thì không thay đổi nhiều.

Thực tế cần 30-45 giây để làm tay vì có template sẵn, e chỉ copy & paste trên pdf, nhưng nếu chạy code như Anh?Chị đang hỗ trợ thì chuyên nghiệp hơn nhiều :)
Em cám ơn,
Tất nhiên rồi. Bạn không gửi sheet gốc thì sau này còn rất nhiều rắc rối bởi bứt dây động rừng. Tôi bỏ lên mà không sửa thì bạn đi nhờ người khác sửa cũng chết mệt.

Mà ở trên bạn đã gửi sheet gốc chưa?
Bài đã được tự động gộp:

Ối giời ơi! Một trời 1 vực thế này...
1765077523421.png1765077559786.png
 
Lần chỉnh sửa cuối:
Upvote 0
Tất nhiên rồi. Bạn không gửi sheet gốc thì sau này còn rất nhiều rắc rối bởi bứt dây động rừng. Tôi bỏ lên mà không sửa thì bạn đi nhờ người khác sửa cũng chết mệt.

Mà ở trên bạn đã gửi sheet gốc chưa?
Bài đã được tự động gộp:

Ối giời ơi! Một trời 1 vực thế này thì tôi chịu, không sửa nổi vì quá mất công
View attachment 310540View attachment 310541
Dạ, các case trước giờ e nhờ trên diễn đàn mình thì e đều điều chỉnh được nên với case này đúng là sơ sót vì graph nó phức tạp hơn e tưởng.
Mong Anh Chị hoan hỉ lúc rảnh xử lý giúp ạ, e biết là khó thì e mới nhờ đến Anh Chị pro mảng này :)
 
Upvote 0
Không đơn giản như code của bạn gửi trong file đâu.

Code đó chỉ đơn giản xác định bằng cơm các ô nguồn và ô đích rồi vẽ mũi tên. Chuyện đó ai chẳng làm được. Chỉ cần gõ mô tả chi tiết mà AI làm phút mốt. Vấn đề là làm sao xác định được ô nguồn ô đích ở đâu khi xoay vòng trong 12 ô? Tính toán ô nguồn, ô đích và vẽ thế nào cho đúng yêu cầu?
 
Upvote 0
Dạ, các case trước giờ e nhờ trên diễn đàn mình thì e đều điều chỉnh được nên với case này đúng là sơ sót vì graph nó phức tạp hơn e tưởng.
Mong Anh Chị hoan hỉ lúc rảnh xử lý giúp ạ, e biết là khó thì e mới nhờ đến Anh Chị pro mảng này :)
Xem thử đã được chưa?
 

File đính kèm

Upvote 0
Dear Anh/Chị,
E thử thì có báo lỗi, chi tiết e gửi kèm trong file.
E thử tiếp với 1 file mới tinh, vẫn bị lỗi giống hệt vậy.
 

File đính kèm

Upvote 0
Dear Anh/Chị,
E thử thì có báo lỗi, chi tiết e gửi kèm trong file.
E thử tiếp với 1 file mới tinh, vẫn bị lỗi giống hệt vậy.
Trong hình vuông có 3 ô, kích chọn đúng ô chứa dữ liệu (ô giữa)

P/S: Yêu cầu test đúng file đã gửi, chống chỉ định với các file khác trật hình, trật sheet index, sheet code name
 
Upvote 0
Trong hình vuông có 3 ô, kích chọn đúng ô chứa dữ liệu (ô giữa)

P/S: Yêu cầu test đúng file đã gửi, chống chỉ định với các file khác trật hình, trật sheet index, sheet code name
Chừng nào mà bạn không gửi file với cách bố trí với dữ liệu thật thì không mong gì khi test, code sẽ chạy đúng. Sau này còn nhiều thứ nữa cần tương tác với các ô trên file, sheet
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Dear Anh/Chị,
Phần graph này phức tạp quá. Thực tế là file gốc thì cũng không thể đưa lên được vì 1 số lý do khác nhau.
Để e tính toán cách nào hợp lý. E cám ơn Anh/Chị nhiều.
 
Upvote 0
Dear Anh/Chị,
Phần graph này phức tạp quá. Thực tế là file gốc thì cũng không thể đưa lên được vì 1 số lý do khác nhau.
Để e tính toán cách nào hợp lý. E cám ơn Anh/Chị nhiều.
Tôi đâu cần bạn đưa file gốc. Tôi đã nói là cần bố trí dữ liệu như thật. Còn dữ liệu thì viết nhăng cuội gì mà chẳng được
 
Upvote 0
Đủ các chức năng vẽ, chọn, xoá, đổi màu. Trông thật hấp dẫn :<>
 

File đính kèm

Upvote 0
Viết code là 1 hình thức tập thể dục cho bộ não. Bạn mà đưa cách bố trí hình đúng ngay từ đầu thì nay đã xong vắng đời rồi.
 
Upvote 0

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

Back
Top Bottom