Visual Basic.NET - ¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

 
Vista:
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 26/09/2020 11:13:26
Hola, buenos días, estoy intentando seleccionar un rango de celdas en Excel a partir del valor de una de ellas y me salta error. Mi código para selecionar el rango es:
1
Dim objRango As Excel.Range = exHoja.Range(exHoja.Cells.Value = (fecha_tb.Text), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count))
¿Me puede decir alguien como puedo hacerlo?. Gracias.
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 Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 26/09/2020 12:39:56
Hola José,

No comprendo exHoja.Range(exHoja.Cells.Value = (fecha_tb.Text), ....

Quieres encontrar las celdas que contienen el mismo valor que fecha_tb.Text ?
Y estas celdas deban ser en una zona conocida, por ejemplo ("A10:B20") o una columna o una linea ?

..
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 26/09/2020 12:46:07
Hola, lo que quiero es seleccionar el rango que va desde la celda con la fecha que yo le pase hasta el final.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 26/09/2020 18:32:13
Hola,

No tengo la repuesta a tu pregunta pero tengo varios herramientas que podrían te servir.

Mira la vidéo : https://www.dropbox.com/s/5m8gej3pjjxctxq/SeleccionXLS.mp4?dl=0

Adjunto mi proyecto de pruebas. Para lo testar, tienes que ejecutar el Form3 y cambiar la ruta del fichero.



Form3
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 26/09/2020 19:16:09
Gracias por tu tiempo pero lo que yo necesito es poder seleccionar un rango de celdas a partir de una fecha para poder crear una hoja nueva.
Tengo un MonthCalendar y allí seleciono una fecha que será la celda superior izquierda de mi nueva hoja que acabará en la última celda de la hoja.
No sé si me he explicado bien, te paso el código que tengo que no funciona bien.
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
 
    Dim exApp As New Microsoft.Office.Interop.Excel.Application
 
    Dim exLibro As Excel.Workbook
    Dim exHoja As Excel.Worksheet
 
    exLibro = Aplicacion.Workbooks.Open(archivo)
    exHoja = exLibro.Worksheets("Histórico tensión")
 
    exApp.Visible = True
 
 
    Try
 
        fecha_tb.Text = Format(CStr(Me.MonthCalendar1.SelectionRange.Start), "Short Date")
 
        Dim celda As Excel.XlCellType
        Dim dia As String = fecha_tb.Text
 
        If exHoja.Cells.Value = dia Then
 
            celda = dia
 
        End If
 
        Dim objRango As Excel.Range = exHoja.Range(exHoja.UsedRange.Cells.Value = (celda), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count))
 
        exHoja.PageSetup.PrintTitleRows = exHoja.Rows(1).Address 'PONEMOS LA FILA DE ENCABEZADO EN TODAS LAS HOJAS IMPRESAS
        exHoja.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4 'TAMAÑO DE PAPEL A4
        exHoja.Name = "Tensión mes"
        exHoja.Rows.Item(1).Font.Bold = 1 'NEGRITA
        exHoja.Rows.Item(1).Font.ColorIndex = 49 'COLOR DEL ENCABEZADO
        exHoja.Rows.Item(1).HorizontalAlignment = 3 'ALINEADO DEL ENCABEZADO
 
        objRango.HorizontalAlignment = 3 'ALINEADO DE LAS COLUMNAS
 
        exHoja.Range("A1").Value = "   FECHA   "
        exHoja.Range("B1").Value = "  SISTÓLICA  "
        exHoja.Range("C1").Value = "  DIASTÓLICA  "
        exHoja.Range("D1").Value = "  PULSACIONES  "
        exHoja.Range("E1").Value = "  SATURACIÓN  "
        exHoja.Range("A1:E1").Cells.Interior.Color = Color.Cyan
 
        objRango.Borders.LineStyle = 1 'BORDES DE LA HOJA
 
        exHoja.Rows.Font.Size = 12 ' TAMAÑO DE LA FUENTE
        exHoja.Rows.Font.Name = "Adobe Garamond Pro Bold" 'TIPO DE FUENTE
        exHoja.Columns.AutoFit() 'AJUSTE DE LAS COLUMNAS
 
        exHoja.Range("A2:A1048576").Font.ColorIndex = 5 'COLOR DE LA FUENTE DE LA COLUMNA DE FECHAS
 
        'COMPROBAMOS SI EXISTE EL FICHERO Y LO SOBRESCRIBIMOS SI ES ASÍ
        'MOSTRAMOS EL MESSAGE BOX
 
        Dim Message As String = "¿GUARDAR EL MES SELECCIONADO?"
        Dim Caption As String = "OPCIÓN DE GUARDAR"
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.YesNo
 
        Dim Result As DialogResult
 
        Result = MessageBox.Show(Message, Caption, Buttons)
 
        exApp.ActiveWindow.WindowState = Excel.XlWindowState.xlMaximized
 
        'RESULTADO DE LA OPCIÓN AFIRMATIVA
 
        If Result = System.Windows.Forms.DialogResult.Yes Then
 
            If System.IO.File.Exists(archivo_ltl) = True Then
 
                'SI EL ARCHIVO EXISTE LO BORRAMOS Y GUARDAMOS EL NUEVO
 
                System.IO.File.Delete(archivo_ltl)
                exLibro.SaveAs(archivo_ltl)
 
            Else
 
                'SI NO EXISTE LO GUARDAMOS
 
                exLibro.SaveAs(archivo_ltl)
 
            End If
 
        Else
 
            System.IO.File.OpenRead(archivo_ltl)
 
        End If
 
        exApp.Application.Visible = True
 
        exHoja = Nothing
        exLibro = Nothing
        exApp = Nothing
 
    Catch ex As Exception
 
        MessageBox.Show(ex.Message, "ERROR AL EXPORTAR A EXCEL", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
    End Try
 
End Sub
Espero que me haya hecho entender. Gracias por tu tiempo mon ami.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 27/09/2020 07:37:35
Hola José,

Como lo digo en mi mensaje anterior, no tengo solución para este problema. Conozco los códigos para XLS solamente un poco y no tengo tiempo para aprender ahora.

Esperaba que mis códigos de ayer te darían algunas buenas ideas.

Por lo siento. Espero que alguien podare te ayudar ...

Bon dimanche,

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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 27/09/2020 11:22:18
Gracias, mon ami, pas de problem.
Tengo un problema al intentar probar lo que estoy haciendo, me da el error:
System.NullReferenceException: 'Referencia a objeto no establecida como instancia de un objeto.'

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Imports System.String
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
 
Public Class imprimir_mes
 
Public archivo As String = "D:\Documentos\Escaneados\Informe_medico_infarto_2019\Tensión\Historico tension.xlsx"
Public archivo_ltl As String = "D:\Documentos\Escaneados\Informe_medico_infarto_2019\Tensión\Historico tension mes.xlsx"
 
Public exApp As New Microsoft.Office.Interop.Excel.Application
Public exLibro As Workbook
Public exHoja As Worksheet
 
Public Aplicacion As Excel.Application
Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
 
    System.IO.File.OpenRead(archivo)
    exHoja = exLibro.Worksheets("Histórico tensión")  'AQUÍ ES DONDE ME DA EL ERROR
    exApp.Visible = True
 
    Try
 
        exLibro = exApp.Workbooks.Add
        exHoja = exApp.Sheets(1)
 
        fecha_tb.Text = Format(CStr(Me.MonthCalendar1.SelectionRange.Start), "Short Date")
 
        Dim celda As Excel.XlCellType
        Dim rango As Excel.XlRangeValueDataType
        Dim busca As Object
        Dim dia As String = fecha_tb.Text
 
        rango = exHoja.Cells((2, 1), exHoja.Cells(exHoja.UsedRange.Rows.Count))
        busca = exHoja.Range(rango).Find(dia)
        celda = busca
 
        Dim objRango As Excel.Range = exHoja.Range(exHoja.UsedRange.Cells.Value = (celda), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count))
 
        exHoja.PageSetup.PrintTitleRows = exHoja.Rows(1).Address 'PONEMOS LA FILA DE ENCABEZADO EN TODAS LAS HOJAS IMPRESAS
        exHoja.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4 'TAMAÑO DE PAPEL A4
        exHoja.Name = "Tensión mes"
        exHoja.Rows.Item(1).Font.Bold = 1 'NEGRITA
        exHoja.Rows.Item(1).Font.ColorIndex = 49 'COLOR DEL ENCABEZADO
        exHoja.Rows.Item(1).HorizontalAlignment = 3 'ALINEADO DEL ENCABEZADO
 
        objRango.HorizontalAlignment = 3 'ALINEADO DE LAS COLUMNAS
 
        exHoja.Range("A1").Value = "   FECHA   "
        exHoja.Range("B1").Value = "  SISTÓLICA  "
        exHoja.Range("C1").Value = "  DIASTÓLICA  "
        exHoja.Range("D1").Value = "  PULSACIONES  "
        exHoja.Range("E1").Value = "  SATURACIÓN  "
        exHoja.Range("A1:E1").Cells.Interior.Color = Color.Cyan
 
        objRango.Borders.LineStyle = 1 'BORDES DE LA HOJA
 
        exHoja.Rows.Font.Size = 12 ' TAMAÑO DE LA FUENTE
        exHoja.Rows.Font.Name = "Adobe Garamond Pro Bold" 'TIPO DE FUENTE
        exHoja.Columns.AutoFit() 'AJUSTE DE LAS COLUMNAS
 
        exHoja.Range("A2:A1048576").Font.ColorIndex = 5 'COLOR DE LA FUENTE DE LA COLUMNA DE FECHAS
 
        'COMPROBAMOS SI EXISTE EL FICHERO Y LO SOBRESCRIBIMOS SI ES ASÍ
        'MOSTRAMOS EL MESSAGE BOX
 
        Dim Message As String = "¿GUARDAR EL MES SELECCIONADO?"
        Dim Caption As String = "OPCIÓN DE GUARDAR"
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.YesNo
 
        Dim Result As DialogResult
 
        Result = MessageBox.Show(Message, Caption, Buttons)
 
        exApp.ActiveWindow.WindowState = Excel.XlWindowState.xlMaximized
 
        'RESULTADO DE LA OPCIÓN AFIRMATIVA
 
        If Result = System.Windows.Forms.DialogResult.Yes Then
 
            If System.IO.File.Exists(archivo_ltl) = True Then
 
                'SI EL ARCHIVO EXISTE LO BORRAMOS Y GUARDAMOS EL NUEVO
 
                System.IO.File.Delete(archivo_ltl)
                exLibro.SaveAs(archivo_ltl)
 
            Else
 
                'SI NO EXISTE LO GUARDAMOS
 
                exLibro.SaveAs(archivo_ltl)
 
            End If
 
        Else
 
            System.IO.File.OpenRead(archivo_ltl)
 
        End If
 
        exApp.Application.Visible = True
 
        exHoja = Nothing
        exLibro = Nothing
        exApp = Nothing
 
    Catch ex As Exception
 
        MessageBox.Show(ex.Message, "ERROR AL EXPORTAR A EXCEL", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
    End Try
 
End Sub
He hecho un monton de pruebas para intentar arreglarlo pero no lo puedo solucionar. ¿Puedes ayudarme? Merci beaucoup
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 27/09/2020 14:29:24
Intenta este código para trabajar con XLS :

1
2
3
4
XLSAPP = New Excel.Application
XLSAPP.Visible = True
XLSAPP.Workbooks.Open(TBXlsInicial.Text)
XLSAPP.Sheets(1).Select()

o con tus nombres :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public exApp As New Microsoft.Office.Interop.Excel.Application
Public exLibro As Workbook
Public exHoja As Worksheet
 
 '    !!!!!!!!!    Public Aplicacion As Excel.Application    !!!!!!!!!!!! No necesario
Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
 
 '    !!!!!!!!!    System.IO.File.OpenRead(archivo)    !!!!!!!!!!!! No necesario
 '   exHoja = exLibro.Worksheets("Histórico tensión")  'Yo, no utilizo este                   AQUÍ ES DONDE ME DA EL ERROR
 
        exApp.Workbooks.Open(archivo)
        exApp.Sheets(1).Select()
    exApp.Visible = True
 
' ... ... ...
' y desde esta, todo trabajar con exApp

Mira los códigos que te he enviado, funcionan.

...

Nota : "UsedRange" no conocido en mi sistema ...
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 27/09/2020 14:46:20
Merci beaucoup, me pongo a ello.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 27/09/2020 15:32:11
Rápidamente ...

Este es tu código corregido (cuidado, si tomas el código, tiens que cambiar el ruta y nombre de los "archivos") :

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Imports Microsoft.Office.Interop
 
Public Class imprimir_mes 'imprimir_mes
 
    Public archivo As String = "D:\Tmp\ProbExcel_DGV_XLS\Tension\Test.xlsx"   '***********************
    Public archivo_ltl As String = "D:\Tmp\ProbExcel_DGV_XLS\Tension\Historico tension mes.xlsx"   '***********************
 
    Public exApp As Excel.Application   ' !!!  no NEW aqui
 
    Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
 
        exApp = New Excel.Application   ' Aqui es el NEW
        exApp.Workbooks.Open(archivo)
        exApp.Sheets(1).Select()
        exApp.Visible = True
 
        Try
 
            fecha_tb.Text = Format(CStr(Me.MonthCalendar1.SelectionRange.Start), "Short Date")
 
            Dim celda As Excel.XlCellType
            Dim rango As Excel.XlRangeValueDataType
            Dim busca As Object
            Dim dia As String = fecha_tb.Text
 
            rango = exApp.Cells((2, 1), exApp.Cells(exApp.UsedRange.Rows.Count))
            busca = exApp.Range(rango).Find(dia)
            celda = busca
 
            Dim objRango As Excel.Range = exApp.Range(exApp.UsedRange.Cells.Value = (celda), exApp.Cells(exApp.UsedRange.Rows.Count, exApp.UsedRange.Columns.Count))
 
            exApp.PageSetup.PrintTitleRows = exApp.Rows(1).Address 'PONEMOS LA FILA DE ENCABEZADO EN TODAS LAS HOJAS IMPRESAS
            exApp.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4 'TAMAÑO DE PAPEL A4
            '   exApp.Name = "Tension mes"
            exApp.Rows.Item(1).Font.Bold = 1 'NEGRITA
            exApp.Rows.Item(1).Font.ColorIndex = 49 'COLOR DEL ENCABEZADO
            exApp.Rows.Item(1).HorizontalAlignment = 3 'ALINEADO DEL ENCABEZADO
 
            objRango.HorizontalAlignment = 3 'ALINEADO DE LAS COLUMNAS
 
            exApp.Range("A1").Value = "   FECHA   "
            exApp.Range("B1").Value = "  SISTÓLICA  "
            exApp.Range("C1").Value = "  DIASTÓLICA  "
            exApp.Range("D1").Value = "  PULSACIONES  "
            exApp.Range("E1").Value = "  SATURACIÓN  "
            exApp.Range("A1:E1").Cells.Interior.Color = Color.Cyan
 
            objRango.Borders.LineStyle = 1 'BORDES DE LA HOJA
 
            exApp.Rows.Font.Size = 12 ' TAMAÑO DE LA FUENTE
            exApp.Rows.Font.Name = "Adobe Garamond Pro Bold" 'TIPO DE FUENTE
            exApp.Columns.AutoFit() 'AJUSTE DE LAS COLUMNAS
 
            exApp.Range("A2:A1048576").Font.ColorIndex = 5 'COLOR DE LA FUENTE DE LA COLUMNA DE FECHAS
 
            'COMPROBAMOS SI EXISTE EL FICHERO Y LO SOBRESCRIBIMOS SI ES ASÍ
            'MOSTRAMOS EL MESSAGE BOX
 
            Dim Message As String = "¿GUARDAR EL MES SELECCIONADO?"
            Dim Caption As String = "OPCIÓN DE GUARDAR"
            Dim Buttons As MessageBoxButtons = MessageBoxButtons.YesNo
 
            Dim Result As DialogResult
 
            Result = MessageBox.Show(Message, Caption, Buttons)
 
            exApp.ActiveWindow.WindowState = Excel.XlWindowState.xlMaximized
 
            'RESULTADO DE LA OPCIÓN AFIRMATIVA
 
            If Result = System.Windows.Forms.DialogResult.Yes Then
 
                If System.IO.File.Exists(archivo_ltl) Then   ' = True no necesario con variable logica
 
                    'SI EL ARCHIVO EXISTE LO BORRAMOS Y GUARDAMOS EL NUEVO
 
                    System.IO.File.Delete(archivo_ltl)
                    ''   exApp.SaveAs(archivo_ltl)
 
                Else
 
                    'SI NO EXISTE LO GUARDAMOS
 
                    ''     exApp.SaveAs(archivo_ltl)
 
                End If
 
                exApp.SaveAs(archivo_ltl)
                'Else
 
                '       System.IO.File.OpenRead(archivo_ltl)     ??? y despues, que hacer con el fichero abierto...
 
            End If
 
            exApp.Application.Visible = True
 
            exApp = Nothing
 
        Catch ex As Exception
 
            MessageBox.Show(ex.Message, "ERROR AL EXPORTAR A EXCEL", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
        End Try
 
    End Sub
 
End Class

Pero existe este error :

UsedRange
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 27/09/2020 16:32:08
Salut!! mo ami. Es una pena, a mi ya me duelen los ojos y la cabeza y ya no se que más puedo hacer, supongo que toi aussi.
¿Qué hago?
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 27/09/2020 16:59:43
Si comprendo bien, quieres copiar todos los valores del primero fichero en un segundo fichero, a partir de la fecha seleccionada ?

Si es bien, quizá tendré un poco tiempo mañana ... (no garantizo).


Como en este imagen, todo es copiado desde el 22/09/2020, a partir de fichero de izquierdo en el fichero de derecha :

CopiarXLS
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 27/09/2020 17:28:50
Si, exacto, quiero sacar periodos de tiempo del Excel general.
Te paso el excel original.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 27/09/2020 17:53:31
Pregunta: todas las informaciones están en le DB Access y sabes escribir en hoja XLS.
Entonces, porque no leer las datos a sacar en Access con una consulta que parece a :
"SELECT * FROM valores WHERE fecha >= ‘" & TextBoxFechaInicial.text & "’ AND fecha <= ‘" & TextBoxFechaFinal.text & "’ ORDER BY fecha"

Miraré mañana para copiar XLS a XLS.
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 28/09/2020 06:07:05
Hola, sí lo había pensado, pero por no tener que hacer datasets, conexiones etc, creía que iba a ser más fácil pero me equivoqué.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 28/09/2020 19:45:19
Hola,

Mira la vidéo para saber utilizar : https://www.dropbox.com/s/keemmg27ys2ze09/CopiarXLS.mp4?dl=0

No garantizo sin error pero este ya una grande parte del trabajo.

Adjunto el proyecto. No olvida de cambiar la ruta y nombre de los ficheros y de ejecutar el Form imprimir_mes.

Bonne soirée ...

Imprimir
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 28/09/2020 20:40:54
Hola, voy a probarlo y veré el resultado. Merci pour ton temps, mon ami. a bientôt.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 29/09/2020 07:15:58
Hola José

No he tenido el tiempo para terminar bien los detalles.
Espero que este te ayudará ...

Bonne journée
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 29/09/2020 11:26:20
Continuación ...

Por favor, reemplaza el código del procedimiento BTratar_Click por el siguiente (si no, existe error cuando TBFechaFinal es vacía) :

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
Private Sub BTratar_Click(sender As Object, e As EventArgs) Handles BTratar.Click
 
    AbrirArchivos()
 
    Dim NumeroDeLineaFuente As Integer = 2
    Dim NumeroDeLineaDestino As Integer = 2
    Dim FechaBuscada As String
    FechaBuscada = CType(TBFechaInicial.Text, Date).ToString("dd/MM/yyyy")
 
    XLSAPP.Range("A" & NumeroDeLineaFuente).Select()
 
    While Not XLSAPP.ActiveCell.Value Is Nothing AndAlso CType(FechaBuscada, Date) > CType(XLSAPP.ActiveCell.Value, Date)
        NumeroDeLineaFuente += 1
        XLSAPP.Range("A" & NumeroDeLineaFuente).Select()
    End While
 
    Dim VariableLogicaTmp As Boolean
 
    If TBFechaFinal.Text = String.Empty Then
        VariableLogicaTmp = True
    Else
        VariableLogicaTmp = CType(FechaBuscada, Date) <= CType(TBFechaFinal.Text, Date)
    End If
 
    While Not XLSAPP.ActiveCell.Value Is Nothing AndAlso VariableLogicaTmp
        XLSAPP.Range(NumeroDeLineaFuente & ":" & NumeroDeLineaFuente).Select()
        XLSAPP.Selection.copy
        XLSAPP.Workbooks(2).Activate()
        XLSAPP.Range("A" & NumeroDeLineaDestino).Insert()
        XLSAPP.Workbooks(1).Activate()
        NumeroDeLineaFuente += 1
        NumeroDeLineaDestino += 1
        XLSAPP.Range("A" & NumeroDeLineaFuente).Select()
        If Not XLSAPP.ActiveCell.Value Is Nothing Then
            FechaBuscada = CType(XLSAPP.ActiveCell.Value, Date).ToShortDateString
        End If
    End While
 
    CerrarArchivos()
 
End Sub

En principio, no vendré mas en este foro hoy ni mañana.

Bonne journée,

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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 29/09/2020 11:28:15
Salut! mon ami, acabo de hacer un nuevo intento y el resultado es:

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
71
72
73
74
75
76
77
78
Private Sub Guarda_btn_Click(sender As Object, e As EventArgs) Handles Guarda_btn.Click
 
    valor = fecha_tb.Text
 
    exApp = New Excel.Application
    exApp.Workbooks.Open(archivo)
 
    exApp.Range("A1").Select()
    exApp.ActiveSheet.Select
 
    If exApp.Selection.Find(valor) Is Nothing Then
 
        MsgBox("ERROR. NO HAY SELECCIONADO NADA.", vbCritical)
 
    Else
 
        exApp.Selection.Find(valor).Select()
        NumCol = exApp.ActiveCell.Column
        NumRow = exApp.ActiveCell.Row
 
    End If
 
    'ABRIMOS EL LIBRO
 
    exApp.Workbooks.Open(archivo)
 
    With exApp
 
        Dim hojaOrigen As Worksheet
        Dim hojaDestino As Worksheet
 
        hojaOrigen = .Sheets(Origen)
        hojaDestino = .Sheets(Destino) 'Aquí es donde me da error:
'System.Runtime.InteropServices.COMException: 'El índice no es válido.
' (Excepción de HRESULT: 0x8002000B (DISP_E_BADINDEX))'
 
        If hojaOrigen Is Nothing Then
 
            MsgBox("ERROR. LA HOJA ORIGEN INDICADA NO EXISTE", vbCritical)
 
        End If
 
        If Not hojaDestino Is Nothing Then
 
            MsgBox("ERROR. LA HOJA DESTINO YA EXISTE EN EL LIBRO. " & "INDICA OTRO NOMBRE PARA LA HOJA DESTINO", vbCritical)
 
        End If
 
        If hojaDestino Is Nothing And Not hojaOrigen Is Nothing Then
 
            hojaOrigen = Nothing
            hojaDestino = Nothing
 
        Else
            hojaOrigen = Nothing
            hojaDestino = Nothing
 
            Exit Sub
 
        End If
 
        .Sheets.Add() ' AGREGAMOS NUEVA HOJA AL LIBRO
        .ActiveSheet.Select ' LA SELECCIONAMOS
        .ActiveSheet.Name = Destino ' LE CAMBIAMOS EL NOMBRE
        .Sheets(Origen).Select ' NOS POSICIONAMOS EN LA HOJA DE ORIGEN
        .Range((NumCol, NumRow), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count)).Select() ' SELECCIONAMOS LAS CELDAS
        .Selection.Copy ' COPIAMOS EL CONTENIDO
        .Sheets(Destino).Select ' NOS POSICIONAMOS EN LA NUEVA HOJA
        .Cells.Select()
        .ActiveSheet.Paste ' PEGAMOS LOS DATOS
        .Application.CutCopyMode = False
        .ActiveWorkbook.Save() ' GRABAMOS LOS CAMBIOS EN EL LIBRO
 
    End With
 
    MsgBox("OK", vbInformation)
 
End Sub

No lo entiendo, Est ce que tu peux m'aider? Merci pour ton temps. On parle.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 29/09/2020 15:34:09
Lo siento, no tengo PC y no puedo te ayudar.
Pero por que no usas mi codigo?
Tus codigos estan muy complexos y hay codigos que no puedo utilizar en mi sistema.
Hago este mensaje con mi smartphone.
Quizá podré trabajar el jueves ...
.
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 29/09/2020 16:09:26
Hola, entiendo lo que dices pero prefiero hacerlo de este modo, espero que no te moleste. Me parece más complicado hacerlo como tú me dices, de todas formas seguiré intentando solucionarlo. Mientras tanto, espero tu respuesta. Saludos.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 29/09/2020 18:12:22
No problema …
Pero este es difícil de testar tus códigos con instrucciones (p.e. UsedRange) que no funcionan a mi casa. Y hoy, no tengo PC y este demasiado difícil de corregir leyendo el programa con un SmartPhone.

Veo fuentes de problemas pero no solución real :
Existe 2 veces la línea ex.app.Workbooks.Open(archivo)
Usas 2 Worksheet hojaOrigen y horaDestino y das los valores con .Sheets(Origen) y .sheets(Destino)
Es estas hojas existen ¿ No veo en este código de instrucción como .Sheets.add … o mejor Worksheets.Add …
Y no veo más los valores dados a Origen y Destino …

Quizá vería mas con el programa completo pero no en Smartphone. Jueves, debería tener nuevamente mi PC. Dificil de escribir este texto con Smarphone que reemplaza las palabras español que no conoce para palabras en francés. Y debo corregir todo tiempo ...

Espero te dar pistas para corregir …
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 29/09/2020 20:00:11
Hola mon ami, te estoy dando muchos quebraderos de cabeza, je suis désolé.
He corregido algunas cosas pero me sigue mostrando System.Runtime.InteropServices.COMException: 'Excepción de HRESULT: 0x800A03EC', he mirado por la red posibles soluciones pero todas eran disparatadas.
Seguiré probando cosas, esperando tu ayuda, a ver si se me enciende la lucecita y lo soluciono.
Bonne soirée à toi. On parle.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 30/09/2020 10:28:00
Hola José,
He instalado el teclado español en mi Smartphone. Este es más fácil para escribir en el foro.
Si has corregido los códigos según mis comentarios, envías me nuevamente, podré lo leer con el Smartphone en la tarde.
... :D)))
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 30/09/2020 11:06:49
Hola, no importa, yo te entiendo. Aquí tienes mi código:

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
valor = fecha_tb.Text
 
'ABRIMOS EL LIBRO
 
exApp = New Excel.Application
exApp.Workbooks.Open(archivo)
 
exApp.Range("A2").Select()
exApp.ActiveSheet.Select
 
If exApp.Selection.Find(valor) Is Nothing Then
 
    Dim Message As String = "ERROR. NO HAY SELECCIONADO NADA."
    Dim Caption As String = "ERROR."
    Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
    Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
    Dim Result As DialogResult
 
    Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
Else
 
    exApp.Selection.Find(valor).Select()
    NumCol = exApp.ActiveCell.Column
    NumRow = exApp.ActiveCell.Row
 
End If
 
With exApp
 
    Dim hojaOrigen As Worksheet
    Dim hojaDestino As Worksheet
 
    hojaOrigen = .Worksheets(Origen)
    hojaDestino = .Worksheets.Add(Destino) 'AQUÍ HAY UN ERROR
    hojaOrigen.Select()
 
    If hojaOrigen Is Nothing Then
 
        Dim Message As String = "LA HOJA ORIGEN INDICADA NO EXISTE."
        Dim Caption As String = "ERROR."
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
        Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
        Dim Result As DialogResult
 
        Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
    End If
 
    If Not hojaDestino Is Nothing Then
 
        Dim Message As String = "ERROR. LA HOJA DESTINO YA EXISTE EN EL LIBRO. INDICA OTRO NOMBRE PARA LA HOJA DESTINO."
        Dim Caption As String = "ERROR."
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
        Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
        Dim Result As DialogResult
 
        Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
    End If
 
    If hojaDestino Is Nothing And Not hojaOrigen Is Nothing Then
 
        hojaOrigen = Nothing
        hojaDestino = Nothing
 
    Else
        hojaOrigen = Nothing
        hojaDestino = Nothing
 
        Exit Sub
 
    End If
 
    .Sheets.Add() ' AGREGAMOS NUEVA HOJA AL LIBRO
    .ActiveSheet.Select ' LA SELECCIONAMOS
    .ActiveSheet.Name = Destino ' LE CAMBIAMOS EL NOMBRE
    .Sheets(Origen).Select ' NOS POSICIONAMOS EN LA HOJA DE ORIGEN
    .Range((NumCol, NumRow), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count)).Select() ' SELECCIONAMOS LAS CELDAS
    .Selection.Copy ' COPIAMOS EL CONTENIDO
    .Sheets(Destino).Select ' NOS POSICIONAMOS EN LA NUEVA HOJA
    .Cells.Select()
    .ActiveSheet.Paste ' PEGAMOS LOS DATOS
    .Application.CutCopyMode = False
    .ActiveWorkbook.Save() ' GRABAMOS LOS CAMBIOS EN EL LIBRO
 
End With
 
exApp.Workbooks.Close()
 
MsgBox("OK", vbInformation)

Dale un vistazo y me dices lo burro que soy, je, je!!. A bientôt mon ami!!
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 30/09/2020 17:26:44
Hola José,

Comprendo que quieres abrir segunda hoja en el mismo WorkBook. En este caso, no es exApp.WorkBook.Add (he hecho error ayer), pero este es exApp.WorkSheets.Add. Este hará la hoja 2.
Si crear segunda hoja, tienes que reemplazar .Sheets(Oregen) y .Sheets(Destino) por .Sheets(1) y .Sheets(2).

Si este un segundo fichero que quieres crear, tienes que escribir como en mi procedimiento AbrirArchivos().

Permite me comentario : no es bien de escribir varias veces los Message, Caption, Buttons, ..., y no es necesario de escribir Result = MessageBox … cuando tienes nada a hacer de este variable. Estos detalles hacen tu código muy grande y complicado.

… :D)))

Nota : mucho mas facile de escribir sobre SmartPhone con teclado español ! Pero no vale por el teclado del computadora..
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 01/10/2020 09:38:53
Hola, buenos días, perdón por el retraso, médicos mandan. He hecho los cambios que me dices y me da error igualmente. Mi código queda así a falta de depurar los messageBox:

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Private Sub Guarda_btn_Click(sender As Object, e As EventArgs) Handles Guarda_btn.Click
 
        valor = fecha_tb.Text
 
        'ABRIMOS EL LIBRO
 
        exApp = New Excel.Application
        exApp.Workbooks.Open(archivo)
 
        exApp.Range("A2").Select()
        exApp.ActiveSheet.Select
 
        If exApp.Selection.Find(valor) Is Nothing Then
 
            Dim Message As String = "ERROR. NO HAY SELECCIONADO NADA."
            Dim Caption As String = "ERROR."
            Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
            Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
            Dim Result As DialogResult
 
            Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
        Else
 
            exApp.Selection.Find(valor).Select()
            NumCol = exApp.ActiveCell.Column
            NumRow = exApp.ActiveCell.Row
 
        End If
 
        With exApp
 
            Dim hojaOrigen As Worksheet
            Dim hojaDestino As Worksheet
 
            hojaOrigen = .Worksheets(1)
            hojaDestino = .Worksheets.Add(2) 'AQUÍ HAY UN ERROR**
            hojaOrigen.Select()
 
            If hojaOrigen Is Nothing Then
 
                Dim Message As String = "LA HOJA ORIGEN INDICADA NO EXISTE."
                Dim Caption As String = "ERROR."
                Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
                Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
                Dim Result As DialogResult
 
                Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
            End If
 
            If Not hojaDestino Is Nothing Then
 
                Dim Message As String = "ERROR. LA HOJA DESTINO YA EXISTE EN EL LIBRO. INDICA OTRO NOMBRE PARA LA HOJA DESTINO."
                Dim Caption As String = "ERROR."
                Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
                Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
                Dim Result As DialogResult
 
                Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
            End If
 
            If hojaDestino Is Nothing And Not hojaOrigen Is Nothing Then
 
                hojaOrigen = Nothing
                hojaDestino = Nothing
 
            Else
                hojaOrigen = Nothing
                hojaDestino = Nothing
 
                Exit Sub
 
            End If
 
            .Sheets.Add() ' AGREGAMOS NUEVA HOJA AL LIBRO
            .ActiveSheet.Select ' LA SELECCIONAMOS
            .ActiveSheet.Name = Destino ' LE CAMBIAMOS EL NOMBRE
            .Sheets(Origen).Select ' NOS POSICIONAMOS EN LA HOJA DE ORIGEN
            .Range((NumCol, NumRow), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count)).Select() ' SELECCIONAMOS LAS CELDAS
            .Selection.Copy ' COPIAMOS EL CONTENIDO
            .Sheets(Destino).Select ' NOS POSICIONAMOS EN LA NUEVA HOJA
            .Cells.Select()
            .ActiveSheet.Paste ' PEGAMOS LOS DATOS
            .Application.CutCopyMode = False
            .ActiveWorkbook.Save() ' GRABAMOS LOS CAMBIOS EN EL LIBRO
 
        End With
 
        exApp.Workbooks.Close()
 
        MsgBox("OK", vbInformation)
 
    End Sub
 
    Private Sub salir_btn_Click(sender As Object, e As EventArgs) Handles salir_btn.Click
 
        Me.Close()
 
    End Sub

El error es: System.Runtime.InteropServices.COMException: 'Excepción de HRESULT: 0x800A03EC'. Ya me pierdo.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 01/10/2020 14:06:06
Hola Josés,

Varias pistas rápido … tengo mi PC pero poco tiempo ahora …

Lo siento de comentar tus MessageBox sin dar una buena manera :

A la primera línea del procedimiento, escibes Dim Message As String.
Después, cuando el MessageBox es necesario, escribes solamente :
Message = “El mensaje necesario …”
MessageBox.Show(Message, “ERROR”, MessageBoxButtons.OK, MessageBoxIcon.Error)
2 lineas a lugar de 6, y sin Result inútil. Y más, existen 3 MessageBox en tu procedimiento y tienen todos los mismos parámetros, excepto el mensaje.

Ejemplo :
1
2
3
4
5
6
7
8
If exApp.Selection.Find(valor) Is Nothing Then
   Message = “El mensaje necesario …”
   MessageBox.Show(Message, “ERROR”, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            exApp.Selection.Find(valor).Select()
            NumCol = exApp.ActiveCell.Column
            NumRow = exApp.ActiveCell.Row
        End If

El código siguiente debe ser quitado :
1
2
3
4
5
6
7
8
    '      If hojaDestino Is Nothing And Not hojaOrigen Is Nothing Then
    '            hojaOrigen = Nothing
    '            hojaDestino = Nothing
    '        Else
    '            hojaOrigen = Nothing
    '            hojaDestino = Nothing
    '             Exit Sub
     '        End If
Lo dice : Si uno Nothing y no el segundo Entonces Ambos están Nothing SI NO, entonces Ambos están Nothing y exit sub. Este código hace Ambos están Nothing en todos casos.

Para el error :

Intentas de escribir :
1
2
3
4
5
6
7
8
9
‘    Dim hojaOrigen As Worksheet
         ‘   Dim hojaDestino As Worksheet
 
 ‘           hojaOrigen = .Worksheets(1)
  ‘          hojaDestino = .Worksheets.Add(2) 'AQUÍ HAY UN ERROR**
 ‘           hojaOrigen.Select()
 
exApp.WorkSheets.Add()
exApp.WorkSheets(2).Select()

Y después, trabajas con exApp.WorkSheets(1) y exApp.WorkSheets(2). No con hojaOrigen ni hojaDestino. Podras cambiar, luego, cuando no mas existe error.

Espero tener más tiempo más tarde para testar en PC.

Hasta luego ...
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 01/10/2020 15:07:26
Hola mon ami, he hecho los cambios que me sugieres pero me da error en:

1
.Range((NumRow, NumCol), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count)).Select()

Al seleccionar la celda a partir de la cual coger el rango para pasar a la nueva hoja. Sigo buscando solucion.
On parle. Bon après midi.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 01/10/2020 17:17:02
Creo bien que tienes error en esta linea. Ya, te he dicho que estos códigos no funcionan en mi sistema. Veo que no funcionan en tu sistema. Este me parece normal. No puedo testar en mi sistema.
Mejor que aprendes mis códigos, no ?
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 01/10/2020 17:49:37
Hola de nuevo, voy a seguir buscando la solución, se que está cerca, es cuestión de seguir buscando. Gracias por tu ayuda.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 01/10/2020 18:06:16
Por favor, cuando funciona la línea con "UsedRange", envías me un ejemplo para me conocer.
Bonne recherche ...
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 01/10/2020 19:08:02
Ça c'est fait! mon ami. A bientôt.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 02/10/2020 07:13:56
Hola José,

He encontrado el uso de UsedRange.

Este es un ejemplo simple :
1
2
Dim TotalNumRow = XLSAPP.ActiveSheet.UsedRange.Rows.Count
 Dim TotalNumCol = XLSAPP.ActiveSheet.UsedRange.Columns.Count
El UsedRange debe ser para una Sheet o WoorkSheet.
Si no funciona en mi PC anteriormente, este porque es mal utilizado. Y supongo que el error que tienes ahora viene de la misma razón.

Si envias tu código corregido hasta este linea, miraré en la tarde ...

Bonne journée,

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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 02/10/2020 07:47:03
Hola, mon ami, lo acabo de corregir, según pude investigar algo ayer, el fallo en:
1
.ActiveSheet.Range(exHoja.Cells(NumRow, NumCol), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count)).Select()
es por que hay una variable que le paso que es null, pero estuve mirando y no encontré dicha variable. De todas formas el código corregido hasta los dos Dim es:

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
Private Sub Guarda_btn_Click(sender As Object, e As EventArgs) Handles Guarda_btn.Click
 
    valor = fecha_tb.Text
 
    'ABRIMOS EL LIBRO
 
    exApp = New Excel.Application
    exApp.Workbooks.Open(archivo)
 
    exApp.Range("A1").Select()
    exApp.ActiveSheet.Select
 
    If exApp.Selection.Find(valor) Is Nothing Then
 
        Dim Message As String = "ERROR. NO HAY SELECCIONADO NADA."
        Dim Caption As String = "ERROR."
        Dim Buttons As MessageBoxButtons = MessageBoxButtons.OK
        Dim tipo As MessageBoxIcon = MessageBoxIcon.Error
 
        Dim Result As DialogResult
 
        Result = MessageBox.Show(Message, Caption, Buttons, tipo)
 
    Else
 
        exApp.Selection.Find(valor).Select()
 
        TotalNumRow = exApp.ActiveSheet.UsedRange.Rows.Count
        TotalNumCol = exApp.ActiveSheet.UsedRange.Columns.Count
 
    End If
 
    With exApp
 
        exApp.Worksheets.Add()
 
        exApp.Worksheets(1).Select()
 
        .Sheets.Add() ' AGREGAMOS NUEVA HOJA AL LIBRO
        .ActiveSheet.Select ' LA SELECCIONAMOS
        .ActiveSheet.Name = Destino ' LE CAMBIAMOS EL NOMBRE
        .Sheets(1).Select ' NOS POSICIONAMOS EN LA HOJA DE ORIGEN
        .ActiveSheet.Range(exHoja.Cells(TotalNumCol, TotalNumRow), exHoja.Cells(exHoja.UsedRange.Rows.Count, exHoja.UsedRange.Columns.Count)).Select() ' SELECCIONAMOS EL RANGO DE CELDAS
        .ActiveSheet.Selection.Copy ' COPIAMOS EL CONTENIDO
        .ActiveSheet.Sheets(2).Select ' NOS POSICIONAMOS EN LA NUEVA HOJA
        .ActiveSheet.Cells.Select()
        .ActiveSheet.Paste ' PEGAMOS LOS DATOS
        .Application.CutCopyMode = False
        .ActiveWorkbook.Save() ' GRABAMOS LOS CAMBIOS EN EL LIBRO
 
    End With
 
    exApp.Workbooks.Close()
 
    MsgBox("OK", vbInformation)
 
End Sub
A ver si tu ves algo que yo no veo. On parle. Bonne journée pour toi aussi.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 02/10/2020 13:00:31
Pienso que el código siguiente hace este que quieres (con utilizacion de UsedRange ) :

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
Private Sub Guarda_btn_Click(sender As Object, e As EventArgs) Handles BTratar.Click
 
    Dim valor As String
 
    valor = "22/09/2020" ' fecha_tb.Text
 
    'ABRIMOS EL LIBRO
 
    exApp = New Excel.Application
    exApp.Workbooks.Open(archivo)
 
    exApp.Visible = True
 
    exApp.Range("A1").Select()
    exApp.ActiveSheet.Select
 
    Dim PrimeraCell As String
    Dim NumCol As Integer
    Dim NumRow As Integer
    Dim TotalNumCol As Integer
    Dim TotalNumRow As Integer
 
    If exApp.Selection.Find(valor) Is Nothing Then
 
        MessageBox.Show("ERROR. NO HAY SELECCIONADO NADA.", "ERROR.", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
        exApp.Workbooks.Close()
        Exit Sub
 
    Else
 
        exApp.Selection.Find(valor).Select()
        PrimeraCell = exApp.ActiveCell.Address
        NumCol = exApp.ActiveCell.Column
        NumRow = exApp.ActiveCell.Row
        TotalNumRow = exApp.ActiveSheet.UsedRange.Rows.Count
        TotalNumCol = exApp.ActiveSheet.UsedRange.Columns.Count
 
    End If
 
    With exApp
 
        exApp.Worksheets.Add(After:=exApp.Worksheets(1))  ' Si no After, entonces hay confusion de las hojas
 
        exApp.Worksheets(1).Select()
 
        Dim RangeSeleccionado As String = PrimeraCell & ":" & Chr(64 + TotalNumCol - NumCol + 1) & TotalNumRow  ' Para ver en pasa a pasa
        .ActiveSheet.Range(RangeSeleccionado).Select()
        .Selection.Copy  ' COPIAMOS EL CONTENIDO
        .ActiveWorkbook.Sheets(2).Select()
        .ActiveSheet.Range("A2").Insert()
 
        .ActiveWorkbook.Save() ' GRABAMOS LOS CAMBIOS EN EL LIBRO
 
    End With
 
    exApp.Workbooks.Close()
 
    MessageBox.Show("OK", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
End Sub

Puedes me explicar por que escribes tanto linea para mostrar un MessageBox ?

Bon appétit si tu passes à table ...
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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 02/10/2020 18:02:02
Hola, acabo de implementar tu código, pero me abre el archivo Histórico tensión con la nueva hoja sin cabecera y sin nombre y me pregunta si quiero sobrescribir el fichero. Te paso una captura.
Voy a analizar el código para ver que puedo hacer. On parle.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 02/10/2020 18:23:59
Hay no problema. Este es normal.
Tratas los datos de la hoja 1 y creas la hoja 2 con los datos seleccionados. El fichero es modificado.
Cuando "Save()", Excel pregunta si quieres reemplazar el fichero inicial. Puedes responder SI. Entonces, el fichero contiene las hojas 1 y 2, y todos los datos.
No existe esta cuestión con mi version porque escribo los datos seleccionados en un nuevo fichero, a cada vez.
Este es tu elección ...

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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 02/10/2020 18:57:10
Continuación ...
Existe otra razón.
Si cierras tu PC y lo arrancas, no tienes este problema.
Puedes mirar los procesos del sistema y ver mucho procesos XLS.
Algunos procesos que vienen de tus pruebas con el programa que olvida de cerrar XLS.
En este caso, existe ligadura con el fichero y XLS lo abre para lectura solamente.
....
Espero te dar ideas ...
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 02/10/2020 21:17:02
Continuación 2 ...

Para los procesos XLS restos en la memoria, puedes terminar todo procedimiento que abren fichero XLS con estos codigos :

1
2
3
4
5
6
7
8
9
10
11
12
13
'...
        exApp.Quit()
        exApp = Nothing
        Dim P As System.Diagnostics.Process   ' Para eliminar los Process todavia en la memoria
        Try
            For Each P In System.Diagnostics.Process.GetProcesses
                If P.ProcessName.ToUpper Like "*EXCEL*" Then
                    P.Kill()
                End If
            Next
        Catch
        End Try
'...

Pero funciona solamente si no la ejecución es detenido para el VisualStudio como mostrar aquí :

Detener

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
sin imagen de perfil
Val: 165
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por José Vicente (57 intervenciones) el 02/10/2020 21:57:22
Salut mon ami, ya lo he acabado, gracias por tu ayuda, sin ti no lo hubiese conseguido. El código al final queda:

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Private Sub Guarda_btn_Click(sender As Object, e As EventArgs) Handles Guarda_btn.Click
 
    Dim valor As String = CStr(fecha_tb.Text)
 
    numero = valor.Substring(valor.IndexOf("/") + 1, valor.LastIndexOf("/") - 3)
    mes = MonthName(numero, True)
 
    'ABRIMOS EL LIBRO
 
    exApp = New Excel.Application
 
    exApp.Workbooks.Open(archivo)
 
    exApp.Visible = True
 
    exApp.Range("A1").Select()
 
    exApp.ActiveSheet.Select
 
    Dim PrimeraCell As String
    Dim NumCol As Integer
    Dim NumRow As Integer
    Dim TotalNumCol As Integer
    Dim TotalNumRow As Integer
 
    If exApp.Selection.Find(valor) Is Nothing Then
 
        MessageBox.Show("ERROR. NO HAY SELECCIONADO NADA.", "ERROR.", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
        exApp.Workbooks.Close()
        exApp.Quit()
        exHoja = Nothing
        exLibro = Nothing
        exApp = Nothing
 
        Exit Sub
 
    Else
 
        exApp.Selection.Find(valor).Select()
 
        PrimeraCell = exApp.ActiveCell.Address
 
        NumCol = exApp.ActiveCell.Column
        NumRow = exApp.ActiveCell.Row
 
        TotalNumRow = exApp.ActiveSheet.UsedRange.Rows.Count
        TotalNumCol = exApp.ActiveSheet.UsedRange.Columns.Count
 
    End If
 
    With exApp
 
        exApp.Worksheets.Add(After:=exApp.Worksheets(1))  ' EL AFTER ES PARA EVITAR CONFUNDIR LAS HOJAS
 
        exApp.Worksheets(1).Select()
 
        Dim RangoSeleccionado As String = PrimeraCell & ":" & Chr(64 + TotalNumCol - NumCol + 1) & TotalNumRow  ' SELECCIONAMOS EL RANGO
 
        .ActiveSheet.Range(RangoSeleccionado).Select()
        .Selection.Copy  ' COPIAMOS EL CONTENIDO
        .ActiveWorkbook.Sheets(2).Select()
        .ActiveSheet.Name = mes ' LE CAMBIAMOS EL NOMBRE
 
        .ActiveSheet.Range("A2").Insert()
 
        .ActiveSheet.Rows.Item(1).Font.Bold = 1 'NEGRITA
        .ActiveSheet.Rows.Item(1).Font.ColorIndex = 49 'COLOR DEL ENCABEZADO
        .ActiveSheet.Rows.Item(1).HorizontalAlignment = 3 'ALINEADO DEL ENCABEZADO
 
        .ActiveSheet.Range("A1").Value = "   FECHA   "
        .ActiveSheet.Range("B1").Value = "  SISTÓLICA  "
        .ActiveSheet.Range("C1").Value = "  DIASTÓLICA  "
        .ActiveSheet.Range("D1").Value = "  PULSACIONES  "
        .ActiveSheet.Range("E1").Value = "  SATURACIÓN  "
 
        .ActiveSheet.Range("A1:E1").Borders.LineStyle = 1
 
        .ActiveSheet.Rows.Item(1).AutoFit()
 
        .ActiveSheet.Range("A1:E1").Cells.Interior.Color = Color.Cyan
        .ActiveSheet.Range("A2:E70").HorizontalAlignment = 3
 
        .ActiveSheet.Rows.Font.Size = 12 ' TAMAÑO DE LA FUENTE
        .ActiveSheet.Rows.Font.Name = "Adobe Garamond Pro Bold" 'TIPO DE FUENTE
        .ActiveSheet.Columns.AutoFit() 'AJUSTE DE LAS COLUMNAS
 
        .ActiveSheet.Range("A2:A1000").Font.ColorIndex = 5 'COLOR DE LA FUENTE DE LA COLUMNA DE FECHAS
 
        .ActiveWorkbook.Sheets(1).Select()
        .ActiveSheet.Range("A2").Select()
 
        If System.IO.File.Exists(archivo) = True Then
 
            'SI EL ARCHIVO EXISTE LO BORRAMOS Y GUARDAMOS EL NUEVO
 
            File.Copy(archivo, archivo_ltl, True)
 
        Else
 
            'SI NO EXISTE LO GUARDAMOS
 
            exLibro.SaveAs(archivo)
 
        End If
 
        .ActiveWorkbook.Save() ' GRABAMOS LOS CAMBIOS EN EL LIBRO
 
    End With
 
    exApp.Workbooks.Close()
    exApp.Quit()
 
    Dim P As System.Diagnostics.Process   ' CERRAMOS TODOS LOS PROCESOS DE EXCEL ABIERTOS
 
    Try
 
        For Each P In System.Diagnostics.Process.GetProcesses
 
            If P.ProcessName.ToUpper Like "*EXCEL*" Then
 
                P.Kill()
 
            End If
 
        Next
 
    Catch
 
    End Try
 
    GC.WaitForPendingFinalizers()
    GC.Collect()
 
    MessageBox.Show("FICHERO MODIFICADO Y GUARDADO", "OK.", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
End Sub

Merci beaucoup, tu as un ami a Valencia, Espagne pour toute ma vie. Au revoir. On parle.
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
Imágen de perfil de Phil Rob
Val: 3.196
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo selecciono un rango de celdas Excel por valores en vb.net?

Publicado por Phil Rob (937 intervenciones) el 02/10/2020 22:25:51
Muy bien!
Buena continuación con la programación.
Hasta la vista,
A la prochaine ...
:D)))
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