Hacer que excel lea celdas y rellene una columna según datos

Buenas tarde a todos, he buscado muchas veces ayudas en foros y por fin me decido a ser yo el que pregunte; quisiera hacer algo en excel que no se si tiene solución de forma fácil y sin programar, espero que podáis ayudarme.
Mi intención es que excel lea celdas de una columna y el mismo contenido lo envíe a otra columna con el mismo orden (C1 -> A1 ; C2 -> A2 ; ...), hasta ahí bien, el problema es que en la celda D1, D2, etc quiero marcar de alguna manera que al escribir algo de esa forma, en la columna que rellene salte una fila y la deje en blanco, siendo por ejemplo en C5 "mortero" y que rellene A6 con mortero y A5 quede vacía.
Por ejemplo en:
C1 "yeso" --> A1 "yeso"
C2 "hierro" y D2 "X" --> A2 "yeso" y A3 en blanco o "Pérdidas"
C3 "madera" --> A4 "madera"
Espero ser más o menos claro, gracias por la ayuda de antemano.

1 Respuesta

Respuesta
1

Te anexo una macro para solucionarlo. Sigue las Instrucciones para worksheet
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro
Private Sub Worksheet_Change(ByVal Target As Range)'rellene una columna según datos'Por.DamIf Not Intersect(Target, Range("C:D")) Is Nothing Then inicio = 1 j = inicio Application.EnableEvents = False Range(Cells(inicio, "A"), Cells(Range("A" & Rows.Count).End(xlUp).Row, "A")).Clear For i = inicio To Range("C" & Rows.Count).End(xlUp).Row Cells(j, "A") = Cells(i, "C") j = j + 1 If Cells(i, "D") = "X" Or Cells(i, "D") = "x" Then Cells(j, "A") = "Desperdicio " & Cells(i, "C") j = j + 1 End If Next Application.EnableEvents = TrueEnd IfEnd Sub
Prueba y me comentas
Saludos. Dam
Si es lo que necesitas.

La pregunta no admite más respuestas

Más respuestas relacionadas