Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Perfil deletado

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

Recommended Posts

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

Editado por dif
Inserir o código com o botão code

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Editado por dif
POste os códigos usando o botão CODE <>

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






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

×