Luis Mondelo, espero me puedas ayudar nuevamente con... Copiar solo si la fila esta completa

Hola LUis! Nuevamente solicitando tu ayuda, espero m puedas ayudar.
La macro que acumula los datos del "vale" me ha funcionado muy bien, sin embargo, para ayudarme a hacer mas facil esta tarea de ingresar datos en el vale, he empleado BuscarV....
La he ingresado en la columna B,C,E,F,G, de la fila 10 a la 39, si ingreso el codigo y este se encuentra en mi hoja de "datos" me debera dar automaticamente la categoria, descripcion, unidad, marca y precio unitario. Enla columna h, correspondiente a importe he aplicado la multiplicacion D*G. El problema es que como las celdas B,C.E.F,G,h, tienen BUSCARV y D*G... Las copia a la hoja salidas. Lo que necesito es que solo si las filas estan completas las copie, sino es asi. Que solo copie aquellas que si lo estan.

1 respuesta

Respuesta
1

La macro nueva es esta, pero también te lo he mandado por mail

Sub ejemplo7()
'por luismondelo
Sheets("vale").Select
Range("a9:h39").Sort key1:=Range("a9"), order1:=xlAscending, Header:=xlYes, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("b10:b" & Sheets("vale"). Range("b40").End(xlUp). Row). Copy
Sheets("salidas"). Range("c65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Range("a10:a" & Sheets("vale"). Range("a40").End(xlUp). Row). Copy
Sheets("salidas"). Range("d65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Range("c10:h" & Sheets("vale"). Range("c40").End(xlUp). Row). Copy
Sheets("salidas"). Range("e65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Sheets("salidas").Select
Range("b65000").End(xlUp).Offset(1, 0).Select
Do While ActiveCell.Offset(0, 1).Value <> ""
ActiveCell.Value = Sheets("vale").Range("h3").Value
ActiveCell.Offset(0, -1).Value = Sheets("vale").Range("c5").Value
ActiveCell.Offset(1, 0).Select
Loop
Range("k65000").End(xlUp).Offset(1, 0).Select
Do While ActiveCell.Offset(0, -1).Value <> ""
ActiveCell.Value = Sheets("vale").Range("d44").Value
ActiveCell.Offset(1, 0).Select
Loop
Sheets("vale").Select
Range("a10:h39").ClearContents
Range("d44,h3,c5").ClearContents
Range("c5").Select
End Sub

recuerda finalizar la consulta

Hola Luis! al ejecutar la macro, esta copiando las formulas... y no solo aquellas que están completas. y no termina de realizar todo ya que aparece el siguiente mensaje

Se ha producido el error '13' en tiempo de ejecución. No coinciden los tipos.

esto aparece en la linea

Do While ActiveCell.Offset(0, 1).Value <> ""

Prueba ahora con esta macro y también te la he mandado por mail

Sub ejemplo7()
'por luismondelo
Sheets("vale").Select
Range("b10:b" & Sheets("vale"). Range("a40").End(xlUp). Row). Copy
Sheets("salidas"). Range("c65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Range("a10:a" & Sheets("vale"). Range("a40").End(xlUp). Row). Copy
Sheets("salidas"). Range("d65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Range("c10:h" & Sheets("vale"). Range("a40").End(xlUp). Row). Copy
Sheets("salidas"). Range("e65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
Sheets("salidas").Select
Range("b65000").End(xlUp).Offset(1, 0).Select
Do While ActiveCell.Offset(0, 1).Value <> ""
ActiveCell.Value = Sheets("vale").Range("h3").Value
ActiveCell.Offset(0, -1).Value = Sheets("vale").Range("c5").Value
ActiveCell.Offset(1, 0).Select
Loop
Range("k65000").End(xlUp).Offset(1, 0).Select
Do While ActiveCell.Offset(0, -1).Value <> ""
ActiveCell.Value = Sheets("vale").Range("d44").Value
ActiveCell.Offset(1, 0).Select
Loop
Sheets("vale").Select
Range("a10:a39").ClearContents
Range("d10:d39").ClearContents
Range("d44,h3,c5").ClearContents
Range("c5").Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas