¿Cómo hago para añadir en una nueva hoja de calculo?VBA
Tengo el siguiente código que copie de un ejemplo que descargue pero cuando quiero añadir lo que hace es hacerlo en la misma hoja de calculo toda la información de las textbox, ¿cómo haría para hacer que cada vez que añada un nuevo cliente aparezca en una nueva hoja de calculo?
Public ubica As String
Public control As Byte
Public filalibre As Integer
Public ind As Byte
Private Sub CheckBox1_Click()
End Sub
Private Sub cmdAceptar_Click()
'controlo si se trata de un reg nuevo o del desplegable
If ubica = "" Then Exit Sub
If control > 0 Then
'guardo cambios al registro
Sheets("Hoja2").Range(ubica).Offset(0, 1).Value = TextBox2
Sheets("Hoja2").Range(ubica).Offset(0, 2).Value = TextBox3
control = 0
Else
'creo nuevo registro
'ubico cuál es la primer fila libre
filalibre = Sheets("Hoja2").Range("A65500").End(xlUp).Row + 1
Sheets("Hoja2").Cells(filalibre, 1).Value = TextBox1
Sheets("Hoja2").Cells(filalibre, 2).Value = TextBox2
Sheets("Hoja2").Cells(filalibre, 3).Value = TextBox3
'actualizo rango del combobox
ComboBox1.RowSource = "Hoja2!A2:A" & filalibre
'oculto nuevamente el botón de nvo registro
TextBox1.Visible = False
End If
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3 = ""
ComboBox1.Value = ""
ComboBox1.SetFocus
End Sub
Private Sub cmdCancelar_Click()
control = 0
TextBox1 = ""
TextBox1.Visible = False
TextBox2 = ""
TextBox3 = ""
ComboBox1.Value = ""
ComboBox1.SetFocus
End Sub
Private Sub cmdEliminar_Click()
If ubica = "" Then Exit Sub
ind = 1
Sheets("Hoja2").Range(ubica).EntireRow.Delete
TextBox2.Value = ""
TextBox3 = ""
'actualizo rango del combobox
ComboBox1.RowSource = "Hoja2!A2:A" & filalibre
ComboBox1.Value = ""
control = 0
ComboBox1.SetFocus
End Sub
Private Sub cmdAnterior_Click()
'no podrá mostrar por encima de fila 2
If ubica = "" Then Exit Sub
If Range(ubica).Row = 2 Then Exit Sub
ComboBox1.Value = Sheets("Hoja2").Range(ubica).Offset(-1, 0).Value
End Sub
Private Sub cmdSiguiente_Click()
If ubica = "" Then Exit Sub
If Range(ubica).Row = filalibre Then Exit Sub
ComboBox1.Value = Sheets("Hoja2").Range(ubica).Offset(1, 0).Value
End Sub
Private Sub cmdPrimero_Click()
If ubica = "" Then Exit Sub
ComboBox1.Value = Sheets("Hoja2").Range("A2").Value
End Sub
Private Sub cmdUltimo_Click()
'ubico cuál es la primer fila libre
If ubica = "" Then Exit Sub
filalibre = Sheets("Hoja2").Range("A65500").End(xlUp).Row + 1
ComboBox1.Value = Sheets("Hoja2").Cells(filalibre - 1, 1).Value
End Sub
Private Sub ComboBox1_Click()
If ind = 1 Then
ind = 0
Exit Sub
End If
dato = ComboBox1.Value
rango = "A2:A10"
Set midato = Sheets("Hoja2").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox2.Value = Sheets("Hoja2").Range(ubica).Offset(0, 1).Value
TextBox3.Value = Sheets("Hoja2"). Range(ubica).Offset(0, 2).Value
'completar con otros controles
'indico que se encontró el registro
control = 1
Else
MsgBox "No se encuentra el dato buscado. Para crear nuevo registro presiona el botón que se encuentra debajo"
End If
Set midato = Nothing
End Sub
Private Sub CommandButton1_Click()
'NVO REGISTRO
'muestro el textbox para codigo
TextBox1.Visible = True
TextBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
Application.Visible = True
ActiveWorkbook.Sheets("Hoja1").Activate
Unload Me
End Sub
Private Sub UserForm_Initialize()
'establezco la primer fila libre para agregar registros
filalibre = Sheets("Hoja2").Range("A65500").End(xlUp).Row
ComboBox1.RowSource = "Hoja2!A2:A" & filalibre
TextBox1.Visible = False
End Sub
de verdad si me pudieras ayudar te agradeceria muuuucho =)
Public ubica As String
Public control As Byte
Public filalibre As Integer
Public ind As Byte
Private Sub CheckBox1_Click()
End Sub
Private Sub cmdAceptar_Click()
'controlo si se trata de un reg nuevo o del desplegable
If ubica = "" Then Exit Sub
If control > 0 Then
'guardo cambios al registro
Sheets("Hoja2").Range(ubica).Offset(0, 1).Value = TextBox2
Sheets("Hoja2").Range(ubica).Offset(0, 2).Value = TextBox3
control = 0
Else
'creo nuevo registro
'ubico cuál es la primer fila libre
filalibre = Sheets("Hoja2").Range("A65500").End(xlUp).Row + 1
Sheets("Hoja2").Cells(filalibre, 1).Value = TextBox1
Sheets("Hoja2").Cells(filalibre, 2).Value = TextBox2
Sheets("Hoja2").Cells(filalibre, 3).Value = TextBox3
'actualizo rango del combobox
ComboBox1.RowSource = "Hoja2!A2:A" & filalibre
'oculto nuevamente el botón de nvo registro
TextBox1.Visible = False
End If
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3 = ""
ComboBox1.Value = ""
ComboBox1.SetFocus
End Sub
Private Sub cmdCancelar_Click()
control = 0
TextBox1 = ""
TextBox1.Visible = False
TextBox2 = ""
TextBox3 = ""
ComboBox1.Value = ""
ComboBox1.SetFocus
End Sub
Private Sub cmdEliminar_Click()
If ubica = "" Then Exit Sub
ind = 1
Sheets("Hoja2").Range(ubica).EntireRow.Delete
TextBox2.Value = ""
TextBox3 = ""
'actualizo rango del combobox
ComboBox1.RowSource = "Hoja2!A2:A" & filalibre
ComboBox1.Value = ""
control = 0
ComboBox1.SetFocus
End Sub
Private Sub cmdAnterior_Click()
'no podrá mostrar por encima de fila 2
If ubica = "" Then Exit Sub
If Range(ubica).Row = 2 Then Exit Sub
ComboBox1.Value = Sheets("Hoja2").Range(ubica).Offset(-1, 0).Value
End Sub
Private Sub cmdSiguiente_Click()
If ubica = "" Then Exit Sub
If Range(ubica).Row = filalibre Then Exit Sub
ComboBox1.Value = Sheets("Hoja2").Range(ubica).Offset(1, 0).Value
End Sub
Private Sub cmdPrimero_Click()
If ubica = "" Then Exit Sub
ComboBox1.Value = Sheets("Hoja2").Range("A2").Value
End Sub
Private Sub cmdUltimo_Click()
'ubico cuál es la primer fila libre
If ubica = "" Then Exit Sub
filalibre = Sheets("Hoja2").Range("A65500").End(xlUp).Row + 1
ComboBox1.Value = Sheets("Hoja2").Cells(filalibre - 1, 1).Value
End Sub
Private Sub ComboBox1_Click()
If ind = 1 Then
ind = 0
Exit Sub
End If
dato = ComboBox1.Value
rango = "A2:A10"
Set midato = Sheets("Hoja2").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox2.Value = Sheets("Hoja2").Range(ubica).Offset(0, 1).Value
TextBox3.Value = Sheets("Hoja2"). Range(ubica).Offset(0, 2).Value
'completar con otros controles
'indico que se encontró el registro
control = 1
Else
MsgBox "No se encuentra el dato buscado. Para crear nuevo registro presiona el botón que se encuentra debajo"
End If
Set midato = Nothing
End Sub
Private Sub CommandButton1_Click()
'NVO REGISTRO
'muestro el textbox para codigo
TextBox1.Visible = True
TextBox1.SetFocus
End Sub
Private Sub CommandButton2_Click()
Application.Visible = True
ActiveWorkbook.Sheets("Hoja1").Activate
Unload Me
End Sub
Private Sub UserForm_Initialize()
'establezco la primer fila libre para agregar registros
filalibre = Sheets("Hoja2").Range("A65500").End(xlUp).Row
ComboBox1.RowSource = "Hoja2!A2:A" & filalibre
TextBox1.Visible = False
End Sub
de verdad si me pudieras ayudar te agradeceria muuuucho =)
3 Respuestas
Respuesta de solnegro
1
Respuesta
1
Respuesta de vorkosigan
1