Giúp chỉnh sửa code VBA tính tổng khối lượng diễn giải (2 người xem)

  • Thread starter Thread starter amosis
  • Ngày gửi Ngày gửi
Liên hệ QC

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

amosis

Thành viên mới
Tham gia
10/5/08
Bài viết
19
Được thích
5
Mình có 1 code vba trên GPE

- Khi gõ công thức tại cột C code xử lý như hình 1
1.jpg

- Khi đánh chữ diễn giải thì chưa được như ý hình 2
2.jpg

- Mong muốn như hình 3
3.jpg

Mình gửi kèm file nhờ các bạn giúp
 

File đính kèm

Lần chỉnh sửa cuối:
Cái này mình viết cũng lâu rồi, bạn xem thử dùng được không nhé.
 

File đính kèm

Bài này cũng không có gì, bạn nêu rõ cách nhập diễn giải là xử lý được.
Cách diễn giải mình muốn thực hiện được như hình 1 và hình 3
Nhưng hiện tại trong code VBA đang bị lỗi như hình 2 nó không tổng lên như hình 3
Bạn vui lòng tải file rồi góp sửa giúp mình code
 
diẽn giải của bạn trong hình 2 và 3 : là dòng phép tính riêng, dòng chữ riêng? hay là cả 2
bạn cụ thể cách nhập liệu, code đơn giản hơn rất nhiều.

mình mong muốn được cả 2 cách như hình 1 và hình 3
nhưng hiện tại khi thực hiện theo hình 3 thì tổng khối lượng không đúng và bị lỗi như hình 2 (mong muốn thực hiện được như hình 3)
 
Cách diễn giải mình muốn thực hiện được như hình 1 và hình 3
Nhưng hiện tại trong code VBA đang bị lỗi như hình 2 nó không tổng lên như hình 3
Bạn vui lòng tải file rồi góp sửa giúp mình code

Xem file đính kèm thế nào
---
Gửi nhầm file
 
Lần chỉnh sửa cuối:
Cảm ơn bạn.
Phần tính toán đã rất đúng yêu cầu của mình
Hiện tại đang cong lỗi phần định dạng dấu chấm "." và dấu phẩy "," rất mong bạn sửa giúp.
mình có gửi kèm ảnh mô tả lỗi
View attachment 147553

Dán đoạn code này vào sheet KL
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DL As Range, Dem As Range, Tam, i, Dau, Cuoi

On Error Resume Next
Application.EnableEvents = False
If Not Intersect(Target, Range("C14:C10000")) Is Nothing Then
Set DL = Target: DL.NumberFormat = "@"   'Thêm chỗ này

For Each Dem In DL
If Dem <> "" Then
If InStr(Dem, "=") Then Dem = Left(Dem, InStr(Dem, "=") - 1)
Tam = Dem

If InStr(Tam, ":") Then Tam = Right(Tam, Len(Tam) - InStr(Tam, ":"))
Tam = Replace(Tam, ",", ".")

Dem = Dem & "=" & Format(Evaluate(Tam), "#,##0.00")   'Thêm chỗ này
End If
Next Dem

For i = DL.Row + DL.Rows.Count - 1 To 1 Step -1
If Range("B" & i) <> "" Then
Dau = i
Range("E" & Dau).Value = 0
Exit For
End If
Next i

For i = DL.Row + DL.Rows.Count - 1 To UsedRange.Rows.Count
If Range("B" & i) <> "" And Range("C" & i) <> "" Then
Cuoi = i - 1
Exit For
Else
Cuoi = i
End If
Next i

Tam = 0
For i = Dau + 1 To Cuoi
If InStr(Range("C" & i), "=") Then
Tam = Tam + Right(Range("C" & i), Len(Range("C" & i)) - InStr(Range("C" & i), "="))
End If
Next i

Range("E" & Dau).Value = Tam
Range("E" & Dau).NumberFormat = "#,##0.00"   'Thêm chỗ này
End If
Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
File mắc một số lỗi sau:
1. Khi xóa dữ liệu trong bảng tính thì chữ Khối Lượng tỏng ô E 12 bị mất
2. Chưa đánh được số thứ tự
Mong bác sửa lại giúp em

1. Khi xóa dữ liệu trong bảng tính thì chữ Khối Lượng tỏng ô E 12 bị mất
Mã:
sửa

For i = DL.Row + DL.Rows.Count - 1 To 1 Step -1

thành

For i = DL.Row + DL.Rows.Count - 1 To 14 Step -1
2. Chưa đánh được số thứ tự
Mã:
Tìm mấy dòng cuối này

Range("E" & Dau).Value = Tam
Range("E" & Dau).NumberFormat = "#,##0.00"
End If
Application.EnableEvents = True
End Sub


Chèn thêm dòng lệnh như bên dưới

Range("E" & Dau).Value = Tam
Range("E" & Dau).NumberFormat = "#,##0.00"
Range("A14", "A" & UsedRange.Rows.Count) = "=IF(RC[1]<>"""",COUNTIF(R14C2:RC[1],""<>""),"""")"
End If
Application.EnableEvents = True
End Sub
 
1. Khi xóa dữ liệu trong bảng tính thì chữ Khối Lượng tỏng ô E 12 bị mất
Mã:
sửa

For i = DL.Row + DL.Rows.Count - 1 To 1 Step -1

thành

For i = DL.Row + DL.Rows.Count - 1 To 14 Step -1
2. Chưa đánh được số thứ tự
Mã:
Tìm mấy dòng cuối này

Range("E" & Dau).Value = Tam
Range("E" & Dau).NumberFormat = "#,##0.00"
End If
Application.EnableEvents = True
End Sub


Chèn thêm dòng lệnh như bên dưới

Range("E" & Dau).Value = Tam
Range("E" & Dau).NumberFormat = "#,##0.00"
Range("A14", "A" & UsedRange.Rows.Count) = "=IF(RC[1]<>"""",COUNTIF(R14C2:RC[1],""<>""),"""")"
End If
Application.EnableEvents = True
End Sub
Bác Kiểm tra lại giúp em. Vẫn bị lỗi phần đếm thứ tự.
 

File đính kèm

Web KT

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

Back
Top Bottom