XIN ANH CHỊ GIÚP ĐỠ HƯỚNG DẪN CHUYỂN VĂN BẢN THÀNH GIỌNG NÓI TRONG EXCEL Ạ. (7 người xem)

Liên hệ QC

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

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

only22222

Thành viên mới
Tham gia
14/5/25
Bài viết
9
Được thích
0
Chào anh chị ạ, Em có bảng 1 là bảng gốc, em muốn khi em điền Mã SP vào bảng 2 ( ô H3 ) thì ở cột I ( ô I3 ) bảng 2 sẽ tự động hiện ra tên sản phẩm tương với với Mã SP và đọc phát được ra loa tên sản phẩm đó ( Tên sản phẩm chuyển thành giọng nói trong excel). Mong anh chị có thể giúp đỡ. Rất cảm ơn anh chị giúp đỡ ạ.
 

File đính kèm

Chào anh chị ạ, Em có bảng 1 là bảng gốc, em muốn khi em điền Mã SP vào bảng 2 ( ô H3 ) thì ở cột I ( ô I3 ) bảng 2 sẽ tự động hiện ra tên sản phẩm tương với với Mã SP và đọc phát được ra loa tên sản phẩm đó ( Tên sản phẩm chuyển thành giọng nói trong excel). Mong anh chị có thể giúp đỡ. Rất cảm ơn anh chị giúp đỡ ạ.
Để mà nói được nữa thì có lẽ rời sang box lập trình chứ hàm chắc khó khả thi
 
Chào anh chị ạ, Em có bảng 1 là bảng gốc, em muốn khi em điền Mã SP vào bảng 2 ( ô H3 ) thì ở cột I ( ô I3 ) bảng 2 sẽ tự động hiện ra tên sản phẩm tương với với Mã SP và đọc phát được ra loa tên sản phẩm đó ( Tên sản phẩm chuyển thành giọng nói trong excel). Mong anh chị có thể giúp đỡ. Rất cảm ơn anh chị giúp đỡ ạ.
Này hay đó. Mấy người bán rong có thể lựa chọn sản phẩm bán từng khu vực cho phù hợp, rồi tích chọn, vậy là loa sẽ đọc món hàng cần bán :D
 
Vụ này không khó. Nếu không muốn kết nối internet để tạo giọng đọc trực tiếp cũng được hoặc tạo giọng đọc từng sản phẩm tải về, lưu rồi phát lại.
 
Mình nhớ đơt chống dịch Covid19 có bạn nào đó đã tạo file Excel
 
Để mà nói được nữa thì có lẽ rời sang box lập trình chứ h
k có hàm hay công thức chuyển van bản thành âm thanh tiếng việt ạ ?
Vụ này không khó. Nếu không muốn kết nối internet để tạo giọng đọc trực tiếp cũng được hoặc tạo giọng đọc từng sản phẩm tải về, lưu rồi
xin clip hướng dẫn được k ạ ? e chỉ muốn khi điền mã sản phẩm thì sẽ có loa đọc ra tên sản phẩm cho bà, cho mẹ ở nhà dễ bán hàng ạ.
Bài đã được tự động gộp:

Này hay đó. Mấy người bán rong có thể lựa chọn sản phẩm bán từng khu vực cho phù hợp, rồi tích chọn, vậy là loa sẽ đọc món hàng cần bán :D
đúng ý em ạ, có cách nào đọc được như thế k ạ ?
Bài đã được tự động gộp:

Mình nhớ đơt chống dịch Covid19 có bạn nào đó đã tạo file Excel
Do kiến thức của em hạn hẹp lên cũng chỉ mới chỉ dừng lại ở ý tưởng thôi, em vừa bấm xem bài viết nhưng chưa hiểu cách làm. Xin được hướng dẫn ạ. Em cảm ơn.
 
Lần chỉnh sửa cuối:
Chào anh chị ạ, Em có bảng 1 là bảng gốc, em muốn khi em điền Mã SP vào bảng 2 ( ô H3 ) thì ở cột I ( ô I3 ) bảng 2 sẽ tự động hiện ra tên sản phẩm tương với với Mã SP và đọc phát được ra loa tên sản phẩm đó ( Tên sản phẩm chuyển thành giọng nói trong excel). Mong anh chị có thể giúp đỡ. Rất cảm ơn anh chị giúp đỡ ạ.
Chắc bạn đã xem bài đáp án của anh Batman1 rồi.
Tôi chỉ mượn file của anh ấy để làm bài cho bạn.
1- Dùng hàm Vlookup để Tham chiểu cột H sang bảng 1 để lấy kết quả vào cột I
I3=VLOOKUP(H3;B3:C86;2;0) ---> Copy cho các ô còn lại.
2- Dùng code bắt sự kiện thay đổi ô H3:H....
3- Sửa lại code trong sub PlayInSequence(module2)
Chạy trên máy tôi thì OK, Còn trên máy bạn thì hy vọng cũng ổn.
Xem file đính kèm
Thử thay đổi mã ỏ cột H và xem kết quả có thấy nói không?
 

File đính kèm

Vừa tải file về trình diệt virus của Windows nó chặn luôn
Vấn đề là bạn có tin tưởng tập tin hay không. Nếu bạn không tin tưởng thì dù Windows không cảnh báo thì bạn vẫn không tải về. Còn khi tin tưởng thì dù có cảnh báo thì bạn vẫn mở.

Bạn thao tác như sau:
File -> Options -> Trust Center -> Truster Center Settings … Protected View -> bỏ chọn tất cả -> OK -> OK
Lúc này mới mở tập tin đã tải về.
 
Vấn đề là bạn có tin tưởng tập tin hay không. Nếu bạn không tin tưởng thì dù Windows không cảnh báo thì bạn vẫn không tải về. Còn khi tin tưởng thì dù có cảnh báo thì bạn vẫn mở.
File của bác HUONGHCKT tôi vừa tải về thì cái trình Microsoft Defender mặc định của Windows nó xóa luôn, lấy gì mà mở đây :D.. haizzaa..
Đính kèm là file gốc của bác batman1, các bạn tải xem có bị chặn không nhe.
 

File đính kèm

Chào anh chị ạ, Em có bảng 1 là bảng gốc, em muốn khi em điền Mã SP vào bảng 2 ( ô H3 ) thì ở cột I ( ô I3 ) bảng 2 sẽ tự động hiện ra tên sản phẩm tương với với Mã SP và đọc phát được ra loa tên sản phẩm đó ( Tên sản phẩm chuyển thành giọng nói trong excel). Mong anh chị có thể giúp đỡ. Rất cảm ơn anh chị giúp đỡ ạ.
Bạn xem thử file này nhé. Đọc offiline.
 

File đính kèm

Thành thật xin lỗi các thành viên đã tải file của tôi gửi cho bạn chủ thót.
Do laptop của tôi bị hư loa nên tôi làm và chuyển (bằng Zalo) qua 1 laptop khác để thử và dùng máy ấy để gửi file trả lời nên không kiểm soát được các hệ lụy liên quan xảy ra.
Thực ra file của anh @batman1 tôi giữ nguyên code chỉ có thay mỗi một vài dòng của Sub PlayInSequence(ByVal Rng As Range)
từ
Mã:
.......
With Sheet1
            media = .Range("B5:B" & lastRow + 1).Value
            doandau = .Range("A4").Value
            doancuoi = .Range("A5").Value
            lap = .Range("C5").Value
            time_repeat = .Range("D5").Value
            If time_repeat < 2 Then time_repeat = 2
        End With
.......
Thành
Mã:
.....
With Sh
            doandau = Rng '.Range("I3").Value
            lap = .Range("K1").Value
            time_repeat = .Range("M1").Value
            If time_repeat < 2 Then time_repeat = 2
        End With
......
Tôi cũng Không có đủ năng lực trình độ để hiểu được code trong file gốc (nhất là mấy cái hàm API)
Một lần nữa Tôi chân thành xin lỗi vì đã làm phiền các bạn.
 
Thành thật xin lỗi các thành viên đã tải file của tôi gửi cho bạn chủ thót.
Do laptop của tôi bị hư loa nên tôi làm và chuyển (bằng Zalo) qua 1 laptop khác để thử và dùng máy ấy để gửi file trả lời nên không kiểm soát được các hệ lụy liên quan xảy ra.
Thực ra file của anh @batman1 tôi giữ nguyên code chỉ có thay mỗi một vài dòng của Sub PlayInSequence(ByVal Rng As Range)
từ
Mã:
.......
With Sheet1
            media = .Range("B5:B" & lastRow + 1).Value
            doandau = .Range("A4").Value
            doancuoi = .Range("A5").Value
            lap = .Range("C5").Value
            time_repeat = .Range("D5").Value
            If time_repeat < 2 Then time_repeat = 2
        End With
.......
Thành
Mã:
.....
With Sh
            doandau = Rng '.Range("I3").Value
            lap = .Range("K1").Value
            time_repeat = .Range("M1").Value
            If time_repeat < 2 Then time_repeat = 2
        End With
......
Tôi cũng Không có đủ năng lực trình độ để hiểu được code trong file gốc (nhất là mấy cái hàm API)
Một lần nữa Tôi chân thành xin lỗi vì đã làm phiền các bạn.
chào bạn, vì mình vẫn còn ngu ngơ về VBA lên bạn có thể đính kèm file có cả code luôn k ạ ?
Chắc bạn đã xem bài đáp án của anh Batman1 rồi.
Tôi chỉ mượn file của anh ấy để làm bài cho bạn.
1- Dùng hàm Vlookup để Tham chiểu cột H sang bảng 1 để lấy kết quả vào cột I
I3=VLOOKUP(H3;B3:C86;2;0) ---> Copy cho các ô còn lại.
2- Dùng code bắt sự kiện thay đổi ô H3:H....
3- Sửa lại code trong sub PlayInSequence(module2)
Chạy trên máy tôi thì OK, Còn trên máy bạn thì hy vọng cũng ổn.
Xem file đính kèm
Thử thay đổi mã ỏ cột H và xem kết quả có thấy nói không?
chào bạn, rất cảm ơn bạn vì giúp đỡ mình, mình có tải file về nhưng hiện virut, tự động xóa,mình k bấm lưu được ( ảnh 1 ), mình còn gà excle lên k biết làm thế nào, rất xin lỗi bạn.
Mình có 1 file do mình lên ý tưởng sẵn, vì mình mới tìm hiểu VBA lên năng lực độ hiểu biết có hạn. Nhưng các cụ có câu "đi 1 ngày đàng học 1 sàng khôn", rất mong bạn có thể dành chút thời gian giúp đỡ, hướng dẫn mình mở mang thêm kiến thức . Rất hy vọng bạn làm luôn trong file sẵn của mình, và Nếu có thể mong bạn quay clip hướng dẫn, rất xin lỗi vì đã đòi hỏi ở bạn quá nhiều, nhưng thực lòng mình rất muốn học hỏi, Cảm ơn bạn rất rất nhiều.
Trong file (2) mình có bảng 1 là bảng gốc, mình muốn khi mình điền Mã SP vào bảng 2 ( ô H3 ) thì ở cột I ( ô I3 ) bảng 2 sẽ tự động hiện ra tên sản phẩm tương với với Mã SP và đọc phát được ra loa tên sản phẩm đó ( Tên sản phẩm chuyển thành giọng nói trong excel). Mong hồi âm sớm từ bạn,Một lần nữa, mình cảm ơn bạn!
anh1.png
Bài đã được tự động gộp:

Bạn xem thử file này nhé. Đọc of
cảm ơn sự giúp đỡ của bạn. Nhưng bạn cho mình hỏi bấm vào đâu để file nói vậy ạ ? bạn có thể dành thời gian hướng dẫn mình một chút được không ?
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem thử file này nhé. Đọc offiline.
file này của e
Thì như bạn yêu cầu là khi gõ mã SP ở H3 thì nó nói thôi.

Cảm ơn bạn. Mình vào file bạn gửi, gõ mã SP nhưng k thấy loa phát ra âm thanh tên sản phẩm.
Mình muốn nói lại ý tưởng của mình một chút:
Ở file PHÁT ÂM THANH SẢN PHẨM THEO MÃ SP mình đang đính kèm bên dưới, lấy bảng 1 là bảng gốc, mình muốn khi mình điền mã SP vào ( BẢNG 2 ( BẢNG KẾT QUẢ MONG MUỐN NHẬN LẠI )), thì tên sản phẩm tương ứng sẽ tự động hiện ra, và LOA tự động đọc ra âm thanh Tên sản phẩm ấy.
Trong file đính kèm mình có ghi ví dụ mà mình mong muốn nhận lại. Bạn có thể dành chút thời gian xem file, hướng dẫn và thực hành trực tiếp vào file được k?
Rất mong được học hỏi kiến thức và nhận được sự trợ giúp từ những bậc tiền bối đi trước giống bạn để mình được mở mang kiến thức . Mình cảm ơn rất nhiều.
 

File đính kèm

file này của e


Cảm ơn bạn. Mình vào file bạn gửi, gõ mã SP nhưng k thấy loa phát ra âm thanh tên sản phẩm.
Mình muốn nói lại ý tưởng của mình một chút:
Ở file PHÁT ÂM THANH SẢN PHẨM THEO MÃ SP mình đang đính kèm bên dưới, lấy bảng 1 là bảng gốc, mình muốn khi mình điền mã SP vào ( BẢNG 2 ( BẢNG KẾT QUẢ MONG MUỐN NHẬN LẠI )), thì tên sản phẩm tương ứng sẽ tự động hiện ra, và LOA tự động đọc ra âm thanh Tên sản phẩm ấy.
Trong file đính kèm mình có ghi ví dụ mà mình mong muốn nhận lại. Bạn có thể dành chút thời gian xem file, hướng dẫn và thực hành trực tiếp vào file được k?
Rất mong được học hỏi kiến thức và nhận được sự trợ giúp từ những bậc tiền bối đi trước giống bạn để mình được mở mang kiến thức . Mình cảm ơn rất nhiều.
Cũng file này bạn chỉ cần đổi sự kiện từ cell thay đổi thành cột là được rồi.

JavaScript:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("H:H")) Is Nothing Then DocSP_Offline
End Sub

Chú ý:
- File tôi gửi ở trên là trong file zip, có kèm theo hàng loạt file âm thanh đi kèm (nằm cùng folder với file Excel), nếu bạn thay đổi đường dẫn không có file âm thanh thì lấy gì nó đọc??
- Trong file tôi cũng có đoạn code tương tác với Google để lấy giọng đọc online luôn, bạn chỉ cần đổi cái hàm DocSP_Offline() thành DocSanPham_online là được rồi. Tôi không thích dùng cách này vì cứ phải kết nối rồi tải giọng đọc hoài nếu nhập một mã SP nhiều lần, chưa kể phải có internet.

Screenshot 2025-05-20 at 20.55.13.png
 
cảm ơn sự giúp đỡ của bạn, nhưng ý tưởng của mình có hơi khác 1 chút so vớ file anh batman.
Cũng file này bạn chỉ cần đổi sự kiện từ cell thay đổi thành cột là được rồi.

JavaScript:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("H:H")) Is Nothing Then DocSP_Offline
End Sub

Chú ý:
- File tôi gửi ở trên là trong file zip, có kèm theo hàng loạt file âm thanh đi kèm (nằm cùng folder với file Excel), nếu bạn thay đổi đường dẫn không có file âm thanh thì lấy gì nó đọc??
- Trong file tôi cũng có đoạn code tương tác với Google để lấy giọng đọc online luôn, bạn chỉ cần đổi cái hàm DocSP_Offline() thành DocSanPham_online là được rồi. Tôi không thích dùng cách này vì cứ phải kết nối rồi tải giọng đọc hoài nếu nhập một mã SP nhiều lần, chưa kể phải có internet.
cảm ơn bạn giúp đỡ, do mình mới tìm tòi học hỏi lên dẫn đến mất nhiều thời gian mà vẫn chưa làm đúng T.T, mình còn ngu ngơ quá, rất xin lỗi bạn. Bạn cho mình hỏi, đoạn code trên có tiếp tục hiện tự động ra tên sản phẩm và loa tự động phát âm thanh sản phầm ở ô i4,i5,i6,i7,i..... khi mình điền mã sp vào các ô tiếp theo h4,h5,h6,h....k ạ ? mình mong muốn khi mình điền mã sp vào các ô tiếp theo thì đoạn code trên vẫn hoạt động được ạ. Cảm ơn bạn rất nhiều
Bài đã được tự động gộp:

cảm ơn sự giúp đỡ của bạn, nhưng ý tưởng của mình có hơi khác 1 chút so vớ file anh batman.

cảm ơn bạn giúp đỡ, do mình mới tìm tòi học hỏi lên dẫn đến mất nhiều thời gian mà vẫn chưa làm đúng T.T, mình còn ngu ngơ quá, rất xin lỗi bạn. Bạn cho mình hỏi, đoạn code trên có tiếp tục hiện tự động ra tên sản phẩm và loa tự động phát âm thanh sản phầm ở ô i4,i5,i6,i7,i..... khi mình điền mã sp vào các ô tiếp theo h4,h5,h6,h....k ạ ? mình mong muốn khi mình điền mã sp vào các ô tiếp theo thì đoạn code trên vẫn hoạt động được ạ. Cảm ơn bạn rất nhiều
xin lỗi vì đòi hỏi ở bạn hơi nhiều, vì mình còn là mầm non mới nhú, còn ngu ngơ chưa hiểu, mong bạn kiên nhẫn đừng cáu với mình, :'(
 
cảm ơn bạn giúp đỡ, do mình mới tìm tòi học hỏi lên dẫn đến mất nhiều thời gian mà vẫn chưa làm đúng T.T, mình còn ngu ngơ quá, rất xin lỗi bạn. Bạn cho mình hỏi, đoạn code trên có tiếp tục hiện tự động ra tên sản phẩm và loa tự động phát âm thanh sản phầm ở ô i4,i5,i6,i7,i..... khi mình điền mã sp vào các ô tiếp theo h4,h5,h6,h....k ạ ? mình mong muốn khi mình điền mã sp vào các ô tiếp theo thì đoạn code trên vẫn hoạt động được ạ. Cảm ơn bạn rất nhiều
- Bạn cứ dùng cái file mới gửi của bạn và copy các file âm thanh tôi gửi trong file zip vào cùng folder rồi chạy đi sẽ thấy. Tôi chỉ thiết kế theo file của bạn chứ không theo kiểu của bác batman1 nhé. (Sau khi sửa code tôi đã nói ở trên). Bạn muốn nhập bất kỳ dòng nào trong cột H cũng được, miễn là giá trị nhập phải trùng với mã hàng bảng 1. ĐÂY LÀ CÁCH ĐỌC OFFLINE. Đọc dựa trên các file âm thanh đã tải sẳn.
- Còn cách đọc ONLINE là gửi chuỗi cần đọc lên Google để tạo giọng đọc rồi tải về --> đọc. Bắt buộc phải có internet. Mỗi lần đọc là mỗi lần tải (đối với tôi là không hiệu quả). Nếu bạn muốn dùng cách này thì sửa lại chút code.
Thay thế code của hàm DocSanPham_Online() như bên dưới:
JavaScript:
Sub DocSanPham_Online(txt As String)
    On Error GoTo EH
  
    Call GetTTS(txt)
  
    Dim n As Integer    'sô lân lap lai
    n = 2
    Do While n > 0
        mciSendString "open """ & strTempFileName, vbNullString, 0, 0
        mciSendString "play " & strTempFileName & " wait", vbNullString, 0, 0
        mciSendString "close " & strTempFileName, vbNullString, 0, 0
        DoEvents
        n = n - 1
    Loop

EH_Exit:
    Exit Sub

EH:
    MsgBox "Co loi phat sinh." & vbCrLf _
         & "Mã loi: " & Err.Number & vbCrLf _
         & "Noi dung: " & Err.Description, vbCritical, "Thông báo"
    Resume EH_Exit

End Sub

Thay thế code ở sự kiện Worksheet_change:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("H:H")) Is Nothing Then DocSanPham_Online (Target.Offset(0, 1).Value)
End Sub

Xong.
 

File đính kèm

Lần chỉnh sửa cuối:
Cũng file này bạn chỉ cần đổi sự kiện từ cell thay đổi thành cột là được rồi.

JavaScript:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("H:H")) Is Nothing Then DocSP_Offline
End Sub

Chú ý:
- File tôi gửi ở trên là trong file zip, có kèm theo hàng loạt file âm thanh đi kèm (nằm cùng folder với file Excel), nếu bạn thay đổi đường dẫn không có file âm thanh thì lấy gì nó đọc??
- Trong file tôi cũng có đoạn code tương tác với Google để lấy giọng đọc online luôn, bạn chỉ cần đổi cái hàm DocSP_Offline() thành DocSanPham_online là được rồi. Tôi không thích dùng cách này vì cứ phải kết nối rồi tải giọng đọc hoài nếu nhập một mã SP nhiều lần, chưa kể phải có internet.

View attachment 308283
xin lỗi vì đòi hỏi ở bạn hơi nhiều, vì mình mới tìm hiểu về VBA, có ý tưởng mà chưa biết cách làm. Và mặc dù bạn đã rất nhiệt tình giúp đỡ, giải thích, nhưng mình vẫn chưa làm được..... mong bạn kiên nhẫn đừng nỡ cáu mình. Mình cũng k muốn vậy đâu. Vì ý tưởng của mình có hơi chút khác trước,( mình có viết ý tưởng trong file này). Nếu có thể mong bạn dành chút thời gian đọc file, làm trực tiếp vào file mình đính kèm bên dưới. Để mình có thể tổng hợp lại những gì bạn hướng dẫn từ file tổng này, mình muốn code ĐỌC OFFLINE trước, đọc oln với kiến thức ở thời điểm hiện tại này của mình mình chưa giám học, sợ bạn hướng dẫn tăng xông, máu dồn lên não, bạn cáu mình sợ :(. Có thể với tiền bối thì code này dễ dàng, nhưng với người mới học giống mình thì khó, mình cần nhiều thời gian để hiểu. Thật tốt nếu bạn có thể tổng kết lại giúp mình tóm gọn lại trong file này. Rất xin lỗi và cũng rất cảm ơn bạn. Mong bạn đừng cáu mà giúp đỡ mình :(
 

File đính kèm

xin lỗi vì đòi hỏi ở bạn hơi nhiều, vì mình mới tìm hiểu về VBA, có ý tưởng mà chưa biết cách làm. Và mặc dù bạn đã rất nhiệt tình giúp đỡ, giải thích, nhưng mình vẫn chưa làm được..... mong bạn kiên nhẫn đừng nỡ cáu mình. Mình cũng k muốn vậy đâu. Vì ý tưởng của mình có hơi chút khác trước,( mình có viết ý tưởng trong file này). Nếu có thể mong bạn dành chút thời gian đọc file, làm trực tiếp vào file mình đính kèm bên dưới. Để mình có thể tổng hợp lại những gì bạn hướng dẫn từ file tổng này, mình muốn code ĐỌC OFFLINE trước, đọc oln với kiến thức ở thời điểm hiện tại này của mình mình chưa giám học, sợ bạn hướng dẫn tăng xông, máu dồn lên não, bạn cáu mình sợ :(. Có thể với tiền bối thì code này dễ dàng, nhưng với người mới học giống mình thì khó, mình cần nhiều thời gian để hiểu. Thật tốt nếu bạn có thể tổng kết lại giúp mình tóm gọn lại trong file này. Rất xin lỗi và cũng rất cảm ơn bạn. Mong bạn đừng cáu mà giúp đỡ mình :(
File đính kèm ở trên là tôi làm trên file bạn gửi đó.

Nhớ mở loa lên nghe nhé.

 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom