Ir ao conteúdo
  • Cadastre-se
Visitante

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

Recommended Posts

Visitante

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  •    2
    Visitante

    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!"

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Criar uma conta

    Crie uma nova conta em nossa comunidade. É fácil!

    Crie uma nova conta

    Entrar

    Já tem uma conta? Faça o login.

    Entrar agora





    Sobre o Clube do Hardware

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

    ×