0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
904 visualizzazioni4 pagine
Este documento describe una solicitud de ayuda para crear una macro en Excel que evalúe si una celda cumple una condición. Si se cumple, copiará el contenido de otra celda de la misma fila y lo pegará en otra hoja. Si no se cumple, evaluará la siguiente fila. El experto responde proporcionando una macro que realiza esto, recorriendo la hoja hasta encontrar una celda vacía y copiando los datos en la siguiente línea disponible de la otra hoja. El usuario agradece y confirma que la macro funciona como necesitaba.
Descrizione originale:
Titolo originale
Macro Que Evalua Condiciones y Copia a Otra Celda de La Fila
Este documento describe una solicitud de ayuda para crear una macro en Excel que evalúe si una celda cumple una condición. Si se cumple, copiará el contenido de otra celda de la misma fila y lo pegará en otra hoja. Si no se cumple, evaluará la siguiente fila. El experto responde proporcionando una macro que realiza esto, recorriendo la hoja hasta encontrar una celda vacía y copiando los datos en la siguiente línea disponible de la otra hoja. El usuario agradece y confirma que la macro funciona como necesitaba.
Este documento describe una solicitud de ayuda para crear una macro en Excel que evalúe si una celda cumple una condición. Si se cumple, copiará el contenido de otra celda de la misma fila y lo pegará en otra hoja. Si no se cumple, evaluará la siguiente fila. El experto responde proporcionando una macro que realiza esto, recorriendo la hoja hasta encontrar una celda vacía y copiando los datos en la siguiente línea disponible de la otra hoja. El usuario agradece y confirma que la macro funciona como necesitaba.
Tecnologa e Internet > Software y aplicaciones > Microsoft Excel
Macro que vea si se cumple una condicin y copie otra celda de la fila, si no que baje y re- evale
Respuesta de aprendemos a MonicaRQ 28/11/2012 Usuario Hola, Necesito ayuda para crear una macro que evalu si una celda (HOJA 1, Celda L2) cumple una condicin. Si la condicin se cumple (="Cobro"), que copie el contenido de una segunda celda de la misma fila (HOJA 1, Celda B2) y lo pegue en una tercer celda ubicada en otra hoja del mismo archivo (HOJA 2, celda A5) Si la condicin no se cumple (<> Cobro), que baje una fila y evale nuevamente la condicin en la nueva celda (HOJA 1, Celda L3). Si la condicin se cumple que repita el procedimiento de copiar y pegar; si no se cumple, que siga bajando y evaluando hasta que encuentre una celda vaca en la columna L.
Intent hacer mi macro siguiendo un caso similar en el foro pero no me sali:
Sub copiar() Sheets("HOJA1").Range("L2").Select If (ActiveCell.Value = Cobro) Then 'si se cumple bajamos una celda ActiveCell.Offset(1, 0).Select Else If (ActiveCell.Value <> Cobro) Then direccin = ActiveCell.address ActiveCell("B2").copy Sheets("WU to HOJA2").Select Range("A5").Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop ActiveSheet.Paste Sheets("DTSHOJA1").Select Range(direccin).Select ActiveCell.Offset(1, 0).Select End If End If Next End Sub
Ojal que me puedan ayudar a corregirlo o darme otra opcin. Muchas gracias!
Experto Hola: Te anexo una macro
Sub cobro() 'busca "cobro" copia y pega 'Por.Dam
Sheets("hoja1").Select 'obtiene la ltima fila con datos de la columna L ufila = Range("L" & Rows.Count).End(xlUp).Row
'obtiene el nmero de columna que representa la letra L col = Range("L2").Column k = 5 For i = 2 To ufila ' recorre toda la columna hasta la ltima celda con datos If Cells(i, col) = "Cobro" Then 'copia a la hoja2 columna A el contenido de la hoja1 columna B Sheets("hoja2").Range("A" & i + 3) = Sheets("hoja1").Range("B" & i) k = k + 1 End If Next 'va al siguiente registro
Sheets("hoja2").Select End Sub
Cambia en la macro los nombres hoja1 y hoja2 por los nombres reales de tus hojas.
La duda que me queda es, si en L2 encuentra Cobro que copie B2 a A5, para la siguiente vez que encuentre Cobro, por ejemplo, si en L6 encuentra Cobro, dnde lo va a copiar: en A6 (que es la siguiente lnea que le sigue a A5), o lo va a copiar en A9. La macro que te envi es para copiar en A9, si quieres que se copie en A6
Cambia esta lnea Sheets("hoja2").Range("A" & i + 3) = Sheets("hoja1").Range("B" & i)
Por esta Sheets("hoja2").Range("A" & k) = Sheets("hoja1").Range("B" & i)
Saludos.Dam Si es lo que necesitas, por favor, podras finalizar la pregunta.Gracias
Usuario Hola,
Muchas gracias por tu ayuda. Esto es justo lo que necesitaba. Slo tengo la siguiente duda, cmo cambio la celda en que quiero que empiece a pegarse la informacin?
Es decir, s quiero que se pegue en la hoja 2, pero en lugar de que sea A5, que empiece A7 y luego le siga en el A8 y as sucesivamente.
Muchas gracias
Experto Hola: Reemplaza esta lnea k = 5 Por esta K = 7
Reemplaza esta lnea Sheets("hoja2").Range("A" & i + 3) = Sheets("hoja1").Range("B" & i) Por esta Sheets("hoja2").Range("A" & k) = Sheets("hoja1").Range("B" & i)
Saludos.Dam Usuario Muchas gracias por tu ayuda, funcion tal y como lo necesitaba. Saludos!