Notifications
Clear all

Retornar um valor através de uma matriz tabela

20 Posts
3 Usuários
0 Reactions
2,737 Visualizações
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Boa tarde pessoal!

Estou em busca de uma solução que creio ser relativamente simples para meu problema.
Na planilha anexa, preciso que na célula N4 da guia "Globo" por exemplo, seja exibido o texto correspondente da coluna C da guia Plan1 (base de dados).

Exemplo: No dia 10/10/2014, foi feita a publicação Teste 1 no jornal Globo. Gostaria que na guia "Globo", fosse exibido o texto "Teste 1" no dia 10/10. Um controle dos das publicações em cima do calendário mensal.

Mas a fórmula deve funcionar para todos os dias do calendário. Acredito que não seja muito difícil, mas estou tendo dificuldades em elaborar o raciocínio!

Agradeço.

Thiago.

 
Postado : 27/10/2014 2:41 pm
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Bom dia, Gilmar!

Ontem não tive tempo pra mexer na planilha! Sou amador em VBA cara, estou nos primórdios, estou até pesquisando aqui como usar sua sugestão, mas confesso que estou tendo dificuldades.

Resolvi postar a planilha original mesmo. Segue anexa!
Estou enfrentando 2 dificuldades, uma é essa questão da data a qual me referi, que a fórmula só reconhece a data digitada e não a inserida na base de dados pelo formulário e;
A outra é que ao inserir os dados no formulário, o excel está retornando a visualização para a sheet "BD_Meses", quando eu gostaria que mantivesse a visualização na sheet que estou inserindo a informação.

Obrigado mais uma vez!

Abs.

 
Postado : 31/10/2014 6:47 am
(@gtsalikis)
Posts: 2373
Noble Member
 

O código que eu te falei, deve ser ajustado no formulário. Era esse código aqui:

Private Sub Inserir_OK_Click()

If formEntrada.Revista.Text = "" Then
MsgBox "Selecione uma Revista.", vbExclamation, "Atenção!"
Exit Sub
ElseIf formEntrada.Texto.Text = "" Then
MsgBox "Escreva o título da publicação.", vbExclamation, "Atenção!"
Exit Sub
ElseIf formEntrada.Data.Text = "" Then
MsgBox "Insira a data da publicação.", vbExclamation, "Atenção!"
Exit Sub
End If

ActiveWorkbook.Sheets("BD_Meses").Activate
Range("A2").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = Revista.Value
ActiveCell.Offset(0, 1) = CDate(Data.Value)
ActiveCell.Offset(0, 2) = Texto.Value
ActiveCell.Offset(0, 3) = Diretorio.Value

If formEntrada.Diretorio.Value <> "" Then

'Criando hiperlink do arquivo selecionado
ActiveCell.Offset(0, 3).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
formEntrada.Diretorio.Text, TextToDisplay:= _
Diretorio.Value
End If
Unload Me

End Sub

Em vermelho, foi só o que eu incluí, e funcionou.

Segue tb a planilha, já com o código ajustado.

Abs

 
Postado : 31/10/2014 4:14 pm
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Fala Gilmar!

Excelente cara! E que solução simples... Não imaginei que fosse ser somente isso!
A última coisa, que eu havia perguntado mas creio que vc não tenha visto, é que, ao inserir os dados através do formulário, ao clicar "OK", o excel está exibindo a guia "BD_Meses", porém gostaria que mantivesse a visualização na guia atual, em que os dados estão sendo inseridos.

Já busquei a solução na internet e também aqui no fórum, porém não encontrei. Poderia me ajudar com mais essa?

Abraços.
Obrigado!

 
Postado : 03/11/2014 6:09 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Não tinha visto mesmo.

Pode ser assim, no modo gambiarra (sem mexer no teu código):

Private Sub Inserir_OK_Click()

Dim ws As Worksheet

Set ws = ThisWorkbook.ActiveSheet

If formEntrada.Revista.Text = "" Then
MsgBox "Selecione uma Revista.", vbExclamation, "Atenção!"
Exit Sub
ElseIf formEntrada.Texto.Text = "" Then
MsgBox "Escreva o título da publicação.", vbExclamation, "Atenção!"
Exit Sub
ElseIf formEntrada.Data.Text = "" Then
MsgBox "Insira a data da publicação.", vbExclamation, "Atenção!"
Exit Sub
End If

ActiveWorkbook.Sheets("BD_Meses").Activate
    Range("A2").Select
    Do
    If IsEmpty(ActiveCell) = False Then
        ActiveCell.Offset(1, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
    ActiveCell.Value = Revista.Value
    ActiveCell.Offset(0, 1) = CDate(Data.Value)
    ActiveCell.Offset(0, 2) = Texto.Value
    ActiveCell.Offset(0, 3) = Diretorio.Value
       
    If formEntrada.Diretorio.Value <> "" Then
           
    'Criando hiperlink do arquivo selecionado
    ActiveCell.Offset(0, 3).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        formEntrada.Diretorio.Text, TextToDisplay:= _
        Diretorio.Value
    End If
    
    ws.Select
    
    Unload Me
    
End Sub

Mas eu acho que dá pra ser assim (dando uma melhorada rápida no código):

Private Sub Inserir_OK_Click()

Dim UL As Long ' UL = Última Linha

If formEntrada.Revista.Text = "" Then
MsgBox "Selecione uma Revista.", vbExclamation, "Atenção!"
Exit Sub
ElseIf formEntrada.Texto.Text = "" Then
MsgBox "Escreva o título da publicação.", vbExclamation, "Atenção!"
Exit Sub
ElseIf formEntrada.Data.Text = "" Then
MsgBox "Insira a data da publicação.", vbExclamation, "Atenção!"
Exit Sub
End If

With Sheets("BD_Meses")
    UL = .Cells(Rows.Count, "A").End(xlUp).Row + 1
    
    .Cells(UL, "A").Value = Revista.Value
    .Cells(UL, "A").Offset(0, 1).Value = CDate(Data.Value)
    .Cells(UL, "A").Offset(0, 2).Value = Texto.Value
    .Cells(UL, "A").Offset(0, 3).Value = Diretorio.Value
       
    If formEntrada.Diretorio.Value <> "" Then
           
    'Criando hiperlink do arquivo selecionado
    .Cells(UL, "A").Offset(0, 3).Hyperlinks.Add Anchor:=Selection, Address:= _
        formEntrada.Diretorio.Text, TextToDisplay:= _
        Diretorio.Value
    End If
End With
Unload Me
    
End Sub

Abs

 
Postado : 03/11/2014 6:31 am
 Rech
(@rech)
Posts: 0
New Member
Topic starter
 

Resolvido cara!

Muito obrigado pelo suporte!
Precisando de algo, estamos aí!

Grande abraço.

 
Postado : 03/11/2014 9:07 am
Página 2 / 2