Foros del Web » Soporte técnico » Ofimática »

Macro Excel. No sé cómo hacerlo.

Estas en el tema de Macro Excel. No sé cómo hacerlo. en el foro de Ofimática en Foros del Web. Muy buenas amig@s. Tengo un pequeño problema con Excel. Yo no sé si es difícil o imposible hacer esta Macro, quizá es sencillo, pero yo ...
  #1 (permalink)  
Antiguo 23/08/2012, 14:08
 
Fecha de Ingreso: agosto-2012
Mensajes: 1
Antigüedad: 11 años, 8 meses
Puntos: 0
Macro Excel. No sé cómo hacerlo.

Muy buenas amig@s.

Tengo un pequeño problema con Excel. Yo no sé si es difícil o imposible hacer esta Macro, quizá es sencillo, pero yo llevo probando mucho tiempo y no me sale.

Bien, lo que necesito es lo siguiente, espero explicarme bien.

Yo tengo 3 columnas, que se titulan A, B, C. Bien, cada columna contiene unos números, y tengo que realizar la siguiente operación.

(A) (B) (C)
(1)A | B | C |
(2)1 | 3 | 5 |
(3)2 | 7 | -4 |

Esta sería la tabla, imaginarios que tiene como 300 filas de números cada columna.

Pues bien, lo que necesito es:
1. Que la macro, primero me cree dos columnas, D y E y en cada columna me haga la siguiente fórmula:
En la columna D, esta fórmula =if(C2<0;0;C2)
En la columna E, esta fórcumla =if(C2>0;0;-C2)
Una vez que tenga las dos primeras celdas completas (C2 Y D2), que me estire los valores hasta el final de las columnas A, B y C, que acaban en la misma celda (pongámosle en la A300, B300 y C300.

Esta sería la tabla en este paso: la celda D2 es >0, por tanto me da el número. La celda D3 es negativa, por tanto, me da 0. Lo mismo para la columna "E"
O(A)(B)(C) (D) (E)
(1)A | B | C | D | E |
(2)1 | 3 | 5 | 5 | 0
(3)2 | 7 | -4 |0 | 4

2. Que me pegue como valores la columna D y E y que a continuación me elimine la columna C.

O(A)(B)(C) (D)
(1)A | B | D | E
(2)1 | 3 | 5 | 0
(3)2 | 7 |0 | 4
.. .. .. ..
Espero que me podais ayudar.

Muchísimas gracias.

Un saludo.
  #2 (permalink)  
Antiguo 04/09/2012, 11:44
Avatar de dorde  
Fecha de Ingreso: diciembre-2003
Mensajes: 145
Antigüedad: 20 años, 4 meses
Puntos: 7
Respuesta: Macro Excel. No sé cómo hacerlo.

yo hice algo parecido con esto, pero no borro la formula de la primera fila,

espero te sirva

Sheets("Estandard").Select
Range("J7:K7").Select <=== AQUI ESTAN LAS FORMULAS
Range(Selection, Selection.End(xlDown)).Select <=== LAS COPIA HASTA EL FINAL
Selection.ClearContents



Dim RwEnd, x As Integer
Application.Goto Reference:="R6C1"

'copia formulas
RwEnd = Range(Cells(1, 6), Selection.End(xlDown)).Count
Range(Cells(6, 10), Cells(6, 11)).Copy
Application.Goto Reference:="R6C10"
Range(Cells(7, 10), Cells(RwEnd, 11)).Activate
Selection.PasteSpecial Paste:=xlFormulas
Application.CutCopyMode = False
Application.Goto Reference:="R1C1"

Range("J7:K7").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' ESTO ES VANIDAD
Selection.Replace What:="-", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="#¡VALOR!", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
__________________
Pero si alguno de vosotros se ve falto de sabiduría, que la pida a Dios, el cual da a todos abundantemente y sin reproche, y le será dada. Pero que pida con fe, sin dudar

Santiago 1.5-6
  #3 (permalink)  
Antiguo 04/09/2012, 13:56
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Macro Excel. No sé cómo hacerlo.

Hola dorde, suponiendo que partes de la primera fila y columna te adjunto un ejemplo con macros.
en vez de pegar fórmulas y después dejarla como valores, es mas fácil hacerlo con el valor en el momento.

aquí esta el archivo: http://www.mediafire.com/?qytrh12iumx3o1u

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #4 (permalink)  
Antiguo 04/09/2012, 14:15
Avatar de dorde  
Fecha de Ingreso: diciembre-2003
Mensajes: 145
Antigüedad: 20 años, 4 meses
Puntos: 7
Respuesta: Macro Excel. No sé cómo hacerlo.

Deacuerdo, siempre hay mas de un camino, el chiste es llegar.

no hay que llegar primero, hay que saber llegar!!

saludos Perro
__________________
Pero si alguno de vosotros se ve falto de sabiduría, que la pida a Dios, el cual da a todos abundantemente y sin reproche, y le será dada. Pero que pida con fe, sin dudar

Santiago 1.5-6
  #5 (permalink)  
Antiguo 05/09/2012, 06:53
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Macro Excel. No sé cómo hacerlo.

sorry dorde, me maree y pensé que tu eras el de la pregunta, debia decir "gubertu".
No quise en ningun momento opacarte... todas las soluciones son útiles.


el script que hice fue este:
Código vb:
Ver original
  1. Private Sub w_Click()
  2. y = 1
  3. Do While Cells(y, 1) <> ""
  4.     If Cells(y, 3) < 0 Then
  5.         valorC4 = 0
  6.     Else
  7.         valorC4 = Cells(y, 3)
  8.     End If
  9.     If Cells(y, 3) > 0 Then
  10.         valorC5 = 0
  11.     Else
  12.         valorC5 = Cells(y, 3) * -1
  13.     End If
  14.     Cells(y, 4) = valorC4
  15.     Cells(y, 5) = valorC5
  16.     y = y + 1
  17. Loop
  18. Columns("C:C").Delete Shift:=xlToLeft
  19. End Sub

salu2 cordiales
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #6 (permalink)  
Antiguo 05/09/2012, 07:02
Avatar de dorde  
Fecha de Ingreso: diciembre-2003
Mensajes: 145
Antigüedad: 20 años, 4 meses
Puntos: 7
Respuesta: Macro Excel. No sé cómo hacerlo.

No te preocupes perro, te repito hay muchas formas de llegar al resultado, malo sería que solo hubiera 1, bienvenidas todas las soluciones.

__________________
Pero si alguno de vosotros se ve falto de sabiduría, que la pida a Dios, el cual da a todos abundantemente y sin reproche, y le será dada. Pero que pida con fe, sin dudar

Santiago 1.5-6

Etiquetas: excel, macro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.