Macro diseñada para copiar registros de un form a una hoja excel

Segundo diseñe esta macro para que copie los valores del textbox a una hoja excel llamada histórico, pero que primero busque en la hoja histórico la fila a partir de la 2 en la columna 1 la vacía y lo copie pero no lo hace me podrías decir en que estoy fallando

Y perdona por abusar de tu tiempo

Adolfo

Private Sub CommandButton2_Click() 'registrar
Dim i As Integer
i = 2
Do While Worksheets("histórico").Cells(i, 1).Value <> ""
If TextBox1 <> "" Then
Worksheets("histórico").Cells(i, 1).Value = TextBox1
Worksheets("histórico").Cells(i, 2).Value = TextBox2
Worksheets("histórico").Cells(i, 3).Value = TextBox3
Worksheets("histórico").Cells(i, 4).Value = TextBox4
Worksheets("histórico").Cells(i, 5).Value = TextBox5
Worksheets("histórico").Cells(i, 6).Value = TextBox6
Worksheets("histórico").Cells(i, 7).Value = TextBox7
Worksheets("histórico").Cells(i, 8).Value = TextBox8
Worksheets("histórico").Cells(i, 9).Value = TextBox9
Worksheets("histórico").Cells(i, 10).Value = TextBox10
Worksheets("histórico").Cells(i, 11).Value = TextBox11
Worksheets("histórico").Cells(i, 12).Value = TextBox15
Worksheets("histórico").Cells(i, 13).Value = TextBox16
Worksheets("histórico").Cells(i, 14).Value = TextBox17
Worksheets("histórico").Cells(i, 15).Value = TextBox18
Worksheets("histórico").Cells(i, 16).Value = TextBox19
Worksheets("histórico").Cells(i, 17).Value = TextBox20
Worksheets("histórico").Cells(i, 18).Value = TextBox21
Worksheets("histórico").Cells(i, 19).Value = TextBox22
Worksheets("histórico").Cells(i, 20).Value = TextBox23
Worksheets("histórico").Cells(i, 21).Value = TextBox24
Worksheets("histórico").Cells(i, 22).Value = TextBox25
Worksheets("histórico").Cells(i, 23).Value = TextBox26
Worksheets("histórico").Cells(i, 24).Value = TextBox27
Worksheets("histórico").Cells(i, 25).Value = TextBox28
Worksheets("histórico").Cells(i, 26).Value = TextBox29
Worksheets("histórico").Cells(i, 27).Value = TextBox30
Worksheets("histórico").Cells(i, 28).Value = TextBox31
Worksheets("histórico").Cells(i, 29).Value = TextBox32
Worksheets("histórico").Cells(i, 30).Value = TextBox33
Worksheets("histórico").Cells(i, 31).Value = TextBox34
Worksheets("histórico").Cells(i, 32).Value = TextBox35
Worksheets("histórico").Cells(i, 33).Value = TextBox36
Worksheets("histórico").Cells(i, 34).Value = TextBox37
Worksheets("histórico").Cells(i, 35).Value = TextBox38
Worksheets("histórico").Cells(i, 36).Value = TextBox39
Worksheets("histórico").Cells(i, 37).Value = TextBox40
Worksheets("histórico").Cells(i, 38).Value = TextBox41
Worksheets("histórico").Cells(i, 39).Value = TextBox42
Worksheets("histórico").Cells(i, 40).Value = TextBox43
Worksheets("histórico").Cells(i, 41).Value = TextBox44
Worksheets("histórico").Cells(i, 42).Value = TextBox45
Worksheets("histórico").Cells(i, 43).Value = TextBox46
Worksheets("histórico").Cells(i, 44).Value = TextBox47
Worksheets("histórico").Cells(i, 45).Value = TextBox48
Worksheets("histórico").Cells(i, 46).Value = TextBox49
Worksheets("histórico").Cells(i, 47).Value = TextBox50
Worksheets("histórico").Cells(i, 48).Value = TextBox51
Worksheets("histórico").Cells(i, 49).Value = TextBox52
Worksheets("histórico").Cells(i, 50).Value = TextBox53
Worksheets("histórico").Cells(i, 51).Value = TextBox54
Worksheets("histórico").Cells(i, 52).Value = TextBox55
Worksheets("histórico").Cells(i, 53).Value = TextBox56
Worksheets("histórico").Cells(i, 54).Value = TextBox57
Worksheets("histórico").Cells(i, 55).Value = TextBox58
Worksheets("histórico").Cells(i, 56).Value = TextBox59
Worksheets("histórico").Cells(i, 57).Value = TextBox60
Worksheets("histórico").Cells(i, 58).Value = TextBox61
Worksheets("histórico").Cells(i, 59).Value = TextBox62
Worksheets("histórico").Cells(i, 60).Value = TextBox60
Worksheets("histórico").Cells(i, 61).Value = TextBox61
Worksheets("histórico").Cells(i, 62).Value = TextBox62
End If
i = i + 1
Loop
End Sub

1 Respuesta

Respuesta
1

Te dejo el código modificado para lo que necesitas, como veras se han reducido las líneas del mismo, pero en esencia hace lo mismo (fijate en el uso que se le da a la función CONTROLS), en cuanto a tu código no funcionaba porque habías definido mal la condición del WHILE ya que lo tenias en <>"" y debía configurarse como

Do While Worksheets("histórico").Cells(i, 1).Value = ""

para que pudiera comenzar......en fin, te dejo el código, pruébalo y me comentas como te va. Saludos

Private Sub CommandButton2_Click() 'registrar
''Modificada por FSerrano en 120322
''para adolfosergio en TodoExpertos.com
''lleva los valores de los cuadros de texto de un userform a la hoja especificada
Dim i As Integer: Dim CTRL As Control
'Se determina cual es la primera fila vacia en la columna A, para pegar los datos
i = Sheets("histórico").Columns(1).SpecialCells(xlCellTypeBlanks).Cells(1, 1).Row
If TextBox1 <> "" Then
     For j = 1 To 62 'se supone que existen 62 TextBox
         Set CTRL = Me.Controls("TextBox"& j)
         Worksheets("histórico").Cells(i, j).Value = CTRL.Value
     Next
End If
End Sub

NO OLVIDES FINALIZAR Y PUNTUAR LA PREGUNTA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas