Añadir información a celda siguiente
Publicado por María José (14 intervenciones) el 08/05/2006 09:49:08
Hola chic@s:
Tengo un problema porque en el código que he hecho, abro un fichero excel y le introduzco datos desde una ventana de VB, el problema es que cuando le meto el segundo dato, me abre otro fichero excel, y así sucesivamente. Os pongo el código para que veáis lo que he hecho.Public Class Form1
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
End Sub
Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ApExcel As Object
Dim fila As Integer : Dim celda As String
Dim A
Dim B
ApExcel = CreateObject("Excel.application")
ApExcel.Visible = True
ApExcel.Workbooks.Open("c:\users\lista de materiales.xls")
ApExcel.DisplayAlerts = True
If (RadioButton1.Checked) = True Then
A = (Val(TextBox1.Text) - 500)
B = A \ 32
fila = A + (B + 1)
End If
If (RadioButton2.Checked) = True Then
A = Val(TextBox1.Text) \ 32
fila = Val(TextBox1.Text) + (A + 1)
End If
If (RadioButton1.Checked) = True Then
Dim Preg
celda = (((ApExcel.Sheets("hoja2").cells(fila, 1))).value)
If celda = "" Then
1: With ApExcel.Sheets("hoja2")
.cells(fila, 1) = TextBox1.Text
.cells(fila, 2) = TextBox2.Text
.cells(fila, 3) = TextBox3.Text
.cells(fila, 4) = TextBox4.Text
.cells(fila, 5) = TextBox5.Text
End With
Else
Preg = InputBox("Esta celda ya tiene asignada una marca ¿quiere sobreescribirla")
If Preg = "si" Then GoTo 1
If Preg <> "si" Then GoTo 4
End If
End If
If (RadioButton2.Checked) = True Then
Dim Preg
celda = (((ApExcel.Sheets("hoja1").cells(fila, 1))).value)
If celda = "" Then
3: With ApExcel.Sheets("hoja1")
.cells(fila, 1) = TextBox1.Text
.cells(fila, 2) = TextBox2.Text
.cells(fila, 3) = TextBox3.Text
.cells(fila, 4) = TextBox6.Text
.cells(fila, 5) = TextBox7.Text
End With
Else
Preg = InputBox("Esta celda ya tiene asignada una marca ¿quiere sobreescribirla?")
If Preg = "si" Then GoTo 3
If Preg <> "si" Then GoTo ?????
End If
End If
ApExcel = Nothing
End Sub
Private Sub Form1_MenuStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MenuStart
End Sub
End Class
Tampoco en ????? sé dónde enviarlo para que me deje introducir datos de nuevo.
Un saludo y muchas gracias.
Tengo un problema porque en el código que he hecho, abro un fichero excel y le introduzco datos desde una ventana de VB, el problema es que cuando le meto el segundo dato, me abre otro fichero excel, y así sucesivamente. Os pongo el código para que veáis lo que he hecho.Public Class Form1
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
End Sub
Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ApExcel As Object
Dim fila As Integer : Dim celda As String
Dim A
Dim B
ApExcel = CreateObject("Excel.application")
ApExcel.Visible = True
ApExcel.Workbooks.Open("c:\users\lista de materiales.xls")
ApExcel.DisplayAlerts = True
If (RadioButton1.Checked) = True Then
A = (Val(TextBox1.Text) - 500)
B = A \ 32
fila = A + (B + 1)
End If
If (RadioButton2.Checked) = True Then
A = Val(TextBox1.Text) \ 32
fila = Val(TextBox1.Text) + (A + 1)
End If
If (RadioButton1.Checked) = True Then
Dim Preg
celda = (((ApExcel.Sheets("hoja2").cells(fila, 1))).value)
If celda = "" Then
1: With ApExcel.Sheets("hoja2")
.cells(fila, 1) = TextBox1.Text
.cells(fila, 2) = TextBox2.Text
.cells(fila, 3) = TextBox3.Text
.cells(fila, 4) = TextBox4.Text
.cells(fila, 5) = TextBox5.Text
End With
Else
Preg = InputBox("Esta celda ya tiene asignada una marca ¿quiere sobreescribirla")
If Preg = "si" Then GoTo 1
If Preg <> "si" Then GoTo 4
End If
End If
If (RadioButton2.Checked) = True Then
Dim Preg
celda = (((ApExcel.Sheets("hoja1").cells(fila, 1))).value)
If celda = "" Then
3: With ApExcel.Sheets("hoja1")
.cells(fila, 1) = TextBox1.Text
.cells(fila, 2) = TextBox2.Text
.cells(fila, 3) = TextBox3.Text
.cells(fila, 4) = TextBox6.Text
.cells(fila, 5) = TextBox7.Text
End With
Else
Preg = InputBox("Esta celda ya tiene asignada una marca ¿quiere sobreescribirla?")
If Preg = "si" Then GoTo 3
If Preg <> "si" Then GoTo ?????
End If
End If
ApExcel = Nothing
End Sub
Private Sub Form1_MenuStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MenuStart
End Sub
End Class
Tampoco en ????? sé dónde enviarlo para que me deje introducir datos de nuevo.
Un saludo y muchas gracias.
Valora esta pregunta


0