Ajuda em função vba excel

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Ajuda em função vba excel

Mensagempor Asterion » Sexta Mar 02, 2007 15:33

Boas!

Alguém me sabe dizer a função do vba no excel que me permite copiar a linha que selecionei clicando com o rato por exemplo em 7 (linha 7) mas que em vez de copiar a linha toda apenas copia por exemplo a linha 7 coluna 1 linha 7 coluna 2 linha 7 coluna 3... até à linha 7 coluna 30.
Asterion
Aprendiz
Aprendiz
 
Mensagens: 22
Registado: Segunda Ago 14, 2006 19:18

Mensagempor KrIaXPaTaLa » Sexta Mar 02, 2007 15:56

Range("A7:A30").Select

Cumprimentos,

KrIaX.

EDIT: Para copiar depois - Selection.copy

Mas estou a ler melhor, e o que queres não é bem isto, pois não?
hardware.com.pt
#HCP @ PTNET
P IV 1.7 | 1 GB | 120 GB | GF4000 | SB5.1 | TFT Merd*so
TEL: voipcheap
Send Pr0n to:kria@iol.pt
Urls Inuteis: blog
KrIaXPaTaLa
Membro Diamante
Membro Diamante
 
Mensagens: 1159
Registado: Terça Mar 01, 2005 17:38

Mensagempor Asterion » Sábado Mar 03, 2007 0:52

Não é bem isso mas desde já obrigado.

Eu tenho uma tabela com diversas linhas e diversas colunas... dessas colunas por exemplo só me interessam as 8 últimas colunas correspondentes à linha 7. Eu queria exportar para um fixeiro .txt esses números ou caractéres dessas colunas correspondentes neste caso à linha 7 num formato para ser utilizado noutro programa. Mas como eu tenho que fazer a mesma coisa para outras linhas mas com os valores sempre dakelas 8 últimas colunas, eu queria fazer o programa de forma a que ao clicar no 7 da linha (seleciona a linha toda), clico na macro "Exportar" e exporta não os dados da linha toda mas sim os dados correspondentes às colunas que eu quero.

Por exemplo
A B C D E F
1 2 3 4 5 6 7
2 8 r t 8 2 1

Por exemplo aqui me interessa as colunas BCDE e quero exportar esse valores correspondentes à linha 1 num fixeiro .txt com o seguinte formato por exemplo: (cada valor da célula é exportado para o mesmo ficheiro txt mas com formato diferente)

0001 abcv _3
0002 _|-|- _4
0003 _5
0008 _6

Depois podia exportar a linha 2 e assim sucessivamente. Como o Excel está sempre a ser actualizado com novas linhas, eu queria que o programa exportasse a linha que selecionei... assim basicamente é isto.

Dicas, sites, opinioes sao sempre bem vindas
Asterion
Aprendiz
Aprendiz
 
Mensagens: 22
Registado: Segunda Ago 14, 2006 19:18

Mensagempor Karnac » Sábado Mar 03, 2007 1:24

Boas!
Não sei se estou a perceber bem o que pretendes...mas porque não crias um button e dps on_click colocavas o código VBScript que selecciona o Range e copia-o para um ficheiro?..
Karnac
Aprendiz
Aprendiz
 
Mensagens: 69
Registado: Sábado Out 29, 2005 6:26
Localização: Setúbal

Mensagempor Asterion » Sábado Mar 03, 2007 12:18

Sim a ideia é essa, ter o botão que copia para o ficheiro, mas dado que o excel vai sendo actualizado com novas linhas terei que estar sempre a alterar o programa.

' Loop for each row in selection.
For RowCount = 1 To Selection.Rows.Count
' Loop for each column in selection.
For ColumnCount = 1 To Selection.Columns.Count

' Write current cell's text to file with quotation marks.
Print #FileNum, """" & Selection.Cells(RowCount, _
ColumnCount).Text & """";
' Check if cell is in last column.
If ColumnCount = Selection.Columns.Count Then
' If so, then write a blank line.
Print #FileNum,
Else
' Otherwise, write a comma.
Print #FileNum, ",";
End If
' Start next iteration of ColumnCount loop.
Next ColumnCount
' Start next iteration of RowCount loop.
Next RowCount

Este loop vai-me permitir selecionar o range que pretendo e depois clicar no button e é esse range que passa para o ficheiro de texto. Eu queria simplificar esse range a uma única linha e algumas colunas, tipo... este código em cima permite-me fazer isso, seleciono o intervalo e exporta-me esse intervalo. Eu não queria isso... em vez de estar a selecionar o intervalo, queria fazer um único clique numa célula qualquer da linha que pretendo exportar e quando clicasse no button, exportava um conjunto de células pertencentes exclusivamente a essa linha. E sempre que selecionasse uma célula de outra linha qulquer, quando clicasse no button exportava-me o conjunto de células pertencentes exclusivamente a essa linha.
Asterion
Aprendiz
Aprendiz
 
Mensagens: 22
Registado: Segunda Ago 14, 2006 19:18

Mensagempor LuisFilipe » Domingo Mar 04, 2007 23:48

clica na coluna 1 da linha e

for f=0 to 100
a = ActiveCell.Offset(0, f).value
next f

acho que deve ser isto que queres

para saberes em que coluna estás também existe uma função

MsgBox (ActiveCell.Column)
LuisFilipe
Membro Diamante
Membro Diamante
 
Mensagens: 1270
Registado: Domingo Set 04, 2005 22:12

Mensagempor Asterion » Quarta Mar 07, 2007 19:04

Obrigado...

Utilizei o comando da célula activa e funcionou. Agora, queria guardar os printf's num ficheiro .txt, para o C:\ e com nome do ficheiro igual ao conteúdo existente na célula activa. Alguém sabe como posso fazer?
Asterion
Aprendiz
Aprendiz
 
Mensagens: 22
Registado: Segunda Ago 14, 2006 19:18


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron