Ir ao conteúdo
  • Cadastre-se

Vba declaração de array matricial do tipo as control, com seus respectivos set


Visitante
Ir à solução Resolvido por Visitante,

Posts recomendados

Boa tarde prezados!

Estou aprendendo VBA, treino bastante no Excel! Mas não tenho muita experiência ainda!

Estou com um problema que talvez seja simples, mas ainda não para mim!

 

Vou procurar ser o mais específico possível!

Tenho um formulário com diversas subs.

Essas subs estão trabalhando com diversas TextBox (Cerca de 40 mais ou menos)

No intuito de não ter que fazer carga de dados das N textBox  poluindo e crescendo o programa como por exemplo:

TextBox1.Text=Planilha7.cells(i,j) : i=i+1
TextBox3.Text=Planilha7.cells(i,j) : i=i+1
TextBox3.Text=Planilha7.cells(i,j) : i=i+1
.
.
.
.
TextBoxKaésima.Text=Planilha7.cells(i,j) : i=i+1

Uso por exemplo:

Sub carga()
Public Arraycoll(1 To 21, 1 To 2) As Control
Set Arraycoll(1, 1) = TextBox1: Set Arraycoll(1, 2) = ComboBox1
Set Arraycoll(2, 1) = TextBox2: Set Arraycoll(2, 2) = ComboBox2
.
.
.
E assim por diante, declaradas APENAS UMA ÚNICA VEZ até o final!

 For x = 1 To 21
           Arraycoll(x, 1).Text = Planilha7.Cells(i, j): i = i + 1
 Next

 

Maravilha certo? até aí tudo bem........Perfeito...Funciona dentro da SUB essa Array e seus respectivos ParamArray.

O problema é que tenho diversas subs NESTA Useform Cujo são pequenininhas e beeeem específicas em suas funções e precisam de trabalhar TAMBÉM com o Array para cargas de dados e outras funções Para TODAS as minhas N TextBox e Respectivas ComboBox.

 

Porém...NÃO SEI DECLARAR a Array e seus respectivos conjuntos de parâmetros SET de forma pública! Vaguei muito na net e creio que não deve ser um bicho de sete cabeças a ponto de ter que criar uma orientação de objeto.

Vi alguns Foruns Gringos ensinando com Array do tipo String, tentei fazer similar mas não deu certo!

Preciso de declarar a Array com os valores mencionados conforme o anexo da foto, DE FORMA PÚBLICA (Se Souber uma GLOBAL forma) melhor ainda! 

Peço desde já desculpa pois estou ainda aprendendo a programar e estou me virando conforme as necessidades aparecem

 

Um grande abraço, estou Logado e no aguardo!

 

 

ApenasIssoKPreciso.png

Link para o comentário
Compartilhar em outros sites

  • Solução

Problema resolvido:

 

Abri um novo módulo e fiz a seguinte declaração:

 

Public Arraycoll(1 To 21, 1 To 2) As Control
Public Sub ChargerArraycoll()
    Set Arraycoll(1, 1) = Config_pref_rot2_subeditor.coll1: Set Arraycoll(1, 2) = Config_pref_rot2_subeditor.cmdd1
    Set Arraycoll(2, 1) = Config_pref_rot2_subeditor.coll2: Set Arraycoll(2, 2) = Config_pref_rot2_subeditor.cmdd2
    Set Arraycoll(3, 1) = Config_pref_rot2_subeditor.coll3: Set Arraycoll(3, 2) = Config_pref_rot2_subeditor.cmdd3
    Set Arraycoll(4, 1) = Config_pref_rot2_subeditor.coll4: Set Arraycoll(4, 2) = Config_pref_rot2_subeditor.cmdd4
    Set Arraycoll(5, 1) = Config_pref_rot2_subeditor.coll5: Set Arraycoll(5, 2) = Config_pref_rot2_subeditor.cmdd5
    Set Arraycoll(6, 1) = Config_pref_rot2_subeditor.coll6: Set Arraycoll(6, 2) = Config_pref_rot2_subeditor.cmdd6
    Set Arraycoll(7, 1) = Config_pref_rot2_subeditor.coll7: Set Arraycoll(7, 2) = Config_pref_rot2_subeditor.cmdd7
    Set Arraycoll(8, 1) = Config_pref_rot2_subeditor.coll8: Set Arraycoll(8, 2) = Config_pref_rot2_subeditor.cmdd8
    Set Arraycoll(9, 1) = Config_pref_rot2_subeditor.coll9: Set Arraycoll(9, 2) = Config_pref_rot2_subeditor.cmdd9
    Set Arraycoll(10, 1) = Config_pref_rot2_subeditor.coll10: Set Arraycoll(10, 2) = Config_pref_rot2_subeditor.cmdd10
    Set Arraycoll(11, 1) = Config_pref_rot2_subeditor.coll11: Set Arraycoll(11, 2) = Config_pref_rot2_subeditor.cmdd11
    Set Arraycoll(12, 1) = Config_pref_rot2_subeditor.coll12: Set Arraycoll(12, 2) = Config_pref_rot2_subeditor.cmdd12
    Set Arraycoll(13, 1) = Config_pref_rot2_subeditor.coll13: Set Arraycoll(13, 2) = Config_pref_rot2_subeditor.cmdd13
    Set Arraycoll(14, 1) = Config_pref_rot2_subeditor.coll14: Set Arraycoll(14, 2) = Config_pref_rot2_subeditor.cmdd14
    Set Arraycoll(15, 1) = Config_pref_rot2_subeditor.coll15: Set Arraycoll(15, 2) = Config_pref_rot2_subeditor.cmdd15
    Set Arraycoll(16, 1) = Config_pref_rot2_subeditor.coll16: Set Arraycoll(16, 2) = Config_pref_rot2_subeditor.cmdd16
    Set Arraycoll(17, 1) = Config_pref_rot2_subeditor.coll17: Set Arraycoll(17, 2) = Config_pref_rot2_subeditor.cmdd17
    Set Arraycoll(18, 1) = Config_pref_rot2_subeditor.coll18: Set Arraycoll(18, 2) = Config_pref_rot2_subeditor.cmdd18
    Set Arraycoll(19, 1) = Config_pref_rot2_subeditor.coll19: Set Arraycoll(19, 2) = Config_pref_rot2_subeditor.cmdd19
    Set Arraycoll(20, 1) = Config_pref_rot2_subeditor.coll20: Set Arraycoll(20, 2) = Config_pref_rot2_subeditor.cmdd20
    Set Arraycoll(21, 1) = Config_pref_rot2_subeditor.coll21: Set Arraycoll(21, 2) = Config_pref_rot2_subeditor.cmdd21
End Sub

 

agora todas outras subs fazem uma call para esta ChargerArraycoll.

 

Meu novo desafio é criar o For each para reduzir agora a declaração desses SETs..."novo post!"

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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