Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#47804
Boa tarde

No seguimento de um post anterior, venho pedir ajuda para um problema que não estou a conseguir resolver.

Assim anexo um exemplo onde explico o que o exemplo já faz e o que está a faltar.

No código a parte de desseleccionar, o que não sei fazer, está em " Case False ' Desslecionei - ONDE TENHO DUVIDAS"

Obrigado desde já pela ajuda

Jorge Cabral
Você não está autorizado a ver ou baixar esse anexo.
#47862
Olá, veja se resolve... Aqui parece ter funcionado... Jogue o código no "Case False"
Ficou meio longo mas funciona
Código: Selecionar todos
'Procurar o registro nos Labels
            For k = 1 To 4
                
                If RECURSOS.lstbFO.List(RECURSOS.lstbFO.ListIndex) = Me.Controls("lblRec" & k + 1).Caption Then
                    RecData(k + 1, 0) = Empty
                    RecData(k + 1, 1) = Empty
                    Me.Controls("lblRec" & k + 1).Caption = Empty
                    Me.Controls("ComboBox" & k + 1).Value = Empty
                    GoTo Proximo
                End If
                
            Next
Proximo:
            'Reordenar matriz e labels
                'Arrumar matriz
                If RecData(2, 0) = Empty Then
                    For k = 2 To 4
                        RecData(k, 0) = RecData(k + 1, 0)
                        Me.Controls("lblRec" & k).Caption = Me.Controls("lblRec" & k + 1).Caption
                    Next
                    RecData(5, 0) = Empty
                    Me.Controls("lblRec5").Caption = Empty
                    
                    For k = 2 To 4
                        RecData(k, 1) = RecData(k + 1, 1)
                        Me.Controls("ComboBox" & k).Value = Me.Controls("ComboBox" & k + 1).Value
                    Next
                    RecData(5, 1) = Empty
                    Me.Controls("ComboBox5").Value = Empty
                    
                ElseIf RecData(3, 0) = Empty Then
                    For k = 3 To 4
                        RecData(k, 0) = RecData(k + 1, 0)
                        Me.Controls("lblRec" & k).Caption = Me.Controls("lblRec" & k + 1).Caption
                    Next
                    RecData(5, 0) = Empty
                    Me.Controls("lblRec5").Caption = Empty
                    
                    For k = 3 To 4
                        RecData(k, 1) = RecData(k + 1, 1)
                        Me.Controls("ComboBox" & k).Value = Me.Controls("ComboBox" & k + 1).Value
                    Next
                    RecData(5, 1) = Empty
                    Me.Controls("ComboBox5").Value = Empty
                
                ElseIf RecData(4, 0) = Empty Then
                    
                    RecData(4, 0) = RecData(5, 0)
                    RecData(5, 0) = Empty
                    Me.Controls("lblRec4").Caption = Me.Controls("lblRec5").Caption
                    Me.Controls("lblRec5").Caption = Empty
                    RecData(4, 1) = RecData(5, 1)
                    RecData(5, 1) = Empty
                    Me.Controls("ComboBox4").Value = Me.Controls("ComboBox5").Value
                    Me.Controls("ComboBox5").Value = Empty
                
                ElseIf RecData(5, 0) = Empty Then
                    RecData(5, 0) = Empty
                    Me.Controls("lblRec5").Caption = Empty
                    RecData(5, 1) = Empty
                    Me.Controls("ComboBox5").Value = Empty
                End If
#47884
Obrigado eduardogrigull,

A partir do seu código, que foi muito inspirador já que não estava a conseguir sair deste problema, fiz algumas simplificações que parecem estar a funcionar.
Não sei se será possível simplificar mais ainda, deixo isso para os outros Gurus daqui do forum :D .
Muito obrigado.
Código: Selecionar todos
'Procurar o registro nos Labels
            For k = 2 To 5
               
                If RECURSOS.lstbFO.List(RECURSOS.lstbFO.ListIndex) = Me.Controls("lblRec" & k).Caption Then
                    RecData(k, 0) = Empty
                    RecData(k, 1) = Empty
                    Me.Controls("lblRec" & k).Caption = Empty
                    Me.Controls("ComboBox" & k).Value = Empty
 
'Reordenar matriz e labels
 
                    If k < 5 Then
                        For ik = k To 4
                            RecData(ik, 0) = RecData(ik + 1, 0)
                            Me.Controls("lblRec" & ik).Caption = Me.Controls("lblRec" & ik + 1).Caption
                            RecData(ik, 1) = RecData(ik + 1, 1)
                            Me.Controls("ComboBox" & ik).Value = Me.Controls("ComboBox" & ik + 1).Value
                        Next ik
                    End If
                    
                    RecData(5, 0) = Empty
                    Me.Controls("lblRec5").Caption = Empty
                    RecData(5, 1) = Empty
                    Me.Controls("ComboBox5").Value = Empty
                    Exit Sub
                    
                End If
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord