Ir para conteúdo
Fórum Script Brasil

Strogonoff

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por Strogonoff

  1. Em 02/09/2020 em 04:00, PaiDeLaura disse:

    Bom dia,

    Tenho um pequeno sistema de registro de denúncias. O cadastro funciona, de boa, mas a pesquisa quando vou escolher as datas, aparece esse erro aqui:

    Erro em tempo de execução '-2147467259(80004005)': Erro não especificado

    Eis o código:

    Private Sub btnPesquisar_Click()

    Dim linhaFinal, linha, x As Integer

    ListBox1.Clear    // o erro para aqui e não depura mais

    linhaFinal = Planilha1.Cells(Rows.Count, 1).End(xlUp).Row

    x = 0

    For linha = 2 To linhaFinal


    If Planilha1.Cells(linha, 1).Value >= MonthView1 And Planilha1.Cells(linha, 1).Value <= MonthView2 Then

    ListBox1.AddItem Planilha1.Cells(linha, 1).Value

    ListBox1.List(x, 1) = Planilha1.Cells(linha, 2).Value
    ListBox1.List(x, 2) = Planilha1.Cells(linha, 3).Value
    ListBox1.List(x, 3) = Planilha1.Cells(linha, 4).Value
    ListBox1.List(x, 4) = Planilha1.Cells(linha, 5).Value

    x = x + 1
    End If

    Next

    End Sub

    Porque isso acontece e o que pode ser feito?
    Preciso da ajuda dos colegas!
    Forte abraço!
     Resposta Rápida

    Coloque o "Me. " antes do listbox 1 e cuidado...

    as variaveis linhafinal e linha estão declaradas como variant e não como integer

    você precisa declarar cada uma sem virgula

    dim linhafinal as integer

    dim x as integer

  2. Em 16/10/2020 em 14:30, Bruno_2020 disse:

    Olá a todos ! Gostaria de uma imensa ajuda!
    Eu recebo um arquivo no qual ele não organiza os tipos de Pausa dos vendedores numa mesma coluna (e sim e várias colunas chamadas "Pausa"), além de também não organizar a "Quantidade" e "Tempo" dessa pausa numa coluna só. As informações são inseridas ao longo de uma linha e eu gostaria que eles fossem organizados por colunas. 

    Vou colocar aqui  como é e como eu gostaria que fosse:

     

    OPERADOR PAUSA QTD TEMPO PAUSA QTD TEMPO PAUSA QTD TEMPO PAUSA QTD TEMPO
    Nome 1 BANHEIRO 0  00:00:00 ALMOÇO 0  00:00:00 LANCHE 0  00:00:00 AMBULATÓRIO 0  00:00:00
    Nome 2 BANHEIRO 0  00:00:00 ALMOÇO 0  00:00:00 LANCHE 0  00:00:00 AMBULATÓRIO 0  00:00:00
    Nome 3 BANHEIRO 0  00:00:00 ALMOÇO 0  00:00:00 LANCHE 0  00:00:00 AMBULATÓRIO 0  00:00:00
                             
                             

    Gostaria que a informação viesse por colunas: "OPERADOR", "PAUSA", "QUANTIDADE" E "TEMPO", repetindo o nome do vendedor várias vezes na Coluna A, pra que as informações dele venham nas colunas seguintes, e não inseridas em linhas:

    OPERADOR     PAUSA   QUANTIDADE TEMPO
    Nome 1           BANHEIRO      0              00:00:00
    Nome 1           ALMOÇO        0                00:00:00
    Nome 1          LANCHE           0               00:00:00
    Nome 1          AMBULATÓRIO  0              00:00:00
    Nome 2         BANHEIRO        0                00:00:00
    Nome 2         ALMOÇO          0                 00:00:00 ...

    E assim por diante. 

    O meu problema é que eu até consigo fazer a Coluna A me dar os vendedores ao transpor, mas quando faço isso na coluna B me vem tanto linhas de pausa, quanto quantidade e banheiro 😞

    E como essa base sempre vem muitos vendedores e de forma variável, não sei como resolver isso ._.

    Agradeço desde já aos que puderem me dar um help !

                           

    boa noite !!!

    Você precisará dessa macro que resolverá seus problemas

    para que ela funcione, a celula A1 terá que estar a palavra operador, caso contrário, é so ajutar o range

    segue a macro :

     

    Sub SeparaPausa()
    Dim W1              As Worksheet 'Declarando variável da primeira matriz
    Dim W2              As Worksheet 'Declarando variável da segunda matriz
    Dim iLinhaVendedor  As Integer   ' Variável que percorrerá as linhas dos vendedores
    Dim iUltimaLinha    As Integer   ' Ultima linha da planilha destino
    Dim bColunaMatriz   As Byte      ' varável que percorrerá as coluna da planilha destino
    Dim bColunaCopia    As Byte      ' varável que percorrerá as colunas da cópia
    'declarando as matrizes
        Set W1 = Planilha1  ' matriz de origem dos dados
        Set W2 = Planilha2  ' onde colocaremos os dados
        
    ' declarando variaveis
        iLinhaVendedor = 2  ' a varredura começara na linha 2 da planilha1( a linha 1 é o cabeçalho)
        iUltimaLinha = 2    ' a varredura começara na linha 2 da planilha2( a linha 1 é o cabeçalho)
    ' considerando que a planilha não seja zerada vamos localizar a última linha
        While W2.Cells(iUltimaLinha, "A") <> ""   'loop para a ultima linha da planilha2
            iUltimaLinha = iUltimaLinha + 1        'evitando loop eterno
        Wend
        
    ' a cada 4 colunas vamos incrementar 1 linha
        While W1.Cells(iLinhaVendedor, "A").Value <> "" ' loop para percorrer cada linha dos vendedores
            W2.Cells(iUltimaLinha, "A").Value = W1.Cells(iLinhaVendedor, "A").Value ' grava o nome do vendedor
            bColunaCopia = 2    'a copia começa na coluna B, na coluna A é o nome
            bColunaMatriz = 2   ' idem, a coluna A é o nome
            While W1.Cells(iLinhaVendedor, bColunaMatriz).Value <> ""  ' loop para percorrer a coluna dos vendores e achar a palavra pausa do cabeçalho)
                W2.Cells(iUltimaLinha, bColunaCopia).Value = W1.Cells(iLinhaVendedor, bColunaMatriz).Value 'copiando valor da planilha 1 para a planilha 3
                If bColunaCopia = 4 Then 'aqui está a questão a cada 4 colunas precisamos mudar de linha,
                    bColunaCopia = 2 ' precisamos passar a coluna para B
                    W2.Cells(iUltimaLinha, "A").Value = W1.Cells(iLinhaVendedor, "A").Value ' copiar o nome do vendedor na col A
                    If bColunaMatriz < 13 Then ' precisamos verificar se está na ultima coluna da planilha1 para não gerar coluna em branco
                        iUltimaLinha = iUltimaLinha + 1 'incremento de linha
                    End If
                Else
                    bColunaCopia = bColunaCopia + 1 ' incremento de coluna da panilha 3
                End If
                bColunaMatriz = bColunaMatriz + 1 ' íncrementa a coluna da planilha1
            Wend
        iUltimaLinha = iUltimaLinha + 1     ' incrementa a linha de destino
        iLinhaVendedor = iLinhaVendedor + 1 ' incrementa a linha de vendedores (evita loop eterno)
        Wend


    End Sub
     

     

    Espero que ajude

    qualquer dúvida estou a disposição

     

     

  3. 19 horas atrás, silva_gs disse:

    Olá a todos,

    Primeiramente peço desculpas pela linguagem que vou utilizar neste post. Sou biomédico então tenho pouco domínio sobre a linguagem de programação. Estou com um problema no script de programação do meu arquivo VBA. Estou querendo gerar um código de identificação para as análises dos meus clientes e minha ideia é a seguinte:

    Fazemos dois tipos de análises no laboratório, fisico-química e microbiológica. Para atender esta demanda, gerei dois CheckBox um com cada nome: Análises fisico-químicas; Análises microbiológicas; Em seguida, acrescentei dois TextBox na frente de casa CheckBox, para colocar o ID de cada análise de forma independente.

    Estou conseguindo gerar o código, eu seleciono o CheckBox e o código é gerado porém, quando eu deseleciono o CheckBox, o código continua e não desaparece.

    Estou precisando fazer com que ele suma, caso eu deselecione o CheckBox.

     

    O script que estou usando para geração de código é:

    Dim Y As Integer
    Planilha2.Select
    Planilha2.Range("A2").Select
    Planilha2.Range("A2") = "0"
    Range("A100000").End(xlUp).Offset(1, 0).Select
    Y = Range("A100000").End(xlUp).Offset(0, 0).Value
    Me.TextBox25 = Y + 1

     

    Como faço para desaparecer o código caso eu deselecione o CheckBox?

     

    Obrigado pela atenção,

    Gabriel

    Gabriel, boa tarde!!!

    a rotina que você postou é para a ultimha linha da planilha 2 da coluna A.

    Eu costumo usar essa rotina 

    Private Sub CheckBox1_Click()
    CheckBox1.Value = False

    seu código aqui....
    End Sub

    ou..

    Private Sub CheckBox1_Click()
    call rotina()
    End Sub

     

    sub rotina()

     

    UserForm1.CheckBox1.Value = False (ou o nome do formulário)

    end sub

    outra dica:

    declare 

    Dim Ws as Worksheet

    set Ws = Planilha2..

    fica mais fácil para trabalhar para não ter que toda hora escrever planilha2..

    espero ter ajudado..

    caso ficou alguma dúvida, sugiro anexar uma planilha com o que precisa para devolvermos ela resolvida( crie uma pasta somente com a rotina que precisa...

    abraço
     

  4. Em 23/10/2020 em 16:25, Ronil disse:

    Boa tarde pessoal! Sou pouco experiente em programar, derepente podem me dar um help, estou com dificuldade para encontrar um codigo vba, que eu consiga estando conectado em uma rede compartilhada, listar todas os arquivos e subpastas da pasta que esta compartilhada neste PC. 

    Alguém pode ajudar ?

    Ronil 

    Boa tarde!

    Não entendi sua pergunta, você tem arquivos do Excel compartilhado ou arquivos diversos, se entendi ao certo, você precisa habilitar uma pasta no seu Pc para compartilhamento e bloquear o restante ( o que o Napster ou Soulseek fazia), acredito que ficará mais simples para você se estivermos falando de compartilhamento de pasta.

    se estivermos falando somente no excel, uma rotina simples para verificar o nome das  planilhas dentro de uma pasta, ai você consegue ter um star para a rotina que você precisa.

    Sub VerificaPlanilhas()
    For Each Sheet In ActiveWorkbook.Sheets
    MsgBox Sheet.Name
    Next Sheet
    End Sub

    Seria isso?? Se não, peço para descrever um pouco melhor o que precisa para tentar ajudar.

    Abraço

×
×
  • Criar Novo...