Formato en Procedimiento Sub.

JIPM

New Member
Joined
Nov 19, 2021
Messages
15
Office Version
  1. 2016
Hola amigos Foristas. Soy nuevo por acá y tengo una duda que quizás ustedes me pueden ayudar.
Tengo este código para sumar los importes según departamentos, y la variable la declaré como Currency, pero yo necesito que se muestre en el ListBox con el siguiente formato: "#, ## 0.00", el problema está en que no se donde colocar el formato.:
'-----------------------------------------------------------------------
VBA Code:
Private Sub Bonificacion_Click ()
Dim I, J As Integer
Atenuar UF As Long
Dim Sx As Boolean
Dim Suma As Currency

Con Hoja9

    UF = .Range ("A" & .Rows.Count) .End (xlUp) .Row
    Me.ListBox3.AddItem
    Me.ListBox3.List (Me.ListBox3.ListCount - 1, 0) = Hoja9.Cells (5, 5)
   
    Suma = Application.WorksheetFunction.SumIf (.Range ("E5: E" & UF), Me.ListBox3.List (Me.ListBox3.ListCount - 1, 0), .Range ("R5: R" & UF))
    Me.ListBox3.List (Me.ListBox3.ListCount - 1, 1) = Suma
   
    Para I = 5 a UF
    Sx = falso
        Para J = 0 Para mí.ListBox3.ListCount - 1
            Si .Cells (I, 5) = Me.ListBox3.List (J, 0) Entonces
                Sx = Verdadero
            Terminara si
        Siguiente J
        Si Sx = Falso entonces
           Me.ListBox3.AddItem
           Me.ListBox3.List (Me.ListBox3.ListCount - 1, 0) = Hoja9.Cells (I, 5)
          
           Suma = Application.WorksheetFunction.SumIf (.Range ("E5: E" & UF), Me.ListBox3.List (Me.ListBox3.ListCount - 1, 0), .Range ("R5: R" & UF))
           Me.ListBox3.List (Me.ListBox3.ListCount - 1, 1) = Suma
          
        Terminara si
    Siguiente yo
Terminar con
End Sub
'------------------------------------------------------------------------------
Gracias de antemano y tengan excelente noche.
Sludos
JIPM
 
Last edited by a moderator:

Excel Facts

Formula for Yesterday
Name Manager, New Name. Yesterday =TODAY()-1. OK. Then, use =YESTERDAY in any cell. Tomorrow could be =TODAY()+1.
Hola JIPM y bienvenido a MrExcel.

El formato debería ir en esta línea:
Me.ListBox3.List (Me.ListBox3.ListCount - 1, 1) = Format(Suma, "$ #,##0.00")

Pero, si me lo permites, te muestro una mejor manera, utilizando Scripting.Dictionary, para crear un índice con los valores de la columna E.

VBA Code:
Private Sub Bonificacion_Click()
  Dim dic As Object
  Dim rng As Range, c As Range
  
  Set dic = CreateObject("Scripting.Dictionary")
  Set rng = Hoja9.Range("E5", Hoja9.Range("E" & Rows.Count).End(3))
  For Each c In rng
    If Not dic.exists(c.Value) Then
      dic(c.Value) = Empty
      With ListBox3
        .AddItem c.Value
        .List(.ListCount - 1, 1) = Format(WorksheetFunction.SumIf(rng, c.Value, rng.Offset(, 13)), "$ #,##0.00")
      End With
    End If
  Next
End Sub
 
Upvote 0
Solution
Buenas noches a todos los miembros de tan prestigioso Foro.
Buenas noches a DanteAmor por su exquisita respuesta. Es verdad que cada día se aprende algo nuevo en esto de las Macros y VBA.
Su respuesta es perfecta y por supuesto que me quedo con su propuesta de código.
Soy nuevo en esto de VBA y hago algunas cosas para poder practicar e ir aprendiendo.
Gracias mil DanteAmor y que tenga una feliz semana.
Gracias al resto de miembros del Foro.
Un abrazo.
JIPM
 
Upvote 0
Encantado de ayudarte, gracias por tus palabras.
Igualmente que tengas una excelente semana!
;)
 
Upvote 0
Encantado de ayudarte, gracias por tus palabras.
Igualmente que tengas una excelente semana!
;)
Buenas noches amigo Dante, Gracias por acudir en mi ayuda. Eres genial. Apenas comienzo en esto de VBA, hace sólo 6 meses escribí mi primer código y esto de trabajar con "Objetos" no es mi fuerte, pero voy aprendiendo. Tengo buenos amigos Mexicanos y ahora sumo una más.
Gracias por todo y nos seguiremos escribiendo.
Un abrazo para usted y su familia.
JIPM
 
Upvote 0
Hola Dante. Estoy teniendo un problema por acá. Tengo dudas en un proyecto que estoy desarrollando y me gustaría que usted o algún miembro del Foro me ayude, pero no me deja subir o adjuntar un archivo .xlsm.
Yo no tengo Ordenador, trabajo con el de un amigo que me da un poco de tiempo a la semana para poder hacer mis cosas y él no quiere que yo le ponga o cambie nada de su Ordenador, incluso le hablé del complemento que ustedes usan para subir imagen e instalárselo en su PC pero no me dejó ...
Hay alguna manera de hacerlo que no sea por esa vía?
Saludos
JIPM
 
Upvote 0
Hola, en este foro no se pueden subir archivos. En estos casos puedes subir tu archivo a un depósito de archivos, puede ser google drive o dropbox. Después de subir el archivo, compartes el archivo, copias el enlace y lo pegas en el foro.
Si el problema que tienes es diferente a este tema, entonces debes crear un nuevo hilo.

Saludos
 
Upvote 0
Hola, en este foro no se pueden subir archivos. En estos casos puedes subir tu archivo a un depósito de archivos, puede ser google drive o dropbox. Después de subir el archivo, compartes el archivo, copias el enlace y lo pegas en el foro.
Si el problema que tienes es diferente a este tema, entonces debes crear un nuevo hilo.

Saludos
Ok hermano, como le expliqué el ordenador no es mío, así que tendré que ir a otro Foro, pero me gustaría este, incluso que usted lo viera, pero si no se puede, pues a cumplir con lo que se establece.
Gracias de todas maneras. Feliz Noche.
JIPM
 
Upvote 0
Entiendo lo del ordenador, pero el archivo no se comparte en el ordenador, se comparte en la nube. Se comparte en un espacio en internet, solamente debes crear una cuenta. De esa manera el archivo queda en internet y no utilizas el ordenador de tu amigo.
También puedes poner aquí ejemplos en imágenes:

1637853829248.png



o puedes copiar y pegar los ejemplos. Algo como esto:

ABCD
1​
Valor
2​
dato
3​
123​
4​
etc
5​
 
Upvote 0

Forum statistics

Threads
1,223,929
Messages
6,175,457
Members
452,643
Latest member
gjcase

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top