Notifications
Clear all

Carregar dados de outra planilha fechada

4 Posts
2 Usuários
0 Reactions
1,355 Visualizações
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Boa tarde!
Pessoal, andei pesquisando no fórum sobre esses assuntos, mas encontrei meio vago as informações...

O que eu preciso é o seguinte...

tenho duas planilhas...

Na Plan1 eu tenho meus dados
Na Plan2 eu tenho um form com texbox

Tem como ao abrir minha Plan2 e carregar em meus textbox os dados da Plan1 sem necessidade de abrir a Plan1?

Welington Gonçalves

 
Postado : 14/08/2014 10:09 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Terá que abri-lo e fecha-lo (via VBA).
O exemplo abaixo popula uma combobox buscando de arquivo fechado.

Option Explicit
 
Private Sub UserForm_Activate()
    Dim SourceWB As Workbook
    Dim ListItems As Variant
    Dim i As Integer
    Application.ScreenUpdating = False
    With Me.ComboBox1
        .Clear ' Limpa a combobox
         ' Abre arquivo de origem com somente leitura
        Set SourceWB = Workbooks.Open("D:WorkDrFosterAdmin.xls", _
        False, True)
        ListItems = SourceWB.Worksheets(1).Range("e5", Range("e65536").End(xlUp)).Value
        SourceWB.Close False ' fechar o Arquivo de origem sem salvar as alterações
        Set SourceWB = Nothing
        ListItems = Application.WorksheetFunction.Transpose(ListItems)
        
        For i = 1 To UBound(ListItems)
            .AddItem ListItems(i)
        Next i
        .ListIndex = -1
         
    End With
    Application.ScreenUpdating = True
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/08/2014 10:34 am
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Alexandre.. fiz a adaptação mas ainda não consegui a lógica...

dei o nome da minha planilha onde terá os dados de teste1

e o nome da minha planilha que conterá a combobox de teste2

e fiz assim

Option Explicit

Private Sub UserForm1_Activate()
Dim SourceWB As teste1
Dim ListItems As Variant
Dim i As Integer
Application.ScreenUpdating = False
With Me.ComboBox1
.Clear ' Limpa a combobox
' Abre arquivo de origem com somente leitura
Set SourceWB = teste1.Open("C:UserswellingtonDesktop", _
False, True)
ListItems = SourceWB.Worksheets(1).Range("e5", Range("e65536").End(xlUp)).Value
SourceWB.Close False ' fechar o Arquivo de origem sem salvar as alterações
Set SourceWB = Nothing
ListItems = Application.WorksheetFunction.Transpose(ListItems)

For i = 1 To UBound(ListItems)
.AddItem ListItems(i)
Next i
.ListIndex = -1

End With
Application.ScreenUpdating = True
End Sub

só que a combobox não carregou os dados da minha coluna "E5" como está adapado ao código.

Welington Gonçalves

 
Postado : 14/08/2014 1:37 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se prestar atenção e ler linha por linha na rotina que o Alexandre indicou verá que fez adaptações mas não segui a lógica:

Dim SourceWB As Workbook e não :
Dim SourceWB As teste1

Vermelho é o caminho, Azul o nome do arquivo
Set SourceWB = Workbooks.Open("D:WorkDrFosterAdmin.xls", False, True), e você colocou:

O Caminho sem fechar "" e sem o nome do arquivo
Set SourceWB = teste1.Open("C:UserswellingtonDesktop", False, True)

E se quer alimentar o Combobox2 ou pelo nome que deu ao mesmo, tem de alterar:
With Me.ComboBox1

só que a combobox não carregou os dados da minha coluna "E5" como está adapado ao código.
O Combobox é alimentado com os dados a partir da Linha "5" ou seja de E5 até a última preenchida
("e5", Range("e65536").End(xlUp)).Value

Certifique tambem que seu form tem o nome UserForm1

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/08/2014 5:11 pm