Pessoal,
Antes de tudo: Meu conhecimento em VBA é BASICO
Algumas pessoas da minha empresa que utilizam a planilha que eu desenvolvi esta com um erro, mas não são todos, são só alguns! E esses alguns usam SO x64.
Erro de compilação em módulo oculto: PESQUISAR_BASE
Pesquisei aqui no fórum sobre esse erro e não tem muita coisa, e no google vi coisas sobre APIs e incompatibilidades, vi que isso pode ser um problema relacionado ao Sistema Operacional x64.
Mas meu script é tão simples! Não faço referencia a nenhuma biblioteca, nenhuma variável incomum, e esse modulo em questão possui um script amador muito básico:
Option Explicit
Private valor_pesquisado As String
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Application.ScreenUpdating = False
On Error GoTo Errhandler
Dim ID As String
Dim Selecao As Integer
Dim PL As Long 'Primeira Linha
Dim UL As Long 'Última Linha
Dim linha As Long
Dim LinhaInicialDosProdutos As Long 'Linha onde começa os codigos de produtos no formulario
Selecao = ListBox1.ListIndex
ID = ListBox1.List(Selecao, 0)
PL = 2
UL = Sheets("BASE").Cells(Rows.Count, "B").End(xlUp).Row
LinhaInicialDosProdutos = 13
Call Liberar_Formulario
ActiveSheet.Cmd_EXCLUIR.Enabled = True
For linha = PL To UL
If Sheets("BASE").Cells(linha, "N").Value = ID Then
'FILIAL
Sheets("FORMULÁRIO").Range("B6").Value = Sheets("BASE").Cells(linha, "A").Value
'COD. CLIENTE
Sheets("FORMULÁRIO").Range("H6").Value = Sheets("BASE").Cells(linha, "B").Value
'ONDE?
If Sheets("BASE").Cells(linha, "D").Value = "AREA ATUAÇÃO" Then
Sheets("FORMULÁRIO").CheckBox1.Enabled = False
Sheets("FORMULÁRIO").CheckBox1.Value = False
Sheets("FORMULÁRIO").CheckBox2.Enabled = True
Sheets("FORMULÁRIO").CheckBox2.Value = True
Else
Sheets("FORMULÁRIO").CheckBox1.Enabled = True
Sheets("FORMULÁRIO").CheckBox1.Value = True
Sheets("FORMULÁRIO").CheckBox2.Enabled = False
Sheets("FORMULÁRIO").CheckBox2.Value = False
End If
'ENTREGA INICIO
Sheets("FORMULÁRIO").Range("AS6").Value = Sheets("BASE").Cells(linha, "F").Value
'ENTREGA FIM
Sheets("FORMULÁRIO").Range("BA6").Value = Sheets("BASE").Cells(linha, "G").Value
'OPERAÇÃO INICIO
Sheets("FORMULÁRIO").Range("BI6").Value = Sheets("BASE").Cells(linha, "H").Value
'OPERAÇÃO FIM
Sheets("FORMULÁRIO").Range("BQ6").Value = Sheets("BASE").Cells(linha, "I").Value
'ENTREGA 1º PEDIDO
Sheets("FORMULÁRIO").Range("B9").Value = Sheets("BASE").Cells(linha, "J").Value
'NOME DA CAMPANHA
Sheets("FORMULÁRIO").Range("J9").Value = Sheets("BASE").Cells(linha, "K").Value
'TIPO AÇÃO
Sheets("FORMULÁRIO").Range("AT9").Value = Sheets("BASE").Cells(linha, "L").Value
'STATUS DA PROPOSTA
Sheets("FORMULÁRIO").Range("BA9").Value = Sheets("BASE").Cells(linha, "M").Value
'# ID
ActiveSheet.Unprotect "admcorporativo"
Sheets("FORMULÁRIO").Range("BR9").Value = ID
'COD PRODUTOS
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "B").Value = Sheets("BASE").Cells(linha, "O").Value
'VALOR INVESTIMENTO
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "AG").Value = Sheets("BASE").Cells(linha, "R").Value
'% DESCONTO NORMAL
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "AP").Value = Sheets("BASE").Cells(linha, "S").Value
'% DESCONTO ADICIONAL
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "AX").Value = Sheets("BASE").Cells(linha, "T").Value
'PREVISÃO VOLUME
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "BM").Value = Sheets("BASE").Cells(linha, "V").Value
'PREÇO CONSUMIDOR
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "CH").Value = Sheets("BASE").Cells(linha, "Y").Value
'REALIZADO VOL
Sheets("FORMULÁRIO").Cells(LinhaInicialDosProdutos, "CN").Value = Sheets("BASE").Cells(linha, "Z").Value
'PROXIMA LINHA DE PRODUTO
LinhaInicialDosProdutos = LinhaInicialDosProdutos + 1
End If
Next linha
Range("B6:N6,AA6:AL6,AS6:BX6,B9:I9,AT9:AZ9").Select
Selection.Locked = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 13434879
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("B2:BX2").Select
'INFORMA QUE O REGISTRO FOI CARREGADO PELO BOTÃO 'PESQUISAR'
Sheets("Parametros").Range("E26").Value = "SIM"
Errhandler:
Unload Me
End Sub
Private Sub ComboBox1_Change()
Call buscar_valores
Me.TextBox1.Value = ""
Me.TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
valor_pesquisado = TextBox1.Text
Call buscar_valores
End Sub
Private Sub UserForm_Initialize()
Call buscar_valores
Call PreencheCampos
End Sub
Private Sub buscar_valores()
Application.ScreenUpdating = False
Dim guia As Worksheet
Dim linha As Integer
Dim coluna As Integer
Dim linhalistbox As Integer
Dim valor_celula As String
Dim conta_registros As Integer
Set guia = ThisWorkbook.Worksheets("Temp")
linha = 4
coluna = 33
linhalistbox = 0
conta_registros = 0
If Me.ComboBox1.Value = "A. ATUAÇÃO" Then
coluna = 33
End If
If Me.ComboBox1.Value = "AÇÃO" Then
coluna = 34
End If
If Me.ComboBox1.Value = "INICIO OP." Then
coluna = 35
End If
If Me.ComboBox1.Value = "FIM OP." Then
coluna = 36
End If
If Me.ComboBox1.Value = "TEMA DA CAMPANHA" Then
coluna = 37
End If
If Me.ComboBox1.Value = "STATUS" Then
coluna = 38
End If
ListBox1.Clear
Application.ScreenUpdating = False
With guia
While .Cells(linha, coluna).Value <> Empty
valor_celula = .Cells(linha, coluna).Value
If UCase(Left(valor_celula, Len(valor_pesquisado))) = UCase(valor_pesquisado) Then
With PESQUISAR_BASE.ListBox1
.ColumnCount = 7
.ColumnWidths = "170;90;30;55;55;178;25"
.AddItem
.List(linhalistbox, 0) = guia.Cells(linha, 32)
.List(linhalistbox, 1) = guia.Cells(linha, 33)
.List(linhalistbox, 2) = guia.Cells(linha, 34)
.List(linhalistbox, 3) = guia.Cells(linha, 35)
.List(linhalistbox, 4) = guia.Cells(linha, 36)
.List(linhalistbox, 5) = guia.Cells(linha, 37)
.List(linhalistbox, 6) = guia.Cells(linha, 38)
linhalistbox = linhalistbox + 1
conta_registros = conta_registros + 1
End With
End If
linha = linha + 1
Wend
End With
lbl_registros = conta_registros
End Sub
Private Sub PreencheCampos()
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim coluna As Integer
Dim linha As Integer
Set ws = ThisWorkbook.Worksheets("Temp")
coluna = 33
linha = 3
With ws
While .Cells(linha, coluna).Value <> Empty
Me.ComboBox1.AddItem .Cells(linha, coluna)
coluna = coluna + 1
Wend
End With
End Sub
O codigo em questão abre a seguinte Form:
Se alguem puder dar uma luz?
Abçs
Fui Util? Click na "Mãozinha" ali do lado >>>> e agradeça.
Postado : 26/11/2014 10:16 am