Ir ao conteúdo
  • Cadastre-se
Neri Schuck

Excel Problemas DLL Pesquisar Excel

Recommended Posts

Eu desenvolvi um programa em Vba na minha máquina e passei para o cliente e funcionou normalmente.

 

Agora para atualizar, peguei o arquivo da máquina do cliente e coloquei na minha. Alterei e passei novamente para a máquina do cliente. Mas dá erro na DLL. Acusa o erro no inicio do code abaixo. Alguém já teve este problema?

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)

 On Error Resume Next
       
    ' Começa ordenar o listview pela coluna clicada
    
    With ListView1
    
        ' Mostrar o cursor ampulheta enquanto faz o filtro
        
        Dim lngCursor As Long
        lngCursor = .MousePointer
        .MousePointer = vbHourglass
        
        'A rotina impede que o controle ListView faça atualização na tela
        'Isto é para esconder as mudanças que estão sendo feitas aos listitems
        'E também para acelerar o código
        
        'Verifique o tipo de dados da coluna de ser classificada,
        'para nomeá-la em conformidade
        
        Dim l As Long
        Dim strFormat As String
        Dim strData() As String
        
        Dim lngIndex As Long
        lngIndex = ColumnHeader.Index - 1
    
        '***************************************************************************
        ' Ordenar por data.
        
        Select Case UCase$(ColumnHeader.Tag)
        Case "DATE"
        
            
            
            strFormat = "YYYYMMDDHhNnSs"
        
            'O Loop através dos valores desta coluna organizam
            'As datas de modo que eles possam ser classificados em ordem alfabética,
        
            With .ListItems
                If (lngIndex > 0) Then
                    For l = 1 To .Count
                        With .Item(l).ListSubItems(lngIndex)
                            .Tag = .Text & Chr$(0) & .Tag
                            If IsDate(.Text) Then
                                .Text = Format(CDate(.Text), _
                                                    strFormat)
                            Else
                                .Text = ""
                            End If
                        End With
                    Next l
                Else
                    For l = 1 To .Count
                        With .Item(l)
                            .Tag = .Text & Chr$(0) & .Tag
                            If IsDate(.Text) Then
                                .Text = Format(CDate(.Text), _
                                                    strFormat)
                            Else
                                .Text = ""
                            End If
                        End With
                    Next l
                End If
            End With
            
            ' Ordenar a lista em ordem alfabética por esta coluna
            
            .SortOrder = (.SortOrder + 1) Mod 2
            .SortKey = ColumnHeader.Index - 1
            .Sorted = True
            
            ' Restaura os valores anteriores das "células" nesta
            ' Coluna da lista das tags, e também restaura
            ' as tags para os valores originais
            
            With .ListItems
                If (lngIndex > 0) Then
                    For l = 1 To .Count
                        With .Item(l).ListSubItems(lngIndex)
                            strData = Split(.Tag, Chr$(0))
                            .Text = strData(0)
                            .Tag = strData(1)
                        End With
                    Next l
                Else
                    For l = 1 To .Count
                        With .Item(l)
                            strData = Split(.Tag, Chr$(0))
                            .Text = strData(0)
                            .Tag = strData(1)
                        End With
                    Next l
                End If
            End With
            
        '***************************************************************************
        'Ordenar Numericamente
        
        Case "NUMBER"
        
       
            strFormat = String(30, "0") & "." & String(30, "0")
        
            ' Loop através dos valores desta coluna. Ordena os valores de modo que eles
            ' Podem ser classificados em ordem
        
            With .ListItems
                If (lngIndex > 0) Then
                    For l = 1 To .Count
                        With .Item(l).ListSubItems(lngIndex)
                            .Tag = .Text & Chr$(0) & .Tag
                            If IsNumeric(.Text) Then
                                If CDbl(.Text) >= 0 Then
                                    .Text = Format(CDbl(.Text), _
                                        strFormat)
                                Else
                                    .Text = "&" & InvNumber( _
                                        Format(0 - CDbl(.Text), _
                                        strFormat))
                                End If
                            Else
                                .Text = ""
                            End If
                        End With
                    Next l
                Else
                    For l = 1 To .Count
                        With .Item(l)
                            .Tag = .Text & Chr$(0) & .Tag
                            If IsNumeric(.Text) Then
                                If CDbl(.Text) >= 0 Then
                                    .Text = Format(CDbl(.Text), _
                                        strFormat)
                                Else
                                    .Text = "&" & InvNumber( _
                                        Format(0 - CDbl(.Text), _
                                        strFormat))
                                End If
                            Else
                                .Text = ""
                            End If
                        End With
                    Next l
                End If
            End With
            
            ' Ordenar a lista em ordem alfabética por esta coluna
            
            .SortOrder = (.SortOrder + 1) Mod 2
            .SortKey = ColumnHeader.Index - 1
            .Sorted = True
            
                      
            With .ListItems
                If (lngIndex > 0) Then
                    For l = 1 To .Count
                        With .Item(l).ListSubItems(lngIndex)
                            strData = Split(.Tag, Chr$(0))
                            .Text = strData(0)
                            .Tag = strData(1)
                        End With
                    Next l
                Else
                    For l = 1 To .Count
                        With .Item(l)
                            strData = Split(.Tag, Chr$(0))
                            .Text = strData(0)
                            .Tag = strData(1)
                        End With
                    Next l
                End If
            End With
        
        Case Else   ' Assume ordenação como string
            
            
        
            .SortOrder = (.SortOrder + 1) Mod 2
            .SortKey = ColumnHeader.Index - 1
            .Sorted = True
            
        End Select
   
        .MousePointer = lngCursor
    
    End With
    



End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo Edson, que bom que você está aí para ajudar os outros. 

Na máquina deles e na minha é Excel 32 Bits.

Estava pensando o que poderia ser, pois sempre funcionava. Acontece que na minha máquina passei de Excel 2010 para 2016. Tem grandes chances de ser isto. Abraço amigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×