Visual Basic - Error 13 en tiempo de ejecución (No coinciden los tipos)

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error 13 en tiempo de ejecución (No coinciden los tipos)

Publicado por Eduardo (7 intervenciones) el 20/09/2018 17:18:58
Hola buen día,

Al correr este código de macro me aparece el error 13 y resalta la parte que puse entre *. La tabla que analiza tiene el formato de fecha, no se si hay que cambiar el formato o por que da el error de tipo



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Sub Paciente()
    Worksheets("Calendario").Select
    ' Configuración de variables de entrada
 
    Dim FiltrarServicio
    Dim FiltrarAnio
 
    FiltrarServicio = Range("C42")
    FiltrarAnio = Range("H42")
 
    Dim FilaServicio As Integer
 
    ColumnaServicio = 1
 
 
    If Range("C42") <> "" Then
            ' Determina de donde va a extraer los Datos
        Worksheets("Paciente").Select
       Worksheets("Paciente").ListObjects("DiaPaciente").DataBodyRange.Select
 
        'Configuracion de escritura en el calendario
        Dim FilaInicial As Variant
            FilaInicial = Array(7, 13, 18, 23, 28, 33, 38)
        Dim ColumnaInicial As Integer
            ColumnaInicial = 2
 
        Dim contador
        contado = 1
 
        ' Crea un arreglo para almacenar los valores de todo el calendario
        Dim A(12, 31) As Integer
 
        ' Recoore toda la tabla
        For Each Table In Selection.Rows
 
****************** dia = Day(Table.Cells(1))
                          mes = Month(Table.Cells(1))
                          anio = Year(Table.Cells(1)) ****************
 
            ' Verifica si los valores coinciden, aumenta el contador del arreglo
            If (Table.Cells(ColumnaServicio) = FiltrarServicio) And (anio = FiltrarAnio) Then
            A(mes, dia) = A(mes, dia) + 1
                If (anio = 2017 And mes = 2) Then
                    ' MsgBox A(mes, dia) & " - " & dia & " " & mes & " " & anio & " " & Table.Cells(ColumnaCampus) & " " & Table.Cells(ColumnaQuirofano)
                End If
            End If
 
        Next
 
        ' Se posiciona en la hoja del reporte
        Hoja1.Select
 
        ' Recorre y establece en el calendario
        For Meses = 1 To 12
            primerdia = DateSerial(Cells(3, 31), Meses, 1)
            ultimoDia = DateSerial(Cells(3, 31), Meses + 1, 0)
            ' MsgBox primerDia & " - " & Weekday(primerDia) - 1 & " - " & ultimoDia & " - " & Day(ultimoDia)
            For Dias = 1 To Day(ultimoDia)
            ' Variables de posisión para escritura
                Fila = FilaInicial(Meses)
                columna = ColumnaInicial + (Dias - 1) + (Weekday(primerdia) - 1)
                ' MsgBox Meses & " - " & Dias & " : " & Fila & " - " & columna & " Valor: " & A(Meses, Dias)
                Cells(Fila, columna) = A(Meses, Dias)
            Next
        Next
    Else
    MsgBox "Error"
    End If
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.950
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error 13 en tiempo de ejecución (No coinciden los tipos)

Publicado por Andres Leonardo (1714 intervenciones) el 20/09/2018 20:31:37
Puede ser por que le estas diciendo que la variable dia que no esta declarada le vas a dar un valor de la funcion DAYde la celda de la tabla pero no estas poniendo que sea el VALOR

1
2
3
dia = Day(Table.Cells(1).value)
mes = Month(Table.Cells(1).value)
anio = Year(Table.Cells(1).value)

Otra manera es hacer un debug.print o msgbox del contenido de Day(Table.Cells(1).value) para ver que tienes y si lo puedes asignar a dia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar