Enviar decimales de listbox a hoja de exel
Soy nuevo en este tema, y estoy trababajando en un archivo que fui adaptando de distintos expertos en la red. Se trata de un listbox al cual cuando paso los datos a una hoja me pasa como enteros los decimales ya he probado distintas formatos desde vba y no me coincide lo que muestra el listbox con dato copiado en hoja. Ayuda
2 Respuestas
Intente con Val como este ejemplo
Val(ListBox1.List(i, 1))
Buenas tardes Dante, primero muchas gracias por tu atención, mira he probado lo arriba descrito y me da error, no alcanza a correr el formulario. reduje el archivo para poder subirlo sin problemas, la idea seria que los valores del Reporte tome el mismo formato (decimal) que la hoja Datos para que pueda realizar el gráfico desde VBA ya definido, el tema es que si el numero es 0,xxxx lo toma bien pero si es 1,XXXXX escribe otro formato, llevo tiempo ya probando distintos Format y lo que se escribe bien en hoja reporte se ve mal en listbox y viceversa.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
On Error GoTo Fin
If CloseMode <> 1 Then Cancel = True
Fin:
End Sub
Public Sub UserForm_Initialize()
Application.DisplayAlerts = False
Application.ScreenUpdating = True
End Sub
Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, "dd/mm/yyYY")
End Sub
Private Sub TextBox3_AfterUpdate()
TextBox3 = Format(TextBox3, "dd/mm/yy")
End Sub
Private Sub buscar_Click()
Sheets("Datos").Unprotect "lolita2020"
Sheets("Datos").Range("EH15") = Nmedidor.Text
If Trim(Nmedidor.Text) = "" Then
MsgBox "Seleccione un medidor", vbExclamation, "AVISO"
Nmedidor.SetFocus
Exit Sub
ElseIf Trim(Nmedidor.Text) < 1 Then
MsgBox "Seleccione un medidor del 1 al 4", vbInformation, "AVISO"
Nmedidor = ""
Nmedidor.SetFocus
Exit Sub
ElseIf Trim(Nmedidor.Text) > 4 Then
MsgBox "Seleccione un medidor del 1 al 4", vbInformation, "AVISO"
Nmedidor = ""
Nmedidor.SetFocus
Exit Sub
End If
ThisWorkbook.Sheets("Datos").activate
Sheets("Datos").Unprotect "lolita2020"
Sheets("Datos").Range("FD10") = Nmedidor.Text
If Trim(Nmedidor.Text) = 1 Then
On Error Resume Next
Set b = Sheets("Datos")
uf = b.Range("EH" & Rows.Count).End(xlUp).Row
dato1 = CDate(TextBox2)
dato2 = CDate(TextBox3)
If dato2 = Empty Or dato1 = emtpy Then
MsgBox ("Debe ingresar datos para consulta entre rango de fechas"), vbCritical, "AVISO"
Exit Sub
End If
If dato2 < dato1 Then
MsgBox ("La fecha final no puede ser mayor a la fecha inicial"), vbCritical, "AVISO"
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox1 = Clear
Me.ListBox1.RowSource = Clear
'Adiciona un item al listbox reservado para la cabecera
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
For i = 21 To uf
dato0 = CDate(b.Cells(i, 138).Value)
If dato0 >= dato1 And dato0 <= dato2 Then
Me.ListBox1.AddItem b.Cells(i, 138) ' Fecha
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = b.Cells(i, 137) ' Reporte
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = b.Cells(i, 144) ' Meter Factor
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = b.Cells(i, 143) ' Densidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = b.Cells(i, 162) ' Advertencia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = b.Cells(i, 163) ' Advertencia Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = b.Cells(i, 164) ' Accion Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = b.Cells(i, 165) ' Accion Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = b.Cells(i, 166) ' Tolerancia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = b.Cells(i, 167) ' Tolerancia Inf
' #.0.0000
ListBox1.List(ListBox1.ListCount - 1, 2) = Format(ListBox1.List(ListBox1.ListCount - 1, 2), " #.00000")
ListBox1.List(ListBox1.ListCount - 1, 4) = Format(ListBox1.List(ListBox1.ListCount - 1, 4), "#.00000")
ListBox1.List(ListBox1.ListCount - 1, 5) = Format(ListBox1.List(ListBox1.ListCount - 1, 5), "#.00000")
ListBox1.List(ListBox1.ListCount - 1, 6) = Format(ListBox1.List(ListBox1.ListCount - 1, 6), "#.00000")
ListBox1.List(ListBox1.ListCount - 1, 7) = Format(ListBox1.List(ListBox1.ListCount - 1, 7), "#.00000")
ListBox1.List(ListBox1.ListCount - 1, 8) = Format(ListBox1.List(ListBox1.ListCount - 1, 8), "#.00000")
ListBox1.List(ListBox1.ListCount - 1, 9) = Format(ListBox1.List(ListBox1.ListCount - 1, 9), "#.00000")
Me.ListBox1.RowSource = True
End If
Next i
ElseIf Trim(Nmedidor.Text) = 2 Then
On Error Resume Next
Set b = Sheets("Datos")
uf = b.Range("FV" & Rows.Count).End(xlUp).Row
dato1 = CDate(TextBox2)
dato2 = CDate(TextBox3)
If dato2 = Empty Or dato1 = emtpy Then
MsgBox ("Debe ingresar datos para consulta entre rango de fechas"), vbCritical, "AVISO"
Exit Sub
End If
If dato2 < dato1 Then
MsgBox ("La fecha final no puede ser mayor a la fecha inicial"), vbCritical, "AVISO"
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox1 = Clear
Me.ListBox1.RowSource = Clear
'Adiciona un item al listbox reservado para la cabecera
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
For i = 21 To uf
dato0 = CDate(b.Cells(i, 178).Value)
If dato0 >= dato1 And dato0 <= dato2 Then
Me.ListBox1.AddItem b.Cells(i, 178) ' Fecha
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = b.Cells(i, 177) ' Reporte
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = b.Cells(i, 184) ' Meter Factor
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = b.Cells(i, 183) ' densidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = b.Cells(i, 202) ' Advertencia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = b.Cells(i, 203) ' Advertencia Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = b.Cells(i, 204) ' Accion Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = b.Cells(i, 205) ' Accion Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = b.Cells(i, 206) ' Tolerancia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = b.Cells(i, 207) ' Tolerancia Inf
ListBox1.List(ListBox1.ListCount - 1, 4) = Format(ListBox1.List(ListBox1.ListCount - 1, 4), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 5) = Format(ListBox1.List(ListBox1.ListCount - 1, 5), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 6) = Format(ListBox1.List(ListBox1.ListCount - 1, 6), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 7) = Format(ListBox1.List(ListBox1.ListCount - 1, 7), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 8) = Format(ListBox1.List(ListBox1.ListCount - 1, 8), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 9) = Format(ListBox1.List(ListBox1.ListCount - 1, 9), "0.00000")
Me.ListBox1.RowSource = True
End If
Next i
ElseIf Trim(Nmedidor.Text) = 3 Then
On Error Resume Next
Set b = Sheets("Datos")
uf = b.Range("IH" & Rows.Count).End(xlUp).Row
dato1 = CDate(TextBox2)
dato2 = CDate(TextBox3)
If dato2 = Empty Or dato1 = emtpy Then
MsgBox ("Debe ingresar datos para consulta entre rango de fechas"), vbCritical, "AVISO"
Exit Sub
End If
If dato2 < dato1 Then
MsgBox ("La fecha final no puede ser mayor a la fecha inicial"), vbCritical, "AVISO"
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox1 = Clear
Me.ListBox1.RowSource = Clear
'Adiciona un item al listbox reservado para la cabecera
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
For i = 21 To uf
dato0 = CDate(b.Cells(i, 217).Value)
If dato0 >= dato1 And dato0 <= dato2 Then
Me.ListBox1.AddItem b.Cells(i, 217) ' Fecha
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = b.Cells(i, 216) ' Reporte
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = b.Cells(i, 223) ' Meter Factor
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = b.Cells(i, 222) ' Densidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = b.Cells(i, 241) ' Advertencia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = b.Cells(i, 242) ' Advertencia Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = b.Cells(i, 243) ' Accion Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = b.Cells(i, 244) ' Accion Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = b.Cells(i, 245) ' Tolerancia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = b.Cells(i, 246) ' Tolerancia Inf
ListBox1.List(ListBox1.ListCount - 1, 4) = Format(ListBox1.List(ListBox1.ListCount - 1, 4), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 5) = Format(ListBox1.List(ListBox1.ListCount - 1, 5), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 6) = Format(ListBox1.List(ListBox1.ListCount - 1, 6), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 7) = Format(ListBox1.List(ListBox1.ListCount - 1, 7), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 8) = Format(ListBox1.List(ListBox1.ListCount - 1, 8), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 9) = Format(ListBox1.List(ListBox1.ListCount - 1, 9), "0.00000")
Me.ListBox1.RowSource = True
End If
Next i
ElseIf Trim(Nmedidor.Text) = 4 Then
On Error Resume Next
Set b = Sheets("Datos")
uf = b.Range("IV" & Rows.Count).End(xlUp).Row
dato1 = CDate(TextBox2)
dato2 = CDate(TextBox3)
If dato2 = Empty Or dato1 = emtpy Then
MsgBox ("Debe ingresar datos para consulta entre rango de fechas"), vbCritical, "AVISO"
Exit Sub
End If
If dato2 < dato1 Then
MsgBox ("La fecha final no puede ser mayor a la fecha inicial"), vbCritical, "AVISO"
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox1 = Clear
Me.ListBox1.RowSource = Clear
'Adiciona un item al listbox reservado para la cabecera
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
For i = 21 To uf
dato0 = CDate(b.Cells(i, 256).Value)
If dato0 >= dato1 And dato0 <= dato2 Then
Me.ListBox1.AddItem b.Cells(i, 256) ' Fecha
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = b.Cells(i, 255) ' Reporte
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = b.Cells(i, 261) ' Meter Factor
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = b.Cells(i, 280) ' Densidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = b.Cells(i, 281) ' Advertencia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = b.Cells(i, 282) ' Advertencia Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = b.Cells(i, 283) ' Accion Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = b.Cells(i, 284) ' Accion Inf
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = b.Cells(i, 285) ' Tolerancia Sup
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = b.Cells(i, 262) ' Tolerancia Inf
ListBox1.List(ListBox1.ListCount - 1, 4) = Format(ListBox1.List(ListBox1.ListCount - 1, 4), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 5) = Format(ListBox1.List(ListBox1.ListCount - 1, 5), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 6) = Format(ListBox1.List(ListBox1.ListCount - 1, 6), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 7) = Format(ListBox1.List(ListBox1.ListCount - 1, 7), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 8) = Format(ListBox1.List(ListBox1.ListCount - 1, 8), "0.00000")
ListBox1.List(ListBox1.ListCount - 1, 9) = Format(ListBox1.List(ListBox1.ListCount - 1, 9), "0.00000")
Me.ListBox1.RowSource = True
End If
Next i
End If
'Carga los datos de la cabecera en listbox
For ii = 0 To 10
InfoCarta.ListBox1.List(0, ii) = Sheets("Datos").Cells(10, ii + 62)
Next ii
'Carga registra y suma columnas en listbox
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.AddItem
InfoCarta.ListBox1.List(InfoCarta.ListBox1.ListCount - 5, 0) = "Total Reportes :"
'funciones matematicas
Dim tot As Single
For x = 0 To InfoCarta.ListBox1.ListCount - 1
t = CDec(InfoCarta.ListBox1.List(x, 2))
tot = tot + t
t = 0
Next x
InfoCarta.ListBox1.List(InfoCarta.ListBox1.ListCount - 5, 1) = InfoCarta.ListBox1.ListCount - 9
Me.ListBox1.ColumnWidths = "100 pt;70 pt;90 pt;90 pt;100 pt;100 pt;100pt;100 pt;100 pt;100 pt"
Sheets("Datos").Protect "lolita2020"
End Sub
Public Sub Graficar_Click()
On Error Resume Next
If ListBox1.ListCount = 0 Then
MsgBox ("Complete rangos de busqueda y luego Pulse la opcion buscar"), vbCritical, "AVISO"
Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
End If
'Elimina hoja y crea hoja dando el mismo nombre que la eliminada
Sheets("Reporte").Delete
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Reporte"
Set a = Sheets("Reporte")
For x = 1 To InfoCarta.ListBox1.ListCount - 7
a.Cells(x + 2, "B") = CDate(ListBox1.List(x, 0))
a.Cells(x + 2, "C") = ListBox1.List(x, 1)
a.Cells(x + 2, "D") = ListBox1.List(x, 2)
a.Cells(x + 2, "E") = ListBox1.List(x, 3)
a.Cells(x + 2, "F") = ListBox1.List(x, 4)
a.Cells(x + 2, "G") = ListBox1.List(x, 5)
a.Cells(x + 2, "H") = ListBox1.List(x, 6)
a.Cells(x + 2, "I") = ListBox1.List(x, 7)
a.Cells(x + 2, "J") = ListBox1.List(x, 8)
a.Cells(x + 2, "K") = ListBox1.List(x, 9)
Next
a.Cells(x + 3, "B") = ListBox1.List(x + 1, 0)
a.Cells(x + 3, "C") = ListBox1.List(x + 1, 1)
Dim comp As String
comp = Sheets("Datos").Range("F3")
med = Sheets("Datos").Range("EH15")
a.activate
a.Range("B1") = "CARTA DE CONTROL:" & " " & " Medidor Nª:" & med & " " & comp
a.Range("B2") = "Fecha"
a.Range("C2") = "Reporte"
a.Range("D2") = "Meter Factor"
a.Range("E2") = "Densidad(Kg/cm³)"
a.Range("F2") = "Advertencia Sup."
a.Range("G2") = "Advertencia Inf."
a.Range("H2") = "Accion Sup."
a.Range("I2") = "Accion Inf."
a.Range("J2") = "Tolerancia Sup."
a.Range("K2") = "Tolerancia Inf."
uf = a.Range("G" & Rows.Count).End(xlUp).Row
a.Range("B2:B" & uf).NumberFormat = "mm/dd/yy"
a.Range ("C2:C" & uf)
a.Range ("D2:D" & uf)
a.Range ("E2:E" & uf) '.NumberFormat = "000.0"
a.Range ("F2:F" & uf)
a.Range ("G2:G" & uf)
a.Range ("H2:H" & uf)
a.Range ("I2:I" & uf)
a.Range ("J2:J" & uf)
a.Range ("K2:K" & uf)
a.Range("B:K").ColumnWidth = 16
a.Range("B:K").HorizontalAlignment = xlCenter
'
'
''**********************************************************
Fila_Final = Range("B" & Cells.Rows.Count).End(xlUp).Row
Range("B4:K" & Fila_Final).Select
Dim celda As Range
For Each celda In selection
If Not IsNumeric(celda.Value) Then
celda.Value = WorksheetFunction.Trim(celda.Value)
ElseIf TypeName(celda.Value) = "String" Then
celda.Value = celda.Value + 1 - 1
End If
Next celda
''**********************************************************
With a.Range("B2:K" & uf)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).Weight = xlThin
End With
With a.Range("B2:K" & uf)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlMedium
End With
With a.Range("B" & uf + 3 & ":C" & uf + 3)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlMedium
End With
With a.Range("B1:K1")
.Merge
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.RowHeight = 75
.Font.Size = 16
.Font.Bold = True
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlMedium
End With
'Inserta una foto
path1 = ActiveWorkbook.Path & "\logo.jpg"
Set ran = a.Cells(1, 2)
Set imag = a.Pictures.Insert(path1)
With imag
.Top = 0
.Left = 100
End With
Unload Me
'Graficar
Dim xData As Range
Dim YData1 As Range
Dim yData As Range
Dim serName As Range
'establecer los rangos para obtener los datos y la etiqueta de valor y
Set xData = Range("C4", Range("C4").End(xlDown))
Set yData = Range("D4", Range("D4").End(xlDown))
Set serName = Range("B1")
'obtener referencia a hoja activa
Dim sht As Worksheet
Set sht = ActiveSheet
'crea un nuevo Objecto en la posición (28, 195) con ancho 450 y altura 250
Dim chtObj As ChartObject
Range("B1000").End(xlUp).Offset(3, 1).activate
Set chtObj = ActiveSheet.ChartObjects.Add(Left:=ActiveCell.Left, Width:=810, Top:=ActiveCell.Top, Height:=300)
'obtener referencia al objeto gráfico
Dim cht As Chart
Set cht = chtObj.Chart
' crear la nueva serie
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
ser.Values = yData
ser.XValues = xData
ser.Name = Range("D2")
ser.ChartType = xlLine
cht.Axes(xlValue).MinimumScale = Worksheets("Datos").Range("EH13")
cht.Axes(xlValue).MaximumScale = Worksheets("Datos").Range("EH14")
cht.Axes(xlValue).TickLabels.NumberFormat = "0,00000"
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("F2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("F4:F" & Range("F" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(2).AxisGroup = xlPrimary
cht.SeriesCollection(2).ChartType = xlLine
cht.SeriesCollection(2).Format.Line.DashStyle = msoLineDashDot
cht.SeriesCollection(2).Format.Line.ForeColor.RGB = &H8000&
End With
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("G2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("G4:G" & Range("G" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(3).AxisGroup = xlPrimary
cht.SeriesCollection(3).ChartType = xlLine
cht.SeriesCollection(3).Format.Line.DashStyle = msoLineDashDot
cht.SeriesCollection(3).Format.Line.ForeColor.RGB = &H8000&
End With
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("H2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("H4:H" & Range("H" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(4).AxisGroup = xlPrimary
cht.SeriesCollection(4).ChartType = xlLine
cht.SeriesCollection(4).Format.Line.DashStyle = msoLineDashDot
cht.SeriesCollection(4).Format.Line.ForeColor.RGB = &HFFFF&
End With
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("I2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("I4:I" & Range("I" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(5).AxisGroup = xlPrimary
cht.SeriesCollection(5).ChartType = xlLine
cht.SeriesCollection(5).Format.Line.DashStyle = msoLineDashDot
cht.SeriesCollection(5).Format.Line.ForeColor.RGB = &HFFFF&
End With
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("J2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("J4:J" & Range("J" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(6).AxisGroup = xlPrimary
cht.SeriesCollection(6).ChartType = xlLine
cht.SeriesCollection(6).Format.Line.DashStyle = msoLineDashDot
cht.SeriesCollection(6).Format.Line.ForeColor.RGB = &HFF&
End With
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("K2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("K4:K" & Range("K" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(7).AxisGroup = xlPrimary
cht.SeriesCollection(7).ChartType = xlLine
cht.SeriesCollection(7).Format.Line.DashStyle = msoLineDashDot
cht.SeriesCollection(7).Format.Line.ForeColor.RGB = &HFF&
End With
cht.SeriesCollection.NewSeries.Select
With selection
.Name = Range("E2").Value
.XValues = Range("C4", Range("C4").End(xlDown))
.Values = Range("E4:E" & Range("E" & Rows.Count).End(xlUp).Row)
cht.SeriesCollection(8).AxisGroup = xlSecondary
cht.SeriesCollection(8).ChartType = xlColumnClustered
cht.SeriesCollection(8).Format.Fill.ForeColor.RGB = RGB(192, 192, 192)
End With
ser.ChartType = xlLine
'*************************************************************************************************
Fila_Final = Range("D" & Cells.Rows.Count).End(xlUp).Row
Range("D4:D" & Fila_Final).NumberFormat = "0,0000"
'Cells(filaEXCEL, 1).Value = Replace(ListBoxfacturas.List(x, 0), ".", "") 'n°fact
'activate = [INDEX((Activate/2),)]
'Fila_Final = Range("F" & Cells.Rows.Count).End(xlUp).Row
'Range("F4:K" & Fila_Final).Select
'***************************************************************************************************
ActiveWorkbook.Save
'Unload Me
Application.DisplayAlerts = False
Application.ScreenUpdating = True
'Call InfReporte
End Sub
Disculpa por responder aun cuando la pregunta no es para mi pero lo que se observa en su macro, no esta haciéndolo como se le sugirió.
Tampoco menciona en que línea de su código tiene el problema, por lo que se observa en su macro, una de las líneas de código que pongo como ejemplo que quizá es donde tenga el problema.
2 opciones que se le sugirió: Cdbl(ListBox1. List(i, 1)) Val(ListBox1.List(i, 1)) 'Adaptado a una de sus lineas de código: ListBox1. List(ListBox1.ListCount - 1, 4) = Val(ListBox1. List(ListBox1.ListCount - 1, 4)) ListBox1. List(ListBox1.ListCount - 1, 4) = CDbl(ListBox1. List(ListBox1.ListCount - 1, 4))
- Compartir respuesta
Prueba también con lo siguiente:
Cdbl(ListBox1. List(i, 1))
Si no te funcionan las opciones, podrías poner un ejemplo de cómo tienes el dato en el listbox y cómo debería quedar en la hoja.
También pon aquí el código que estás utilizando para poner los datos en la hoja.
Para insertar código, utiliza lo siguiente:
- Compartir respuesta