Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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

Bom dia, @Neri Schuck

 

O cliente (ou você) não passaram a usar a versão 64 bits do Excel? Ele não dispõe do controle ListView (nem de muitos outros tb.).

Editado por Edson Luiz Branco

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

Obrigado Edson... Vou fazer os testes, depois disto irei postar o resultado. Abraço

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






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

×