Truy cập yahoo, GPE từ excel (4 người xem)

Liên hệ QC

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

ruadangyeu

Wise after the event
Thành viên danh dự
Tham gia
9/10/06
Bài viết
180
Được thích
185
Trong box này thấy mấy anh em hỏi truy cập yahoomail từ excel mấy hôm về lục lại đống VBScript viết lại bằng VBA thấy chạy rất ngon

+ Truy cập Yahoo! mail
Để thực hiện đầu tiên anh em vào trong tools/references
chọn Microsoft Internet control

Mã:
Private Sub ruadocmail_Click()
Dim ie As InternetExplorer
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "[URL="http://www.mail.yahoo.com/"]http://www.mail.yahoo.com[/URL]"
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
For Each ieForm In ie.Document.forms
If InStr(ieForm.innertext, "Yahoo! ID:") <> 0 Then
ULogin = True
'login la ten cua input text dung de nhap user
ieForm("login").Value = "nick cua ban"
'passwd la input text dung de nhap pass
ieForm("passwd").Value = "mat khau cua ban"
'sau do la dang nhap
ieForm.submit
Exit For
Else
End If
Next
If ULogin = False Then MsgBox "Ban da dang nhap roi"
Set ie = Nothing
End Sub
End Sub

Để truy cập các trang khác các bạn view source nó và tìm form login(noi thực hiện nhập tên và mật khẩu đăng nhập) sau đó tìm trong đó một dấu hiệu gì đặc trưng để phân biệt với các form khác(với yahoomail thì cái form này có chứa chuỗi "Yahoo! ID:". đựa vào đặc điểm tày để thực hiện việc điền vào các input text username và input text password
sau đó submit form lên server là ok thôi

Nói thêm: Một số bạn thường thắc mắc rằng khi đăng ký các diễn đàn cứ phải nhập 3 cái chữ lằng ngoằng trên một image là sao
Câu trả lời chắc đến giờ bạn đã biết, nếu không có việc chứng thực 3 cái chữ lằng ngoằng ấy thì một người lập trình ở cấp độ mầm non như mình cũng có thể viết 1 thủ tục để điển tất cả các thông tin cần thiết rồi submit lên phát là có ngay 1 thành viên mới//**/ .
 
Lần chỉnh sửa cuối:
Để truy cập vào GPE thì cũng không khác là mấy
Form đăng nhập của GPE có cái dấu hiệu là trong chỗ nhập tên có chữ "ký danh".
Input text để đánh tên đăng nhập có index là 0
Input text đánh pass có index là 2
Còn index 1 là của cái check box ghi nhớ (value là 0 và 1)
thay đổi mã trên ta có
Mã:
ie.Navigate "[URL="http://www.giaiphapexcel.com/"]http://www.giaiphapexcel.com[/URL]"
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
For Each ieForm In ie.Document.forms
If InStr(ieForm.innertext, "danh") <> 0 Then
ULogin = True
ieForm(0)Value = "nick cua ban"
 
ieForm(2).Value = "mat khau cua ban"

nhớ thay tên và mật khẩu luôn nhé

Mình đính kèm file chứa cả 2 code đây bạn down về sửa lại tên và mật khẩu nhé không lại đăng nhập vào tài khoản của ruadangyeu thì khổ:-=
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em post mấy hôm mà không có bác nào có ý kiến chán quá
hay bác nào viết cho cả nhà cái đăng nhập vào Gmail cái, trang đăng nhập của thằng gmail khác với những trang khác nhiều lắm
Mong các cao thủ ra tay
 
Upvote 0
Rùa ơi! sao mình down file doc mai.xls của bạn về dùng thi được mà chép đoạn code đó vào file của mình lại không dùng được vậy khi chạy nó cứ báo lỗi ? bạn chỉ mình với
 
Upvote 0
ndtdlhagiang đã viết:
Rùa ơi! sao mình down file doc mai.xls của bạn về dùng thi được mà chép đoạn code đó vào file của mình lại không dùng được vậy khi chạy nó cứ báo lỗi ? bạn chỉ mình với

Chắc nó báo lỗi ở dòng này phải không
Dim ie As InternetExplorer
Set ie = New InternetExplorer

Bạn đọc lại hướng dẫn của mình đó

+ Truy cập Yahoo! mail
Để thực hiện đầu tiên anh em vào trong tools/references
chọn Microsoft Internet control
 
Upvote 0
cám ơn bạn nhiều nha. tại mình chưa đọckỹ . lần sau rút kinh nghiệm
 
Upvote 0
rùa ơi! xin lỗi vì cứ gọi bạn mãi như vậy, mình không biết tên bạn mà ?????
mình có một vấn đề cần bạn giúp đỡ, giúp mình với nha! mình cần nhập một số dữ liệu vào một trang web mà làm mãi bằng VBE mà không được Mình gửi kèm file lên đây bạn chỉ giúp mình nha>>>>
 

File đính kèm

Upvote 0
ruadangyeu đã viết:
Em post mấy hôm mà không có bác nào có ý kiến chán quá
hay bác nào viết cho cả nhà cái đăng nhập vào Gmail cái, trang đăng nhập của thằng gmail khác với những trang khác nhiều lắm
Mong các cao thủ ra tay

Mình định ko có ý kiến gì nhưng mà... cho mình hỏi nhé. Đăng nhập Yahoo hay Gmail đó trong Excel .... để làm gì vậy? :)

Với lại, Just google!
 
Upvote 0
ndtdlhagiang đã viết:
rùa ơi! xin lỗi vì cứ gọi bạn mãi như vậy, mình không biết tên bạn mà ?????
mình có một vấn đề cần bạn giúp đỡ, giúp mình với nha! mình cần nhập một số dữ liệu vào một trang web mà làm mãi bằng VBE mà không được Mình gửi kèm file lên đây bạn chỉ giúp mình nha>>>>

1. Web là gì? Trang HTML tĩnh? Hay là 1 trang web hiển thị dữ liệu từ Database mà người ta gọi là Web động?

2. Khi đã xác định loại "web" rồi thì lúc đó bạn mới nghĩ đến cách đẩy dữ liệu từ Excel vào đâu. Nếu là HTML tĩnh thì Google Excel to Html. Nếu là Web động thì bạn update data đó vào đúng nơi trong DB mà bạn cần hiển thị.

Cheers!
 
Upvote 0
Mình định ko có ý kiến gì nhưng mà... cho mình hỏi nhé. Đăng nhập Yahoo hay Gmail đó trong Excel .... để làm gì vậy? :)

À thực ra thì đúng là nó không có ý nghĩa thực tế nhiều lắm thiệt, nhưng nó cũng là một ví dụ thú vị để chứng minh sức mạnh của VBA. Em chỉ muốn đưa ra một ví dụ nhỏ giúp các bạn có thể hiểu bản chất việc đưa dữ liệu lên một trang web.

1. Web là gì? Trang HTML tĩnh? Hay là 1 trang web hiển thị dữ liệu từ Database mà người ta gọi là Web động?

2. Khi đã xác định loại "web" rồi thì lúc đó bạn mới nghĩ đến cách đẩy dữ liệu từ Excel vào đâu. Nếu là HTML tĩnh thì Google Excel to Html. Nếu là Web động thì bạn update data đó vào đúng nơi trong DB mà bạn cần hiển thị.

Đúng là trên mạng cũng có nhiều VD cho cái vụ này nhưng để ứng dụng nó vào trong hoàn cảnh của từng công ty thì không dễ vì đơn giản không phải ai cũng am hiểu cả lập trình VBA và lập trình Web

Trang web công ty bạn ndtdlhagiang một web động được xây dựng trên nền .NET

Trong một công ty lớn đâu phải ai cũng có quyền truy vấn trực tiếp vào cơ sở dữ liệu đâu (Như vậy sẽ rất nguy hiểm) mà thường câp nhật dữ liệu về trung tâm thông qua một trang html và submit lên
Với trường hợp của bạn ndtdlhagiang mà ta cứ copy từng ô một rồi paste vào từng input trong trang html thì đúng là như "cửu vạn"

Mình đã làm xong cho bạn rồi nhưng không up lên được do hết quota
bạn liên hệ với mình qua email thanggaynguyen@gmail.com
mình sẽ gửi file cho

Còn đây là code
Mã:
Sub ghidulieu()
Dim ie As InternetExplorer
Dim chuoiurl As String
Dim i As Integer
Dim j As Integer
Dim vung As Range
Dim odl As Range
Set vung = Range("B7:i11")
chuoiurl = ThisWorkbook.Path & "\index1.html"
Set ie = New InternetExplorer
    ie.Visible = True
    ie.Navigate chuoiurl
    Do Until ie.ReadyState = READYSTATE_COMPLETE
    Loop
j = 0
      For Each ieForm In ie.Document.forms
        If InStr(ieForm.innertext, "Pmax") <> 0 Then
            
            For Each odl In vung
            For i = j To 100
                If ieForm(i).Type = "text" Then
                ieForm(i).Value = odl
                j = i + 1
                Exit For
                End If
            Next
            Next
        Exit For
        
        End If
    Next
    
End Sub
 
Upvote 0
ruadangyeu đã viết:
À thực ra thì đúng là nó không có ý nghĩa thực tế nhiều lắm thiệt, nhưng nó cũng là một ví dụ thú vị để chứng minh sức mạnh của VBA. Em chỉ muốn đưa ra một ví dụ nhỏ giúp các bạn có thể hiểu bản chất việc đưa dữ liệu lên một trang web.

À, đó là VB nói chung chứ ko chỉ riêng VBA. Mình ngày nào cũng thường xuyên vào rất nhiều trang code nên những chuyện như vậy mình "nhìn thấy" nhiều lắm. 90% cái gì (code ấy) cũng đều có thể tìm được.

Trên Web đúng là ko phải cái gì cũng phù hợp, nhưng mà nhiều lắm. Chịu khó tìm kiếm thì ... Mà thôi, anh phải làm việc đây. Ko chat thế này thì nghiện mất.
 
Upvote 0
Rùa à! mình nhận được mail của bạn rồi. mình cũng thử cách của bạn rồi nhưng vẫn chưa được. mình nhờ rùa nghiên cứu hộ mình nha>>>> mình sẽ up lên file đính kèm vì có một chút thay đổi. à mình cũng gửi mail cho bạn rồi??
 

File đính kèm

Upvote 0
Một trang có khi view source có 2 file chẳng qua là người ta dùng Frame thôi mà, trang của bạn hình như chia ra thành header và body thì phải.

Trong thư gửi cho bạn mình đã nhắc bạn phải thay đổi URL đi thì nó mới chạy là gì, vì mình có biết địa chỉ trang web của bạn trong mạng nội bộ đâu.
Mình giải thích cho bạn đoạn code nhé

Sub ghidulieu()
Dim ie As InternetExplorer
Dim chuoiurl As String 'đây là địa chỉ của trang html dùng để nhập liệu và submit lên máy chủ, bạn cần thay đổi nó
Dim i As Integer
Dim j As Integer
Dim vung As Range
Dim odl As Range
Set vung = Range("B7:i11") 'Trong file excel đây là vùng nhâp liệu gồm 5 hàng và 8 cột

chuoiurl = 'Cần copy URL của trang html và cho vào đây
Tạo một đối tượng Internet explorer
Set ie = New InternetExplorer
ie.Visible = True 'cho nó hiện lên

ie.Navigate chuoiurl
'chờ đợi để cửa sổ hiện lên
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
'Đưa dữ liệu trong excel lên trang html
j = 0
For Each ieForm In ie.Document.forms
If InStr(ieForm.innertext, "Pmax") <> 0 Then

For Each odl In vung
For i = j To 100
'trong trang html những điểu khiển dùng để nhập liệu có kiểu là "text"
If ieForm(i).Type = "text" Then
ieForm(i).Value = odl
j = i + 1
Exit For
End If
Next
Next
Exit For

End If
Next

End Sub
 
Upvote 0
Một trang có khi view source có 2 file chẳng qua là người ta dùng Frame thôi mà, trang của bạn hình như chia ra thành header và body thì phải.

Trong thư gửi cho bạn mình đã nhắc bạn phải thay đổi URL đi thì nó mới chạy là gì, vì mình có biết địa chỉ trang web của bạn trong mạng nội bộ đâu.
Mình giải thích cho bạn đoạn code nhé

Sub ghidulieu()
Dim ie As InternetExplorer
Dim chuoiurl As String 'đây là địa chỉ của trang html dùng để nhập liệu và submit lên máy chủ, bạn cần thay đổi nó
Dim i As Integer
Dim j As Integer
Dim vung As Range
Dim odl As Range
Set vung = Range("B7:i11") 'Trong file excel đây là vùng nhâp liệu gồm 5 hàng và 8 cột

chuoiurl = 'Cần copy URL của trang html và cho vào đây
Tạo một đối tượng Internet explorer
Set ie = New InternetExplorer
ie.Visible = True 'cho nó hiện lên

ie.Navigate chuoiurl
'chờ đợi để cửa sổ hiện lên
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
'Đưa dữ liệu trong excel lên trang html
j = 0
For Each ieForm In ie.Document.forms
If InStr(ieForm.innertext, "Pmax") <> 0 Then

For Each odl In vung
For i = j To 100
'trong trang html những điểu khiển dùng để nhập liệu có kiểu là "text"
If ieForm(i).Type = "text" Then
ieForm(i).Value = odl
j = i + 1
Exit For
End If
Next
Next
Exit For

End If
Next

End Sub


Mấy hôm này mình hết quota rồi không up được file nào lên hết mong các bạn thông cảm!
 
Upvote 0
à mình đã làm đúng như bạn hướng dẫn rồi mình đã đổi URL cho đúng với trường hợp của mình rồi. khi mình chạy thì nó chỉ lên được màn hình nơi mình càn nhập dữ liệu thôi, chứ dữ liệu thì vẫn không tự nhập vào được. quả thật không biết phải làm thế nào nữa
 
Upvote 0
Tốt nhất bạn nên save as trang html nhập liệu của bạn rồi gửi cho mình.
Ở nhà mình thử chạy rất ngon đấy chứ, có thể do cấu trúc trang html của công ty bạn có điểm gì đó không phù hợp.
Để minh hoạ mình up lên 1 file cho bạn thử
download
nó sẽ nhập liệu lên 1 trang html trên mạng
 
Upvote 0
mình hôm nay mới đi công tác về nên mới vào được diễn đàn.tối nay mình sẽ gửi cho bạn. cám ơn rùa trước nhé. à mình xem file đính kèm của bạn rồi, mình có ý thế này bạn xem có phải không nha: đoạn mã bạn viết giúp nhập liệ vbào trrang web đó rất tốt, nhưng trang web đó chỉ có một source mà thôi, hay là đoạn mã bạn viết khi ứng dụng vào trang web của công ty mình thì nó không tìm kiếm đúng đối tượng cần nhập dữ liệu ( ý mình là nó tìm kiếm trên header chứ không tìm kiếm trên body, hoặc là nó không biết tìm ở đâu trong header hay body)nên nó vẫn trơ trơ ra đấy.

Mạng của công ty tớ bị sập rồi nên không vào được, khi nào vào được mình sẽ gửi ngay cho bạn.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn ndtdlhagiang thân mến!
Ngày mai mình về quê ăn tết chắc không có cơ hội vào diễn đàn giúp bạn nữa. Nhưng vấn để của bạn mình nghĩ giải pháp này sẽ thực hiện được
Trang nhâp liêu của bạn là trang index.html trang này sử dụng một frame chứa một trang indextram.htm. Bạn chỉ cần gọi trực tiếp trang indextram.html chứ không gọi trang index.htm (URL = ....indextram.html)

Nếu mạng công ty bạn hoạt động rồi thì bạn cứ up lên, các thành viên khác của diễn đàn sẽ sẵn sàng giúp bạn thôi.
Còn nếu cuối năm mọi người đều bận không giúp được bạn thì bạn cứ phone cho mình theo số này 0986817680.

Chúc cả nhà ăn tết vui vẻ!
Chúc các bạn trong diễn đàn sang năm mới dồi dào sức khoẻ, gặt hái nhiều thành công và luôn vui vẻ trong cuộc sống!
Chúc diễn đàn GPE ngày càng phát triển!
 
Upvote 0
hi vọng là bạn chưa về quê ăn tết, mình đã thử saveas lại rùi nhưng không được, nó không cho saveas đâu. còn để vào trực tiếp trang indextram.htm thì không vào được đâu mình đã thử rồi, cho mình hỏi nhé, có cách nào gọi đến frame chứa một trang indextram.htm không? dùng VBA ấy, khi đó mọi công việc sẽ thực hiện trên trang đó luôn. cám ơn nhiều nha. chúc bạn một cái tết vui vẻ.
 
Upvote 0
Web KT

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

Back
Top Bottom