IMPORTAR CELULAS EXCEL

LUIZGS 13/01/2011 04:05:40
#362155
Bom dia amigos tenho esse codigo para pegar alguns dados de uma planilha do excel, do jeito que esta ele pega sempre as celulas A2,B2,C2, gostaria de saber como eu posso modificar o codigo para pegar outras celulas ,por exemplo coluna C1 até C5, Coluna F2 até F10.


Private Sub Command1_Click()
Dim oConn As ADODB.Connection
Dim oCmd As ADODB.Command
Dim oRS As ADODB.Recordset

Set oConn = New ADODB.Connection
oConn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & App.Path & [Ô]\ESTOQUE.xls;[Ô] & _
[Ô]Extended Properties=[Ô][Ô]Excel 8.0;HDR=Yes;[Ô][Ô];[Ô]
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
oCmd.CommandText = [Ô]SELECT * from [Plan1$][Ô]
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic

Dim vNum As Integer

If Not IsNull(oRS(1)) Then
Text1.Text = oRS(1)
Else
Text1.Text = [Ô][Ô]
End If

If Not IsNull(oRS(2)) Then
Text2.Text = oRS(2)
Else
Text2.Text = [Ô][Ô]
End If

If Not IsNull(oRS(3)) Then
Text3.Text = oRS(3)
Else
Text3.Text = [Ô][Ô]
End If

End Sub


Obrigado
Luiz
MITSUEDA 13/01/2011 08:25:47
#362162
Resposta escolhida
Na linha abaixo você está criando um RecordSet sobre toda a planilha
[txt-color=#0000f0]oCmd.CommandText = [Ô]SELECT * from [Plan1$][Ô][/txt-color]

Ai depois disso você testa se os campos 1, 2 e 3 não são nulos e resgata os valores, onde os campos 1, 2 e 3 correspondem as colunas A, B e C respectivamente.

Para selecionar um intervalo especifico você pode alterar seu codigo da seguinte maneira

[txt-color=#0000f0]oCmd.CommandText = [Ô]SELECT * from [Plan1$C1:C5][Ô][/txt-color]

Com o código acima você vai trazer apenas 1 campo que é a coluna C.

Ai você pode com a mesma logica setar novamente o objeto com outro intervalo depois de ter recuperado o valor.

Espero ter ajudado.
LUIZGS 13/01/2011 14:37:03
#362190
Boa tarde Fabio obrigado pelo retorno, como eu faço para colocar nos textbox, os valores do intervalo?

Obrigado

Luiz
LUIZGS 13/01/2011 23:27:06
#362236
Boa noite achei uma solução.

Sub Command()

Dim ObjetoExcel As New Excel.Application
Dim Celulas As Excel.Workbook
Dim I As Integer

Set Celulas = ObjetoExcel.Workbooks.Open([Ô]C:\deltav\estoque.xls[Ô])

Celulas.Sheets([Ô]Plan1[Ô]).Select
Text1.Text = Celulas.Application.Cells(1, 1)
Text2.Text = Celulas.Application.Cells(1, 2)
Text3.Text = Celulas.Application.Cells(6, 6)

Celulas.Close False

Set celula = Nothing
Set ObjetoExcel = Nothing
End Sub
Tópico encerrado , respostas não são mais permitidas