- Este tópico contém 4 respostas, 2 utilizadores e foi actualizado pela última vez há 8 anos, 7 meses por Albino.
-
AutorArtigos
-
-
13 de Abril de 2016 às 21:06 #4937AlbinoParticipante
Olá mais uma vez.
Ando aqui ás voltas com um projecto que está quase terminado,mas há umas pequenas coisas que não consigo resolver.
explicando
Pretendo copiar dados de uma listBox para uma folha de excel, essa lisBox está num UserForm, após alguma pesquisa pela net e por grupos consegui acertar com alguns códigos, no entanto tenho aqui um que não acerto nem por nada.
a ideia era selecionar dados numa ListBox e coloca-los numa folha de excel, que apartir da linha 12 seria escrita duas linhas abaixo da linha anteriormente editada, mas há um senão. Nas colunas C, D , E e F seria onde se iniciaria a colagem dos dados, mas a nova introdução estaria dependente da coluna G.
C D E F G
mar 34 comp PO 7
15
– – — — – esta linha ficaria em branco
rgc 23 amp ev 6
12
18
— —- —- —- — esta linha ficaria em branco
e assim sucessivamente.
O código que estou a usar é escreve sempre na linha 12:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets(“Folha2”).Select
‘testa se a list esta vazia
If ListBox1.ListCount = 0 Then
MsgBox (“Não há itens para serem enviados…”), vbInformation, (“Erro”)
Else‘lança os dados na planilha
Dim Item As Double
Dim linha As Integer
linha = 12
For Item = 0 To ListBox1.ListCount – 1
If ListBox1.Selected(Item) = True Then
Sheets(“Folha2”).Cells(linha, 1) = Date
Sheets(“Folha2”).Cells(linha, 3) = ListBox1.List(Item, 1)
Sheets(“Folha2”).Cells(linha, 4) = ListBox1.List(Item, 2)
Sheets(“Folha2”).Cells(linha, 5) = ListBox1.List(Item, 3)
Sheets(“Folha2”).Cells(linha, 6) = ListBox1.List(Item, 4)
linha = linha + 1
End If
Next
Application.ScreenUpdating = True
End If
End SubObrigado desde já e desculpa o relambório.
-
17 de Abril de 2016 às 16:06 #4938jorgerodAdministrador
Albino,
Experimenta alterar o código de linha: linha = 12, por exemplo, para:
Set Linha= Sheets(“Folha2”).Range(“A” & Rows.Count).End(xlUp).Offset(2, 0)
Assim, acho eu, vai ficar activa a 2ª linha abaixo da última. Se assim for (não testei…), não precisas do código : linha= linha + 1
Experimenta e diz qq coisa, ok?
-
19 de Abril de 2016 às 20:08 #4939AlbinoParticipante
Olá
JorgeRod
Lamento mas dá erro “object required” e fica parado na linha “”Set linha = ….””
Já tentei com outro código e dá no mesmo. <span class=”Apple-style-span” style=”font-family: ‘Courier New’, Courier, monospace;”> “”Range(“A1048576”).End(xlUp).Offset(1, 0).Select””</span>
cmpts -
20 de Abril de 2016 às 15:29 #4940jorgerodAdministrador
A variável Linha, está como Integer, tem que estar como Range. Assim, também tens que tirar a parte do código que refere Linha=12 e também a parte Linha = Linha + 1.
Experimenta. se não der, envia-me, por mail, uma folha de exemplo com o teu código, ok?
Fica bem.
-
20 de Abril de 2016 às 19:33 #4941AlbinoParticipante
Olá
Troquei como indicas-te o Integer por range, mas agora dá um erro “13” Type mismatch.
Vou mandar por mail .
-
-
AutorArtigos
- Tem de iniciar sessão para responder a este tópico.