Macro para excel que copie el contenido de una fila en base a una condición

Hola a todos!

Soy nueva en esto y necesito una macro para excel que copie el contenido de una fila en otra hoja si una celda de la misma fila contiene un valor mayor que 0. Por ejemplo, supongamos que tengo 6 hojas (sillas, mesas, libros, películas, juegos, total), si en cualquiera de las hojas una celda de la columna B fuese mayor que 0 copiaríamos esa fila a la hoja total.

Gracias por adelantado!

Un Saludo

Noe

1 respuesta

Respuesta
1

Dame un segundo y te envío respuesta

Inserta un modulo copia esta macro en el modulo y luego le asignas la macro a un botón y hará lo que tu quieres hacer, te aconsejo que visites www.programarexcel.blogspot.com ahí encontrarás una serie de ejemplos para descargar y adaptarlas a lo que necesites hacer. Comenta luego
While Sheets("mesas").Cells(fila, 1) <> Empty
If Sheets("mesas").Cells(fila, 2) = 0 Then
Sheets("mesas").Select
Rows(fila).Select
Selection.Copy
Sheets("Total").Select
Cells(filat, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
filat = filat + 1
End If
fila = fila + 1
Wend
While Sheets("libros").Cells(fila, 1) <> Empty
If Sheets("libros").Cells(fila, 2) = 0 Then
Sheets("libros").Select
Rows(fila).Select
Selection.Copy
Sheets("Total").Select
Cells(filat, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
filat = filat + 1
End If
fila = fila + 1
Wend
While Sheets("películas").Cells(fila, 1) <> Empty
If Sheets("películas").Cells(fila, 2) = 0 Then
Sheets("películas").Select
Rows(fila).Select
Selection.Copy
Sheets("Total").Select
Cells(filat, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
filat = filat + 1
End If
fila = fila + 1
Wend
While Sheets("juegos").Cells(fila, 1) <> Empty
If Sheets("juegos").Cells(fila, 2) = 0 Then
Sheets("juegos").Select
Rows(fila).Select
Selection.Copy
Sheets("Total").Select
Cells(filat, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
filat = filat + 1
End If
fila = fila + 1
Wend
End Sub

Hola!

Lo primero muchas gracias por responder tan pronto!

no he podido ejecutar la macro porque me da el error siguiente y no se ejecuta:

error 1004 en tiempo de ejecución

error definido por la aplicación o el objeto

Al darle a depurar me lleva a la primera linea que me has escrito de código, yo creo que lo que dice es que la fila esta vacía pero no lo esta.

Algún consejo?

Un Saludo

Noe

Debes acomodar la macro a tu libro, fijate si el nombre de las hojas coincide con la macro es lo primero que hay que ver, segundo toma la fila 2 columna 1 como inicio, no se donde tengas tus datos, pásame el archivo y te lo veo si quieres, entra a www.programarexcel.blogspot.com y envialo de ahí.

Hola!

te he mandado el archivo como me dijiste!

Un saludo

noe

Noe, veo el archivo y te respondo.

Hola!

he estado intentado repararlo y mas o menos lo he conseguido.

he declarado la variable fila y fila y las he inicializado.

cada vez que entra a una hoja de calculo nueva vuelvo a inicializar la variable fila a 2 por que es por la fila que quiero que empiece pero cuando pasa a la tercera hoja de calculo me error 9, subíndice fuera de rango en la linea Sheets("TOTATES").Select y no entiendo porque???

Un saludo

Noe

Ahí tienes el archivo funcionando, te faltaba declarar variables y volver la variable a su valor original entre bucle y bucle.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas