Que modificación debo hacer para que este código, no me lleve hasta la hoja seleccionada en el combobox

Private Sub UserForm_Initialize()

For i = 55 To Sheets.Count

ComboBox1.AddItem (Sheets(i).Name)

Next i

ComboBox1.ListIndex = 0

End Sub

1 respuesta

Respuesta
1

Este código lo único que hace es 'antes de mostrar el userform' llenar un combobox con el nombre de las hojas del libro... Hasta aquí es todo lo que hace... No te lleva a ninguna hoja en particular.

Quizás tengas otro código en el formulario que te esta activando la hoja ... Algo como Sheets(----).Select

Comenta o envia el resto del código para analizarlo.

Y si encontrás el fallo no olvides valorar la respuesta (excelente o buena) para dar por creado e tema.

Sdos.

Elsa

http://aplicaexcel.galeon.com/macros.htm

Te agradezco me ayudes Elsa, aquí tengo todos los códigos con los que estoy trabajando.

Es un proyecto que tiene 50 hojas y quiero insertar datos con mi formulario a cualquiera de estas hojas que tienen el mismo formato,  pero que no me muestre la hoja seleccionada donde fueron insertados al hacer click en mi botón insertar datos.

Private Sub CommandButton1_Click()

Sheets(ComboBox1.Value).Select

Dim fila As Integer
Dim final As Integer

For fila = 7 To 37
If Cells(fila, 2) = "" Then
Cells(fila, 2) = TextBox2.Text
Cells(fila, 3) = TextBox3.Text
Cells(fila, 4) = TextBox4.Text
Cells(fila, 8) = TextBox5.Text
Cells(fila, 9) = TextBox6.Text
Cells(fila, 10) = TextBox7.Text
final = fila - 1
Exit For
End If
Next
End Sub

_____________________________________________________________________________________________
Private Sub CommandButton2_Click()
End
End Sub

_____________________________________________________________________________________________

Private Sub UserForm_Initialize()

For i = 55 To Sheets.Count

ComboBox1.AddItem (Sheets(i).Name)

Next i

ComboBox1.ListIndex = 0

End Sub

En primer lugar el error está en que si el proyecto tiene 50 hojas no podés cargar en el combo a partir de la hoja 55 ... no tiene sentido.

Para colocar en el bucle todas las 50 hojas debiera ser:

For i = 1 To Sheets.Count

Luego, para que solo envíe datos a la hoja seleccionada pero sin posicionarse en ella así te debiera quedar el código:

Private Sub CommandButton1_Click()
'x Elsamatilde
Dim fila As Integer
Dim final As Integer
'se define la hoja como variable
Set ho1 = Sheets(ComboBox1.Value)
For fila = 7 To 37
    If ho1.Cells(fila, 2) = "" Then
        ho1.Cells(fila, 2) = TextBox2.Text
        ho1.Cells(fila, 3) = TextBox3.Text
        ho1.Cells(fila, 4) = TextBox4.Text
        ho1.Cells(fila, 8) = TextBox5.Text
        ho1.Cells(fila, 9) = TextBox6.Text
        ho1.Cells(fila, 10) = TextBox7.Text
        final = fila - 1
        Exit For
    End If
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas