En Excel sumar renglón de celdas en columna G

Espero t encuentres bien.

Te pregunto: ¿Cómo sumar en dolares? Tengo en G 14 y G 28

$$\begin{align}&=SUMA(G18:G27)\end{align}$$

=SUMA(G3:G13) y  otra en la misma columna =SUMA(G18 :G27) 

y la coluna es esta

Para incorporar solo esta columna (G) a la macro existente digamos que ¿así? Como ¿ves la línea en MAYÚSCULAS?

Sub actualiza()
HOJA = "Tabla2"
Sheets(HOJA).Copy After:=Sheets(2)
ActiveSheet.Name = "Copia"
For I = 3 To 27
    If I = 14 Or I = 15 Or I = 16 Or I = 17 Then
    Else
        VALOR = Sheets(HOJA).Cells(I, 4).Value
        Sheets(HOJA).Cells(I, 4).Value = VALOR * 1.1
Sheets(HOJA).Cells(I, 4).Value = VALOR * 1.1 '¿se puede agregar a esta linea y como?
'o ¿será asi?
SHEETS(HOJA).CELLS(I, 7).VALUE = VALOR * 1.1 ESTA LINEA EN MAYUSCULAS
    End If
Next I
Sheets(HOJA).Select
End Sub

que es de tu autoria y está muy bien, ademas quiero darle este formato personalisado (NO EN LA MACRO) en 3 a 14 y 18 a 28  "$"* #.##0,00_  para que escriba 35 y me muestre al cambiar el cursor de celda $35 (el simbolo que c vea legal ¿no? C sabe que en USA es $35 en los demas paises no lo se) por mas que lo intente, no hay forma, lo que ESTA y VES es manual sin formato personalisado.

C ageadece tu ayuda

2 respuestas

Respuesta
3

Podría ser de esta manera para actualizar la columna G.

Sub actualiza()
  Dim Hoja As String
  Dim i As Long
  '
  Hoja = "Tabla2"
  Sheets(Hoja).Copy After:=Sheets(2)
  ActiveSheet.Name = "Copia"
  For i = 3 To 27
    Select Case i
      Case 14, 15, 16, 17
      Case Else
        Sheets(Hoja).Cells(i, "G").Value = Sheets(Hoja).Cells(i, "G").Value * 1.1
    End Select
  Next i
  Sheets(Hoja).Select
End Sub

Sheets(Hoja).Cells(i, "G") ---> Aquí puedes indicar la columna "G" es más fácil identificar la columna por la letra que por el número.

Si el resultado lo quieres en la columna 4 ("D"), entonces:

Sheets(Hoja).Cells(i, "D").Value = Sheets(Hoja).Cells(i, "D").Value * 1.1

Pero también puedes utilizar el objeto Range:

Sheets(Hoja).Range("G" & i).Value = Sheets(Hoja).Range("G" & i).Value * 1.1

Si quieres aplicar el formato:

Sub actualiza()
  Dim Hoja As String
  Dim i As Long
  '
  Hoja = "Tabla2"
  Sheets(Hoja).Copy After:=Sheets(2)
  ActiveSheet.Name = "Copia"
  For i = 3 To 27
    Select Case i
      Case 14, 15, 16, 17
      Case Else
        With Sheets(Hoja).Range("G" & i)
          .Value = .Value * 1.1
          .NumberFormat = "$#,##0.00"
        End With
    End Select
  Next i
  Sheets(Hoja).Select
End Sub

Por último, tengo la duda, en cuál hoja quieres los cambios en "Tabla2" o en "Copia"?

En tu macro haces los cambios en la hoja "Tabla2" y así lo dejé en mis propuestas.

Hola Dante.

En Tabla2 tal como está la macro. La hoja Copia es creada al abrir el libro por 1ª ves en el mes que es una copia del contenido de Tabla2 ANTES de darse el cambio Verifica la línea en MAYÚSCULAS para lo que necesito

Sub actualiza()
HOJA = "Tabla2"
Sheets(HOJA).Copy After:=Sheets(2)
ActiveSheet.Name = "Copia"
For I = 3 To 27
    If I = 14 Or I = 15 Or I = 16 Or I = 17 Then
    Else
        VALOR = Sheets(HOJA).Cells(I, 4).Value
        Sheets(HOJA).Cells(I, 4).Value = VALOR * 1.1
Sheets(HOJA).Cells(I, 4).Value = VALOR * 1.1 '¿se puede agregar a esta linea la G también y como?
'o ¿será asi?
SHEETS(HOJA).CELLS(I, 7).VALUE = VALOR * 1.1 ESTA LINEA EN MAYUSCULAS
    End If
Next I
Sheets(HOJA).Select
End Sub

 A esta macro ademas de seguir con la D, solo hay que agregarle la G tambien sin quitarle la D y asi quedar con las 2, D y G con los mismos renglones de celdas y la misma macro.

Gracias Dante

Pero no sé por cuál VALOR se va a multiplicar en tu macro VALOR toma el dato de la columna D, ¿pero para la columna G también debe tomar el dato de la columna D o de la G?

Prueba lo siguiente:

Sub actualiza()
  Dim Hoja As String
  Dim i As Long
  '
  Hoja = "Tabla2"
  Sheets(Hoja).Copy After:=Sheets(2)
  ActiveSheet.Name = "Copia"
  For i = 3 To 27
    Select Case i
      Case 14, 15, 16, 17
      Case Else
        Sheets(Hoja).Cells(i, "D").Value = Sheets(Hoja).Cells(i, "D").Value * 1.1
        Sheets(Hoja).Cells(i, "G").Value = Sheets(Hoja).Cells(i, "G").Value * 1.1
    End Select
  Next i
  Sheets(Hoja).Select
End Sub

Claro, pensé eso, esta la interrugante en la línea que deje en MAYÚSCULAS pero daba errado el resultado pero con el

Select Case

todo va perfecto, SOLO un detalle, el resultado de $3,74 es $4,12 y me pone 4,11, ¿podrias darme la solucion de este detalle? para que coloque lo que es, 4,124612808086197 y asi me pone lo abajo de 5 o si es acima de 5 me colocará 4,13 y quiero que me coloque 4,12  para que coloque el resultado correcto.

El valor es ese, * 1.1 que son los 10% de 3,74

Perfecto

Puedes darme aquí el resultado de lo que te pido extra a la pregunta actual, ¿o en otra pregunta?

Quisiera resultados sin redondearlos. Si el resultado es Ej. 511,12 coloque los 511,12 y no 511,00.

Si es 511,17, no coloque 512,00

¿En esta actual pregunta? ¿O crear nueva?

Lo demás está perfecto

Prueba así:

Sub actualiza()
  Dim Hoja As String
  Dim i As Long
  Dim valor As Double
  '
  Hoja = "Tabla2"
  Sheets(Hoja).Copy After:=Sheets(2)
  ActiveSheet.Name = "Copia"
  For i = 3 To 27
    Select Case i
      Case 14, 15, 16, 17
      Case Else
        valor = (Int((Sheets(Hoja).Cells(i, "D").Value * 1.1) * 100)) / 100
        Sheets(Hoja).Cells(i, "D").Value = valor
        valor = (Int((Sheets(Hoja).Cells(i, "G").Value * 1.1) * 100)) / 100
        Sheets(Hoja).Cells(i, "G").Value = valor
    End Select
  Next i
  Sheets(Hoja).Select
End Sub
Respuesta
1

No comprendo muy bien lo que necesitas realizar, pero si me pudieras dar más detalles, ya que no recuerdo mu bien el proceso que realizas y me puedas enviar tu rarchivo, [email protected].

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas