Principales respuestas
Crear archivo nuevo de excel VB10

Pregunta
-
Hola que tal, saludos a todos, tengo una duda que no e podido resolver, tengo un archivo excel con un formato, el cual deseo llenar desde Visual Basic y guardarlo en otra ubicación con nombre diferente sin que se abra el archivo excel. Solo e logrado hacerlo con este código, pero se me reemplaza el archivo y aparte se me abre el documento, espero y me puedan ayudar, Gracias.
Mi código es:
Dim xlibro As Microsoft.Office.Interop.Excel.Application
Dim strRutaExcel As String
Dim Workbooks As String
'El siguiente codigo es para crear la ruta,entre comillas se pone la ruta donde esta el libro
strRutaExcel = "C:\Nombre.xlsx"
'El siguiente codigo es para abrir el libro y hacerlo visible, si se quiere dejar el libro oculto, se cambia la palabra True por False
xlibro = CreateObject("Excel.Application")
xlibro.Workbooks.Open(strRutaExcel)'Aquí le pongo false para que no se abra el excel, pero no me lo llena con los datos
xlibro.Visible = True
'Activamos el libro
xlibro.Workbooks("OT.xlsx").Activate()
'Activamos la hoja especifica del libro
xlibro.Sheets("HOJA 1").Select()
'esta es la instruccion para modificar la celda con el contenido de unos textboxs
xlibro.Range("C5,C21").Value = TextBox1.Text
xlibro.Range("H5,H21").Value = TextBox2.Text
xlibro.Range("H6,H22").Value = TextBox3.Text
xlibro.Range("H7,H23").Value = TextBox4.Text
xlibro.Range("H8,H24").Value = TextBox5.Text
xlibro.Range("H14,H30").Value = TextBox6.Text
xlibro.Range("C9,C25").Value = TextBox7.Text
xlibro.Range("H14,C30").Value = TextBox8.Text
Respuestas
-
Hola:
Para el siguiente ejemplo, se hace uso de la libreria Spire.XLS.dll, por lo tanto hay que añadir una referencia a dicha libreriaEn en Form como el de la imagen, copia y pega el siguiente código
Imports Spire.XlsPublic Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.btnAceptar.Enabled = False
End SubPrivate Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
Dim workbook As Workbook = New Workbook()
'Se abre un fichero excel ya creado
workbook.LoadFromFile("D:\TU_CARPETA\TU_FICHERO.xlsx")
Dim sheet As Worksheet = workbook.Worksheets(0)
sheet.Range("B1").Text = Me.TextBox1.Text
sheet.Range("B2").Text = Me.TextBox2.Text
sheet.Range("B3").Text = Me.TextBox3.Text
sheet.Range("B4").Text = Me.TextBox4.Text
sheet.Range("B5").Text = Me.TextBox5.Text
sheet.Range("B6").Text = Me.TextBox6.Text
sheet.Range("B7").Text = Me.TextBox7.Text
sheet.Range("B8").Text = Me.TextBox8.Text
'Se graba el nuevo fichero
workbook.SaveToFile(Me.txtPathDestino.Text, ExcelVersion.Version2007)
MessageBox.Show("FICHERO CREADO")
End SubPrivate Sub btnPathDestino_Click(sender As Object, e As EventArgs) Handles btnPathDestino.Click
Try
With dlgSalvar
' Vea el código que muestra el control OpenFileDialog. Para ver ejemplos con la mayoría de las propiedades, que son las mismas para ambos controles, en la mayor parte.
' Agregar la extensión predeterminada, si el usuario no agrega una extensión. El valor predeterminado es True.
.AddExtension = True
' Comprobar que existe realmente la ruta de acceso de salida. ¿Preguntar antes de crear un archivo nuevo? ¿Preguntar antes de sobrescribir?
' El valor predeterminado es True.
.CheckPathExists = True
' El valor predeterminado es False.
.CreatePrompt = False
' El valor predeterminado es True.
.OverwritePrompt = True
' El valor predeterminado es True.
.ValidateNames = True
' El valor predeterminado es False.
.ShowHelp = True
' Si el usuario no proporciona una extensión y si la propiedad AddExtension es True, utilizar esta extensión. El valor predeterminado es "".
.DefaultExt = "xlsx"
' El valor predeterminado es "".
.Filter = "Ficheros Excel (*.xlsx)|*.xlsx"
.FilterIndex = 1
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.txtPathDestino.Text = .FileName
Me.btnAceptar.Enabled = True
End If
End With
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
End Try
End Sub
End ClassUn saludo desde Bilbo
Carlos- Propuesto como respuesta Joyce_ACModerator martes, 28 de febrero de 2017 16:06
- Marcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 2:09
- Desmarcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 2:09
- Marcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 3:15
-
Hola:
Tienes algunos erroresEsta linea
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
la reemplazas por
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDonde tienes el siguiente codigoIf .ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.TextBox9.Text = .FileName
Me.Button1.Enabled = False ---> TIENES QUE PONER TRUE, PORQUE SINO, NO PUEDES EJECUTAR EL BOTON
End IfP.D.
¿Porque cambias los nombres de los botones para poner unos nombres que no dicen nada?Un saludo desde Bilbo
Carlos- Marcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 22:23
Todas las respuestas
-
Hola:
Para el siguiente ejemplo, se hace uso de la libreria Spire.XLS.dll, por lo tanto hay que añadir una referencia a dicha libreriaEn en Form como el de la imagen, copia y pega el siguiente código
Imports Spire.XlsPublic Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.btnAceptar.Enabled = False
End SubPrivate Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
Dim workbook As Workbook = New Workbook()
'Se abre un fichero excel ya creado
workbook.LoadFromFile("D:\TU_CARPETA\TU_FICHERO.xlsx")
Dim sheet As Worksheet = workbook.Worksheets(0)
sheet.Range("B1").Text = Me.TextBox1.Text
sheet.Range("B2").Text = Me.TextBox2.Text
sheet.Range("B3").Text = Me.TextBox3.Text
sheet.Range("B4").Text = Me.TextBox4.Text
sheet.Range("B5").Text = Me.TextBox5.Text
sheet.Range("B6").Text = Me.TextBox6.Text
sheet.Range("B7").Text = Me.TextBox7.Text
sheet.Range("B8").Text = Me.TextBox8.Text
'Se graba el nuevo fichero
workbook.SaveToFile(Me.txtPathDestino.Text, ExcelVersion.Version2007)
MessageBox.Show("FICHERO CREADO")
End SubPrivate Sub btnPathDestino_Click(sender As Object, e As EventArgs) Handles btnPathDestino.Click
Try
With dlgSalvar
' Vea el código que muestra el control OpenFileDialog. Para ver ejemplos con la mayoría de las propiedades, que son las mismas para ambos controles, en la mayor parte.
' Agregar la extensión predeterminada, si el usuario no agrega una extensión. El valor predeterminado es True.
.AddExtension = True
' Comprobar que existe realmente la ruta de acceso de salida. ¿Preguntar antes de crear un archivo nuevo? ¿Preguntar antes de sobrescribir?
' El valor predeterminado es True.
.CheckPathExists = True
' El valor predeterminado es False.
.CreatePrompt = False
' El valor predeterminado es True.
.OverwritePrompt = True
' El valor predeterminado es True.
.ValidateNames = True
' El valor predeterminado es False.
.ShowHelp = True
' Si el usuario no proporciona una extensión y si la propiedad AddExtension es True, utilizar esta extensión. El valor predeterminado es "".
.DefaultExt = "xlsx"
' El valor predeterminado es "".
.Filter = "Ficheros Excel (*.xlsx)|*.xlsx"
.FilterIndex = 1
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.txtPathDestino.Text = .FileName
Me.btnAceptar.Enabled = True
End If
End With
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
End Try
End Sub
End ClassUn saludo desde Bilbo
Carlos- Propuesto como respuesta Joyce_ACModerator martes, 28 de febrero de 2017 16:06
- Marcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 2:09
- Desmarcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 2:09
- Marcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 3:15
-
-
Que tal Carlos probé el código aplicado a mi proyecto pero, me surgen varios errores, al iniciarlo el botón de guardar permanece presionado, y al abrir el botón para buscar la ruta de guardado selecciono la ruta y pongo un nombre, pero no me deja guardarlo, espero y me puedas ayudar, ya que no tengo mucha experiencia en VB, gracias te dejo mi codigo.
Imports Spire.Xls
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Me.Button1.Enabled = False
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)'Boton asignado para guardar
Dim workbook As Workbook = New Workbook()
'Se abre un fichero excel ya creado
workbook.LoadFromFile("C:\OT.xlsx")
Dim sheet As Worksheet = workbook.Worksheets(0)
sheet.Range("C9,C25").Text = Me.TextBox1.Text
sheet.Range("H5,H21").Text = Me.TextBox2.Text
sheet.Range("H6,H22").Text = Me.TextBox3.Text
sheet.Range("H7,H23").Text = Me.TextBox4.Text
sheet.Range("H8,H24").Text = Me.TextBox5.Text
sheet.Range("H14,H30").Text = Me.TextBox6.Text
sheet.Range("C9,C25").Text = Me.TextBox7.Text
sheet.Range("C14,C30").Text = Me.TextBox8.Text
'Se graba el nuevo fichero
workbook.SaveToFile(Me.TextBox9.Text, ExcelVersion.Version2010)
MessageBox.Show("FICHERO CREADO")
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click'Boton asignado para buscar la ruta
Try
Dim guardar As New SaveFileDialog
With guardar
' Vea el código que muestra el control OpenFileDialog. Para ver ejemplos con la mayoría de las propiedades, que son las mismas para ambos controles, en la mayor parte.
' Agregar la extensión predeterminada, si el usuario no agrega una extensión. El valor predeterminado es True.
.AddExtension = True
' Comprobar que existe realmente la ruta de acceso de salida. ¿Preguntar antes de crear un archivo nuevo? ¿Preguntar antes de sobrescribir?
' El valor predeterminado es True.
.CheckPathExists = True
' El valor predeterminado es False.
.CreatePrompt = False
' El valor predeterminado es True.
.OverwritePrompt = True
' El valor predeterminado es True.
.ValidateNames = True
' El valor predeterminado es False.
.ShowHelp = True
' Si el usuario no proporciona una extensión y si la propiedad AddExtension es True, utilizar esta extensión. El valor predeterminado es "".
.DefaultExt = "xlsx"
' El valor predeterminado es "".
.Filter = "Ficheros Excel (*.xlsx)|*.xlsx"
.FilterIndex = 1
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.TextBox9.Text = .FileName
Me.Button1.Enabled = False
End If
End With
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
End Try
End Sub
End Class- Editado Dante Bentancourt miércoles, 1 de marzo de 2017 3:19
-
Hola:
Tienes algunos erroresEsta linea
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
la reemplazas por
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDonde tienes el siguiente codigoIf .ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.TextBox9.Text = .FileName
Me.Button1.Enabled = False ---> TIENES QUE PONER TRUE, PORQUE SINO, NO PUEDES EJECUTAR EL BOTON
End IfP.D.
¿Porque cambias los nombres de los botones para poner unos nombres que no dicen nada?Un saludo desde Bilbo
Carlos- Marcado como respuesta Dante Bentancourt miércoles, 1 de marzo de 2017 22:23
-