SELECT CASE COM LOOP
ola amigos
tentei de varias formas fazer esse loop, mas acho que minha lógica esta toda furada, pois naum vai de jeito nenhum
se alguem puder ajudar:
o Text1 está em array ou indexado, não como diz, mas são 15 ao todo, sendo assim eu preciso repassar esse select case 15 vezes e coletar os dados dos printer antes de soutar a enddoc, o problema é que só imprimi as informações do Text1.text (index 0) sendo assim presumo que não está acontecendo o loop...
segue o codigo para a analize de vcs.......... thanks
tentei de varias formas fazer esse loop, mas acho que minha lógica esta toda furada, pois naum vai de jeito nenhum
se alguem puder ajudar:
o Text1 está em array ou indexado, não como diz, mas são 15 ao todo, sendo assim eu preciso repassar esse select case 15 vezes e coletar os dados dos printer antes de soutar a enddoc, o problema é que só imprimi as informações do Text1.text (index 0) sendo assim presumo que não está acontecendo o loop...
segue o codigo para a analize de vcs.......... thanks
For G = 1 To text1.Count
Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters
[ô]------------------------------ primeira linha
Select Case text1(Index).Text
Case [Ô]01[Ô]
POSICAO_COLUNA(0) = 0.72 [ô]1
POSICAO_LINHA(0) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]02[Ô]
POSICAO_COLUNA(1) = 2.01 [ô]2
POSICAO_LINHA(1) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]03[Ô]
POSICAO_COLUNA(2) = 3.25 [ô]3
POSICAO_LINHA(2) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]04[Ô]
POSICAO_COLUNA(3) = 4.51 [ô]4
POSICAO_LINHA(3) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]05[Ô]
POSICAO_COLUNA(4) = 5.8 [ô]5
POSICAO_LINHA(4) = 2.23
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
[ô]-------------------------------------- segunda linha
Case [Ô]06[Ô]
POSICAO_COLUNA(5) = 0.72
POSICAO_LINHA(5) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]07[Ô]
POSICAO_COLUNA(6) = 2.01
POSICAO_LINHA(6) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]08[Ô]
POSICAO_COLUNA(7) = 3.25
POSICAO_LINHA(7) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]09[Ô]
POSICAO_COLUNA(8) = 4.51
POSICAO_LINHA(8) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]10[Ô]
POSICAO_COLUNA(9) = 5.8
POSICAO_LINHA(9) = 2.78
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
[ô]--------------------------------------- Terceira linha
Case [Ô]11[Ô]
POSICAO_COLUNA(10) = 0.72
POSICAO_LINHA(10) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]12[Ô]
POSICAO_COLUNA(11) = 2.01
POSICAO_LINHA(11) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]13[Ô]
POSICAO_COLUNA(12) = 3.25
POSICAO_LINHA(12) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]14[Ô]
POSICAO_COLUNA(13) = 4.51
POSICAO_LINHA(13) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]15[Ô]
POSICAO_COLUNA(14) = 5.8
POSICAO_LINHA(14) = 3.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
[ô]------------------------------------------- Quarta linha
Case [Ô]16[Ô]
POSICAO_COLUNA(15) = 0.72
POSICAO_LINHA(15) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]17[Ô]
POSICAO_COLUNA(16) = 2.01
POSICAO_LINHA(16) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]18[Ô]
POSICAO_COLUNA(17) = 3.25
POSICAO_LINHA(17) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]19[Ô]
POSICAO_COLUNA(18) = 4.51
POSICAO_LINHA(18) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]20[Ô]
POSICAO_COLUNA(19) = 5.8
POSICAO_LINHA(19) = 3.88
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
[ô]------------------------------------------ Quinta linha
Case [Ô]21[Ô]
POSICAO_COLUNA(20) = 0.72
POSICAO_LINHA(20) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]22[Ô]
POSICAO_COLUNA(21) = 2.01
POSICAO_LINHA(21) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]23[Ô]
POSICAO_COLUNA(22) = 3.25
POSICAO_LINHA(22) = 4.33
Printer.CurrentX = POSICAO_COLUNA(22)
Printer.CurrentY = POSICAO_LINHA(22)
Printer.Print [Ô]gg[Ô]
Case [Ô]24[Ô]
POSICAO_COLUNA(23) = 4.51
POSICAO_LINHA(23) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Case [Ô]25[Ô]
POSICAO_COLUNA(24) = 5.8
POSICAO_LINHA(24) = 4.33
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
End Select
Next G
Printer.EndDoc
Muda somente isto
For G = 1 To text1.[txt-color=#0000f0]Ubound[/txt-color]
Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters
[ô]------------------------------ primeira linha
Select Case text1([txt-color=#0000f0]G[/txt-color]).Text
...
o que está em azul é o que deve ser alterado
For G = 1 To text1.[txt-color=#0000f0]Ubound[/txt-color]
Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters
[ô]------------------------------ primeira linha
Select Case text1([txt-color=#0000f0]G[/txt-color]).Text
...
o que está em azul é o que deve ser alterado
Marcelo, mais uma vez obrigado...
agora ja imprime alguma coisa mas ainda não tá Ã 100%...
agora a rotina insiste em imprimir somente 7 numeros da sequencia de 15... que coisa
agora ja imprime alguma coisa mas ainda não tá Ã 100%...
agora a rotina insiste em imprimir somente 7 numeros da sequencia de 15... que coisa
Colega irei te enviar por email um exemplo que criei, modifique conforme sua necessidade
Percebi que você carrega um array com as posições de impressão para depois imprimir nesta posição dependendo do INDEX em text1.
Modifiquei para a seguinte forma:
Primeiro carrego a matriz, depois imprimo conforme a quantidade de Ãntens em TEXT1.
é uma pequena mudança em seu código e respeitando a indicação do MARCELO.
Para imprimir o conteúdo de text1, altere para:
Modifiquei para a seguinte forma:
Printer.FontName = [Ô]Webdings[Ô]
Printer.ScaleMode = vbCentimeters
[ô]------------------------------ primeira linha
POSICAO_COLUNA(0) = 0.72 [ô]1
POSICAO_LINHA(0) = 2.23
POSICAO_COLUNA(1) = 2.01 [ô]2
POSICAO_LINHA(1) = 2.23
POSICAO_COLUNA(2) = 3.25 [ô]3
POSICAO_LINHA(2) = 2.23
POSICAO_COLUNA(3) = 4.51 [ô]4
POSICAO_LINHA(3) = 2.23
POSICAO_COLUNA(4) = 5.8 [ô]5
POSICAO_LINHA(4) = 2.23
[ô]-------------------------------------- segunda linha
POSICAO_COLUNA(5) = 0.72
POSICAO_LINHA(5) = 2.78
POSICAO_COLUNA(6) = 2.01
POSICAO_LINHA(6) = 2.78
POSICAO_COLUNA(7) = 3.25
POSICAO_LINHA(7) = 2.78
POSICAO_COLUNA(8) = 4.51
POSICAO_LINHA(8) = 2.78
POSICAO_COLUNA(9) = 5.8
POSICAO_LINHA(9) = 2.78
[ô]--------------------------------------- Terceira linha
POSICAO_COLUNA(10) = 0.72
POSICAO_LINHA(10) = 3.33
POSICAO_COLUNA(11) = 2.01
POSICAO_LINHA(11) = 3.33
POSICAO_COLUNA(12) = 3.25
POSICAO_LINHA(12) = 3.33
POSICAO_COLUNA(13) = 4.51
POSICAO_LINHA(13) = 3.33
POSICAO_COLUNA(14) = 5.8
POSICAO_LINHA(14) = 3.33
[ô]------------------------------------------- Quarta linha
POSICAO_COLUNA(15) = 0.72
POSICAO_LINHA(15) = 3.88
POSICAO_COLUNA(16) = 2.01
POSICAO_LINHA(16) = 3.88
POSICAO_COLUNA(17) = 3.25
POSICAO_LINHA(17) = 3.88
POSICAO_COLUNA(18) = 4.51
POSICAO_LINHA(18) = 3.88
POSICAO_COLUNA(19) = 5.8
POSICAO_LINHA(19) = 3.88
[ô]------------------------------------------ Quinta linha
POSICAO_COLUNA(20) = 0.72
POSICAO_LINHA(20) = 4.33
POSICAO_COLUNA(21) = 2.01
POSICAO_LINHA(21) = 4.33
POSICAO_COLUNA(22) = 3.25
POSICAO_LINHA(22) = 4.33
POSICAO_COLUNA(23) = 4.51
POSICAO_LINHA(23) = 4.33
POSICAO_COLUNA(24) = 5.8
POSICAO_LINHA(24) = 4.33
For G = 1 To text1.ubound
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print [Ô]gg[Ô]
Next G
Printer.EndDoc
Primeiro carrego a matriz, depois imprimo conforme a quantidade de Ãntens em TEXT1.
é uma pequena mudança em seu código e respeitando a indicação do MARCELO.
Para imprimir o conteúdo de text1, altere para:
For G = 1 To text1.ubound
Printer.CurrentX = POSICAO_COLUNA(G - 1)
Printer.CurrentY = POSICAO_LINHA(G - 1)
Printer.Print TEXT1.TEXT
Next G
Tópico encerrado , respostas não são mais permitidas