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
  • Avatar do usuário
#8127
Fala Galera.

Preciso fazer uma aplicação em VBA Ferrado.

Tenho um form onde será informado a quantidade de módulos e a quantidade de switchs, para cada switch eu posso ter 4 opções que comecem com 0 e 4 opções que comecem com1 por exemplo.

24portas 32 portas 40 portas e 48 portas (Começam com 0)

24portas 32 portas 40 portas e 48 portas (Começam com 1)

e será atribuido para cada switch 1 id especifico no seu textbox.

Ai sim conforme for coletado os dados irei criar uma aba chamada Plano de Face, onde irei copiar a estrutura dos switchs da aba Base e cola na plano de face, conforme os dados informados pelo usuário.

Lembrando que poderei ter até 15 switchs.

Valeuuu
Você não está autorizado a ver ou baixar esse anexo.
#8134
Boa tarde!!

Onde afinal está sua dúvida, oque e qual parte precisa de ajuda? :?:


Att
#8147
Bom dia!!

Nestes casos uma boa pratica seria dividir os procedimentos em partes.
Código: Selecionar todos
Sub CodigoPrincial()

      Call SubA
      Call SubB
      Call SubC

End Sub
Código: Selecionar todos
Sub SubA()
    MsgBox "Eu faço a parte A"
End Sub
Código: Selecionar todos
Sub SubB()
    MsgBox "Eu faço a parte B"
End Sub
Código: Selecionar todos
Sub SubC()
    MsgBox "Eu faço a parte C"
End Sub
Att
#8165
Em alguns sites e dado como limite de caractere por modulo, algo em torno de 64000 caracteres, aproximadamente 1200 linhas (não sei se os comentários e linhas em Branco estão incluídos, creio que não) de código.
Assim se sua rotina for extrapolar essa limitação, a solução mais obvia e dividi-la em vários módulos.
Não há uma receita previa para essa atividade, tudo depende das funcionalidades/necessidades.
Outra possibilidade é rever suas rotinas e "enxuga-las".
Sem uma analise mais profunda segue algums exemplos:
A rotina "Initialize" do formulario: FormGerarSwitchs, pode ser +/- assim:
Código: Selecionar todos
Private Sub UserForm_Initialize()
Dim x as integer
contagem2 = 0
contagem3 = 0
For x = 1 To 15
    If x <= QtdeSwitchs Then
        Controls("frmSwitch" & x).Visible = True
        Controls("cbocomecado" & x).AddItem " 0 "
        Controls("cbocomecado" & x).AddItem " 1 "
    Else
        Controls("frmSwitch" & x).Visible = False
End If
Next
End Sub
O trecho do DADOS DO SWITCHCORE na rotina: btnGerarPlanoDeFace_Click
Código: Selecionar todos
'---------DADOS DO SWITCHCORE ----------------------------------------------------------------------------
If SwitchCoreSim = 1 Then
   For i = 1 To FormGerarPlanoDeFace!txtQtdeModulos.Text * 1
        Sheets("BASE").Range("B4:Z7").Copy Sheets("Plano de Face").Range("B1048576").End(xlUp).Offset(2, 0)
        Sheets("Plano de Face").Range("A1048576").End(xlUp).Offset(4, 0).Value = "MOD " & i
   Next
End If
Nessa mesma rotina, em DADOS DO SWITCH 1
Código: Selecionar todos
If frmSwitch1.Visible = True And frmSwitch2.Visible = False Then
    If opbp24switch1.Value = True Then
        If cboComecaDo1.Text = 0 Then
            Sheets("BASE").Range("B11:N14").Copy Sheets("Plano de Face").Range("B1048576").End(xlUp).Offset(2, 0)
            Sheets("Plano de Face").Range("A1048576").End(xlUp).Offset(5, 0).Value = txtIdSwitch1.Text
        Else
            Sheets("BASE").Range("B39:N42").Copy Sheets("Plano de Face").Range("B1048576").End(xlUp).Offset(1, 0)
            Sheets("Plano de Face").Range("A1048576").End(xlUp).Offset(1, 0).Value = txtIdSwitch1.Text
        End If
    Else.....
#17926
Boa tarde amigos

Eu estou trabalhando em uma planilha no Excel com esse código:

Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("E2").Address Then
Sheets("Estoque").Cells(2, "D") = Sheets("Estoque").Cells(2, "E") + Sheets("Estoque").Cells(2, "D")
Sheets("Estoque").Cells(2, 5).ClearContents
Sheets("Estoque").Cells(2, 5).Select
End If
End Sub

Só que eu preciso usar esse código para 300 linhas no Excel e está relatando "procedimento muito grande"

alguém por acaso sabe de uma solução para esse caso?

att.
Lopes
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