Notifications
Clear all

Macro para Atualização de Banco de Dados

2 Posts
1 Usuários
0 Reactions
987 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigos Boa tarde

Tenho a Macro abaixo, porem devido a proteger toda minha planilha não consigo manipular uma tabela dinamica que faz conexão com meu banco de dados MySql.

Alguem poderia me ajudar de forma que ao abrir a planilha ela pudesse conectar o banco e atualizar a tabela e ao mesmo tempo protegesse a planilha?

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim barras
On Error Resume Next
Senha = "123456"
For Each barras In Application.CommandBars
barras.Enabled = False
Next
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
.DisplayOutline = False
.DisplayZeros = False
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
End With
MsgBox " Seja bem vindo(a)"
Application.DisplayFullScreen = True
ActiveSheet.DisplayPageBreaks = False
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayStatusBar = False
Application.DisplayFormulaBar = False
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.MoveAfterReturnDirection = xlDown
Range("c3").Select
ScrollArea = "$A$100:$az$500"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Obrigado por usar, volte sempre"
RpTela
Application.DisplayAlerts = False
Application.Quit
End Sub
Sub RpTela()
Dim barras
On Error Resume Next
For Each barras In Application.CommandBars
barras.Enabled = True
Next
With ActiveWindow
.DisplayHeadings = True
.DisplayOutline = True
.DisplayZeros = True
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
End With
Application.DisplayFullScreen = False
ActiveWindow.DisplayWorkbookTabs = True
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True
Range("c3").Select
End Sub

abraços

 
Postado : 21/07/2011 9:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite Jperez,

Bom pelo que entendi você não consegue atualizar sua tabela vinculada ao BD pq sua planilha está bloqueada. Então seria apenas acrescentar o código que desbloqueia sua planilha para atualizar e depois bloqueia novamente.

Coloque dessa forma...

ActiveWorkbook.Unprotect Password:="senha" '<--- Altere aqui sua senha deixando sua nova senha entra as " "
Sheets("Plan1").Visible = True '<--- Onde esta escrito Plan1 você altera para o nome da sua aba deixando entre as " "
ActiveSheet.Unprotect Password:="senha"

ActiveSheet.PivotTables("Tabela dinâmica1").PivotCache.Refresh ' Nessa linha ele atualiza sua Tabela

' Nessa linha ele bloqueia a Planilha

ActiveWorkbook.Unprotect Password:="senha" '<--- Altere aqui sua senha deixando sua nova senha entra as " "
Sheets("Plan1").Visible = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="senha"

' Na linha a baixo abre a tela de mensagens avisando sobre a atualização. Você pode mudar a frase apenas alterando o que está dentro " "

MsgBox "Tabela atualizada com sucesso!", vbInformation

_________________________________________________

Dessa forma sua tabela dinâmica será atualizada.

Caso tenha dúvida comenta ai...

Abraço! :mrgreen:

 
Postado : 04/08/2011 8:40 pm