Guardar en dos hojas continuas...

Hola con el siguiente código he logrado guardar los datos en la hoja seleccionada por el checkbox pero como hago para que los guarde en ods hojas diferentes?

Private Sub CommandButton1_Click()
Dim i As Integer

Dim final As Integer

Dim j As Integer

Dim actual As Double
For i = 1 To 10000

If Hoja2.Cells(i, 1) = "" Then

final = i

Exit For

End If

Next
If CheckBox1.Value = True Then
Worksheets("Yopal").Cells(final, 1) = ComboBox1

Worksheets("Yopal").Cells(final, 2) = TextBox1.Value

Worksheets("Yopal").Cells(final, 3) = TextBox2.Value

Worksheets("Yopal").Cells(final, 4) = TextBox3.Value

Worksheets("Yopal").Cells(final, 5) = TextBox4.Value

Worksheets("Yopal").Cells(final, 6) = TextBox5.Value

Worksheets("Yopal").Cells(final, 7) = DTPicker1.Value
UserForm2.ComboBox1 = ""

UserForm2.TextBox1 = ""

UserForm2.TextBox2 = ""

UserForm2.TextBox3 = ""

UserForm2.TextBox4 = ""

UserForm2.TextBox5 = ""

UserForm2.TextBox6 = ""


Else


For i = 1 To 10000

If Hoja3.Cells(i, 1) = "" Then

final = i

Exit For

End If

Next

If CheckBox2.Value = True Then
Worksheets("CASIMENA").Cells(final, 1) = ComboBox1

Worksheets("CASIMENA").Cells(final, 2) = TextBox1.Value

Worksheets("CASIMENA").Cells(final, 3) = TextBox2.Value

Worksheets("CASIMENA").Cells(final, 4) = TextBox3.Value

Worksheets("CASIMENA").Cells(final, 5) = TextBox4.Value

Worksheets("CASIMENA").Cells(final, 6) = TextBox5.Value

Worksheets("CASIMENA").Cells(final, 7) = DTPicker1.Value

UserForm2.ComboBox1 = ""

UserForm2.TextBox1 = ""

UserForm2.TextBox2 = ""

UserForm2.TextBox3 = ""

UserForm2.TextBox4 = ""

UserForm2.TextBox5 = ""

UserForm2.TextBox6 = ""


End If

End If

UserForm2.Hide


End Sub

Por favor ayudenme....

Slds!

Crysthian

1 respuesta

Respuesta
1

Repite las instrucciones

If CheckBox1.Value = True Then
Worksheets("Yopal").Cells(final, 1) = ComboBox1
Worksheets("Yopal").Cells(final, 2) = TextBox1.Value

Así

If CheckBox1.Value = True Then
Worksheets("Yopal").Cells(final, 1) = ComboBox1
Worksheets("hoja2").Cells(final, 1) = ComboBox1

Worksheets("Yopal").Cells(final, 2) = TextBox1.Value

Worksheets("hoja2").Cells(final, 2) = TextBox1.Value

'... todo lo demás

Saludos. Dam

No es lo que busco, lo que sucede es que cada hoja tiene un checkbox para seleccionarla si yo selecciono YOPAL me guarda en YOPAL si selecciono CASIMENA o Hoja2 como la llamas tu guarda solo en esa hoja pero si selecciono las dos hojas no se comomhacerlo!!!

Es eso lo que necesito que al seleccionar las dos hojas guarde la información en la dos hojas y deje todos los campos limpios.

Slds!

Crysthian

Prueba la siguiente:

Private Sub CommandButton1_Click()
'por.dam
    'obtiene la última fila de la hoja2 y hoja3
 ufila2 = Worksheets("Hoja2"). Range("A1").End(xlDown).Row
    ufila3 = Worksheets("Hoja3"). Range("A1").End(xlDown). Row
If CheckBox1.Value = True Then
    If CheckBox2.Value = True Then
        'los 2 checkbox está prendidos
        Worksheets("Yopal").Cells(ufila2, 1) = ComboBox1
        Worksheets("Yopal").Cells(ufila2, 2) = TextBox1.Value
        Worksheets("Yopal").Cells(ufila2, 3) = TextBox2.Value
        Worksheets("Yopal").Cells(ufila2, 4) = TextBox3.Value
        Worksheets("Yopal").Cells(ufila2, 5) = TextBox4.Value
        Worksheets("Yopal").Cells(ufila2, 6) = TextBox5.Value
        Worksheets("Yopal").Cells(ufila2, 7) = DTPicker1.Value
        Worksheets("CASIMENA").Cells(ufila3, 1) = ComboBox1
        Worksheets("CASIMENA").Cells(ufila3, 2) = TextBox1.Value
        Worksheets("CASIMENA").Cells(ufila3, 3) = TextBox2.Value
        Worksheets("CASIMENA").Cells(ufila3, 4) = TextBox3.Value
        Worksheets("CASIMENA").Cells(ufila3, 5) = TextBox4.Value
        Worksheets("CASIMENA").Cells(ufila3, 6) = TextBox5.Value
        Worksheets("CASIMENA").Cells(ufila3, 7) = DTPicker1.Value
        'limpia
        UserForm2.ComboBox1 = ""
        UserForm2.TextBox1 = ""
        UserForm2.TextBox2 = ""
        UserForm2.TextBox3 = ""
        UserForm2.TextBox4 = ""
        UserForm2.TextBox5 = ""
        UserForm2.TextBox6 = ""
    Else
        'solo está prendido el 1
        Worksheets("Yopal").Cells(ufila2, 1) = ComboBox1
        Worksheets("Yopal").Cells(ufila2, 2) = TextBox1.Value
        Worksheets("Yopal").Cells(ufila2, 3) = TextBox2.Value
        Worksheets("Yopal").Cells(ufila2, 4) = TextBox3.Value
        Worksheets("Yopal").Cells(ufila2, 5) = TextBox4.Value
        Worksheets("Yopal").Cells(ufila2, 6) = TextBox5.Value
        Worksheets("Yopal").Cells(ufila2, 7) = DTPicker1.Value
        'limpia
        UserForm2.ComboBox1 = ""
        UserForm2.TextBox1 = ""
        UserForm2.TextBox2 = ""
        UserForm2.TextBox3 = ""
        UserForm2.TextBox4 = ""
        UserForm2.TextBox5 = ""
        UserForm2.TextBox6 = ""
    End If
Else
    If CheckBox2.Value = True Then
        'solo está prendido el 2
        Worksheets("CASIMENA").Cells(ufila3, 1) = ComboBox1
        Worksheets("CASIMENA").Cells(ufila3, 2) = TextBox1.Value
        Worksheets("CASIMENA").Cells(ufila3, 3) = TextBox2.Value
        Worksheets("CASIMENA").Cells(ufila3, 4) = TextBox3.Value
        Worksheets("CASIMENA").Cells(ufila3, 5) = TextBox4.Value
        Worksheets("CASIMENA").Cells(ufila3, 6) = TextBox5.Value
        Worksheets("CASIMENA").Cells(ufila3, 7) = DTPicker1.Value
        'limpia
        UserForm2.ComboBox1 = ""
        UserForm2.TextBox1 = ""
        UserForm2.TextBox2 = ""
        UserForm2.TextBox3 = ""
        UserForm2.TextBox4 = ""
        UserForm2.TextBox5 = ""
        UserForm2.TextBox6 = ""
    End If
End If
UserForm2.Hide
End Sub

Lo que no entendí, es por qué obtienes la última fila de hoja2 y hoja3, no deberías obtener la última fila de las hojas Yopal y CASIMENA?

Si necesitas las últimas filas de Yopal y CASIMENA cambia estas líneas

ufila2 = Worksheets("Yopal").Range("A1").End(xlDown).Row
ufila3 = Worksheets("CASIMENA").Range("A1").End(xlDown).Row

Saludos. Dam

Dam tu código esta excelente pero mira que curiosamente no pega nada en ninguna de las hojas. Al principio me genero un error y era por lo que tu mencionaste :

ufila2 = Worksheets("Yopal").Range("A1").End(xlDown).Row

ufila3 = Worksheets("CASIMENA").Range("A1").End(xlDown).Row

Lo corregí y no causo error alguno pero ahora no guarda!

Y trate de todas las formas posibles y no logre que me guarde la información, si me das tu correo te envío la aplicación.

Slds!

Crysthian

mail: [email protected]

A lo mejor estaba en ejecución tu macro, termina la macro y ya puedes guardar.

Saludos. Dam

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas