Gabriel Darin verga 0 Posted March 21, 2019 Report Share Posted March 21, 2019 Boa Tarde, Estou tentando criar um código que, ao colar um nome na coluna D, percorra a coluna D e procura esse valor nas celulas anteriores, depois copie os valores das celulas da mesma linha da celula encontrada para a linha que está o nome que eu colei inicialmente. Por exemplo, eu digito o nome "João" na celula D100, o programa procura o nome da celula D1 até a ultima celula. Supondo que ele encontrou o nome na celula D35, ele copia a celula I35 e P35 e cola nas celulas I100 e P100 Aqui está o que eu tentei, mas não tive sucesso: Dim UltCel As Range Dim lastcel As Range Dim Nome As String Dim Area As String Dim Nome2 As String Range("A37").Select Selection.End(xlUp).Select 'Loop principal 'percorrer os nomes Do While ActiveCell.Value <> "CLIENTE" 'guardar o nome Nome = ActiveCell.Value Set UltCel = ActiveCell Range("A1").Select 'repetição Do While ActiveCell <> "CLIENTE" Nome2 = ActiveCell.Value Set lastcel = ActiveCell If Nome2 = Nome Then 'If ActiveCell.Offset(0, 1).Value <> "" Then ActiveCell.Offset(0, 2) = Nome 'End If End If ActiveCell.Offset(1, 0).Select Loop Exit Do UltCel.Offset(-1, 0).Select Loop Link to post Share on other sites
antseq 82 Posted March 21, 2019 Report Share Posted March 21, 2019 Viva, Está a tentar criar o código porque necessita dessa funcionalidade? ou é um "trabalho-de-casa" académico que tem de resolver? Pergunto porque o Excel, já tem o "VLOOKUP" que "basicamente" faz o que pretende, a menos que já tenho tentado e não resolve totalmente o seu caso. cps. Link to post Share on other sites
Gabriel Darin verga 0 Posted March 22, 2019 Author Report Share Posted March 22, 2019 15 horas atrás, antseq disse: Viva, Está a tentar criar o código porque necessita dessa funcionalidade? ou é um "trabalho-de-casa" académico que tem de resolver? Pergunto porque o Excel, já tem o "VLOOKUP" que "basicamente" faz o que pretende, a menos que já tenho tentado e não resolve totalmente o seu caso. cps. Na verdade, é pra melhorar minha planilha no trabalho. Eu ja tentei usar o VLOOKUP, mas eu não consigo copiar uma informação da mesma coluna que a formula se encontra. Por isso queria uma rotiina que toda vez que eu colocasse um nome ela faria uma varredura por alguma repetição e copiaria os valores pra linha atual. Link to post Share on other sites
Gnrtuga 21 Posted March 23, 2019 Report Share Posted March 23, 2019 Ora boas, Eu penso que percebi o que queres, queres preencher a célula com o nome do cliente e que automaticamente sejam preenchidas outras células, que vou supor que correspondem por exemplo à morada e ao código postal. Ora aqui vão as minhas observações, primeiro no teu código dá-me a impressão que se não houver nenhum cliente com o nome pretendido que ele não vai sair do loop, depois a procura por nome pode ser um bocado inglória, porque pode haver um espaço entre nomes e já não te vai encontrar. Em relação a possíveis soluções: - Ligar o excel ao acess e procurar na base de dados os clientes (sei que não será o ideal, mas já usei e foi útil) - Talvez o antseq tenha razão e o VLookup seja uma boa opção, já usei num formulário e vou colar o código e explicar. nomeautuantef = Application.WorksheetFunction.VLookup(CDbl(cbautuante), Folha12.Range("I1:J100"), 2, 0) em que nomeautuantef era o nome do campo no formulário onde iria aparecer o resultado da pesquisa, depois vem a função VLookup (essa parte percebe-se bem) onde estou a converter para double o texto do campo do formulário (cbautuante) que é o valor que estou a pesquisar, folha12 é o local onde tinha a lista a ser pesquisada, com o range I a J, neste range tinha o número do autuante na coluna I e o nome na coluna J, o 2 serve para dizer que quero o valor que está na coluna 2 do meu range (neste caso o nome) e o 0 serve para dizer que procuro o valor exacto. Deixo-te aqui o link para esta função em VBA https://docs.microsoft.com/en-us/office/vba/api/excel.worksheetfunction.vlookup Boas sorte Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. Link to post Share on other sites
antseq 82 Posted March 23, 2019 Report Share Posted March 23, 2019 Em 22/03/2019 às 12:26, Gabriel Darin verga disse: Na verdade, é pra melhorar minha planilha no trabalho. Eu ja tentei usar o VLOOKUP, mas eu não consigo copiar uma informação da mesma coluna que a formula se encontra. Por isso queria uma rotiina que toda vez que eu colocasse um nome ela faria uma varredura por alguma repetição e copiaria os valores pra linha atual. Para usar o VLOOKUP (PROCV): - supondo que em "D100" digitas "João" - em "I100" colocas a fórmula "=PROCV($D100;$D$1:$P$99;6;VERDADEIRO)" - em "P100" colocas a fórmula "=PROCV($D100;$D$1:$P$99;13;VERDADEIRO)" * a matiz de procura e obtenção de resultados é $D$1 até $P$99 * para o resultado encontrado em "D?" queres no primeiro caso/fórmula a 6ª coluna => DEFGH(I) * para o resultado encontrado em "D?" queres no segundo caso/fórmula a 13* coluna => DEFGHIJKLMNO(P) * não estou certo, mas penso que a matriz deverá estar ordenada por "D" cps, Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now