Ir ao conteúdo
  • Cadastre-se

MateusAC3

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

posts postados por MateusAC3

  1. Boa noite, muito obrigado a todos pela ajuda, funcionou perfeitamente

     

    7 horas atrás, OreiaG disse:

    a) linha 11 - no seu resultado estão invertidas entre si as posições de ALQ e SPA, conforme os seus critérios na planilha

    Realmente, cometi um erro ali, acho que é bem por isso que essa macro vai ser muito útil, pra evitar esse tipo de erro.

     

     

    7 horas atrás, OreiaG disse:

    b) linha 14 - os conteúdos são iguais, porém as posições dos 4 códigos ALT aparecerão diferentes do seu resultado; se essas posições forem importantes então você precisa fornecer critérios adicionais para o posicionamento de códigos que se repetem

    Não tem problema, a ordem alfabética da penúltima letra só é importante pros códigos do começo da célula.

     

    Obrigado!

    • Curtir 1
  2. Desculpe por não agir de acordo com as regras de etiqueta e do forum, agradeço imensamente pela ajuda que eu recebi e na mensagem anterior não tive intenção nenhuma de reclamar ou criticar, apenas apresentei uma questão da qual eu não havia previsto antes, só que eu não soube repassar da maneira correta, sou péssimo de comunicação e não tenho muita experiência em forum, perdão mesmo, vou tentar não repetir esses erros que eu cometi.

     

    Hoje de tardezinha eu posto a planilha com essa opção representada

     

    Obrigado 

    • Curtir 1
  3. Boa noite, anexei 2 tabelas de exemplo onde eu gostaria de organizar através de macro as "LOCAÇÕES" da coluna "B" seguindo alguns critérios:

     

    *  As iniciais "AL...", "DCA...", "DCS...", "SPA...", "RAC..." e "BPOINT" são prefixos ou palavras que não variam

     

    - Locações repetidas dentro da mesma célula deverão ser unificadas (ou apagada a duplicata)

    - Locações que iniciam com "9" seguido de vários números deverão ser apagadas

    - No final se sobrar "/" deverá ser apagada

    - Caso estejam presentes, as locações que deverão ser movidas para o final da célula serão essas na respectiva ordem: 

    BPOINT (último)

    ALQ... (penúltimo)

    ALT... (antepenúltimo)

    RAC... (pré-antepenúltimo)

    SPA... (antes do pré-antepenúltimo)

     

    - O restante das locações deverá ser movido para o começo da célula, em ordem alfabética de acordo com a penúltima letra

    Ex.:

     

    Desorganizadas:

    BPOINT/ALF01F1/ALH02D1/BPOINT/ALQ12A1/ALH02D1/

    SPA05B/BPOINT/DCA036C1/DCA036A2/DCA036E1/ALQ12E1/ALT27D3

     

    Organizadas:

    ALH02D1/ALF01F1/ALQ12A1/BPOINT

    DCA036A2/DCA036C1/DCA036E1/SPA05B/ALT27D3/ALQ12E1/BPOINT

     

    (Eu pintei as letras apenas pra melhor visualização dos critérios aplicados)

     

    Agradeço muito desde já quem puder me ajudar nesse desafio.

     

     

    Pasta1.xlsx

  4. Private Sub CommandButton1_Click()
    
    Dim Sh As Worksheet
    Dim i As Long
    
    If txtQtd = "" Then
     txtQtd.SetFocus
    Else
     Set Sh = Worksheets("Teste")
     i = 4 
     Qtd = txtQtd
     listTempo.Clear
    
     With Me.listTempo
      Do Until Sh.Cells(i, 4).Value = ""
       If Not Sh.Cells(i, 4).EntireRow.Hidden Then
        .AddItem Sh.Cells(i, 3).Value
        .List(.ListCount - 1, 1) = Sh.Cells(i, 4).Value
        .List(.ListCount - 1, 2) = Sh.Cells(i, 5).Value
        .List(.ListCount - 1, 3) = Sh.Cells(i, 6).Value
        .List(.ListCount - 1, 4) = Sh.Cells(i, 7).Value
        .List(.ListCount - 1, 5) = Qtd
       End If
        i = i + 1
      Loop
     End With
    
    End If
    
    End Sub

    É verdade, compliquei à toa

  5. Private Sub CommandButton1_Click()
    
    Dim Sh As Worksheet
    Dim i As Long
    
    If txtQtd = "" Then
     txtQtd.SetFocus
    Else
     Set Sh = Worksheets("Teste")
     i = 4 
     Qtd = txtQtd
     listTempo.Clear
    
     With Me.listTempo
      Do Until Sh.Cells(i, 4).Value = ""
       If Sh.Cells(i, 4).EntireRow.Hidden Then
        i = i + 1
       Else
        .AddItem Sh.Cells(i, 3).Value
        .List(.ListCount - 1, 1) = Sh.Cells(i, 4).Value
        .List(.ListCount - 1, 2) = Sh.Cells(i, 5).Value
        .List(.ListCount - 1, 3) = Sh.Cells(i, 6).Value
        .List(.ListCount - 1, 4) = Sh.Cells(i, 7).Value
        .List(.ListCount - 1, 5) = Qtd
        i = i + 1
       End If
      Loop
     End With
    
    End If
    
    End Sub

     

    Deu certo, só tive q fazer uma adaptação, obrigado!

  6. Boa noite, quero listar os dados de uma tabela em uma ListBox, mas quando eu filtro a tabela ele continua mostrando tudo, mesmo os dados filtrados, como eu posso resolver isso?

     

    Private Sub CommandButton1_Click()
    
    Dim Sh As Worksheet
    Dim i As Long
    
    If txtQtd = "" Then
     txtQtd.SetFocus
    Else
    
    Set Sh = Worksheets("Teste")
    
    'Primeira linha com valores (sem filtro na tabela)
    i = 4 
    
    Qtd = txtQtd
    listTempo.Clear
    
     With Me.listTempo
      Do Until Sh.Cells(i, 4).Value = ""
       .AddItem Sh.Cells(i, 3).Value
       .List(.ListCount - 1, 1) = Sh.Cells(i, 4).Value
       .List(.ListCount - 1, 2) = Sh.Cells(i, 5).Value
       .List(.ListCount - 1, 3) = Sh.Cells(i, 6).Value
       .List(.ListCount - 1, 4) = Sh.Cells(i, 7).Value
       .List(.ListCount - 1, 5) = Qtd
       i = i + 1
      Loop
     End With
    
    End If
    
    End Sub

     

  7. Olá, pode parecer uma coisa simples, mas gostaria de saber como formatar em VBA uma planilha quando os valores nela forem diferentes, vou mostrar um exemplo prático:

     

    image.png.1f597aaa38b2ab36802e4e68881e6fdc.png

     

    Eu gostaria q nessa tabela alterasse por exemplo a borda inferior da linha em que o nome muda, desse jeito:

     

    image.png.99063a41a046d08641e8fe37253c42f7.png

     

    Sei que no Excel bastaria eu colocar =D2=D3 pra chegar em FALSO ou VERDADEIRO e assim filtrar e formatar como eu quisesse, mas em VBA não estou sabendo como fazer

    Obs.: seria uma tabela com quantidade indefinida de linhas.

    Se puderem me ajudar agradeço.

  8. Tenho um form com uma TextBox, um botão "incluir" e uma ListBox.

    Quando clico no botão ele inclui o número da TextBox no ListBox.

    Eu gostaria que quando eu clicasse no botão ele também verificasse se o número digitado na TextBox já está incluído na ListBox, se estiver ele mostraria MsgBox de erro, senão estiver ele inclui.

    Deve ser simples pesquisar o valor da TextBox na ListBox, mas não sei como fazer.

    Alguém pode me ajudar?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!