Que quiere decir este codigo?

Estoy trabajado en un proyecto el cual ya tenia unos macros incluidos, tengo Hacer algunos cambios pero no entiendo algunas partes del codigo podrian porfavor decirme que significan estos codigos y que debo Hacer para cambiarlos.

Sub IngresarDatos()
'
' Ingresar_Datos Macro
'

    Application.ScreenUpdating = False
    Sheets("DataBase Arbeitnehmer").Select
    Range("A5").Select
    Selection.ListObject.ListRows.Add (1)
    Sheets("Arbeitnehmer einfügen").Select
    Range("C6:C24").Select
    Selection.Copy
    Sheets("DataBase Arbeitnehmer").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
        ActiveWorkbook.Worksheets("DataBase Arbeitnehmer").ListObjects("DataBase"). _
        Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("DataBase Arbeitnehmer").ListObjects("DataBase"). _
        Sort.SortFields.Add Key:=Range("DataBase[[#All],[ID No.]]"), SortOn:= _
        xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("DataBase Arbeitnehmer").ListObjects("DataBase" _
        ).Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("Arbeitnehmer einfügen").Select
    Application.CutCopyMode = False
    Range("C6:C24").Select
    Selection.ClearContents
    Range("C3").Select
'For J = 2 To 5000
'If Sheet4.Cells(J, 2) = "" Then
 'H = J
'Exit For
'End If

'Next J
'Sheet4.Cells(H, 2) = Sheet2.Cells(3, 3)
'Sheet4.Cells(H, 3) = Sheet2.Cells(3, 5)
'Range("E3") = Range("E3").Value + 1

    Application.ScreenUpdating = True
End Sub

Sub SaveInformation()

For i = 5 To 100
If Sheet61.Cells(i, 2) = "" Then
 p = i
Exit For

End If

Next i

Application.ScreenUpdating = False
Sheet61.Cells(i, 1) = Sheet96.Cells(3, 3)
Sheet61.Cells(i, 2) = Sheet96.Cells(6, 3)
Sheet61.Cells(i, 3) = Sheet96.Cells(7, 3)
Sheet61.Cells(i, 4) = Sheet96.Cells(8, 3)
Sheet61.Cells(i, 5) = Sheet96.Cells(9, 3)
Sheet61.Cells(i, 6) = Sheet96.Cells(10, 3)
Sheet61.Cells(i, 7) = Sheet96.Cells(11, 3)
Sheet61.Cells(i, 8) = Sheet96.Cells(12, 3)
Sheet61.Cells(i, 9) = Sheet96.Cells(13, 3)
Sheet61.Cells(i, 10) = Sheet96.Cells(14, 3)
Sheet61.Cells(i, 11) = Sheet96.Cells(15, 3)
Sheet61.Cells(i, 12) = Sheet96.Cells(16, 3)
Sheet61.Cells(i, 13) = Sheet96.Cells(17, 3)
Sheet61.Cells(i, 14) = Sheet96.Cells(18, 3)
Sheet61.Cells(i, 15) = Sheet96.Cells(19, 3)
Sheet61.Cells(i, 16) = Sheet96.Cells(20, 3)
Sheet61.Cells(i, 17) = Sheet96.Cells(21, 3)
Sheet61.Cells(i, 18) = Sheet96.Cells(22, 3)

For j = 2 To 100
If Sheet62.Cells(j, 10) = "" Then
 H = j
Exit For

End If

Next j

Sheet62.Cells(j, 10) = Sheet61.Cells(5, 2)
Sheet62.Cells(j, 11) = Sheet61.Cells(5, 1)
Sheet62.Cells(j, 12) = Sheet96.Cells(3, 3)

MsgBox "gespeichert!"

Sheet96.Cells(3, 3) = Sheet96.Cells(3, 3) + 1
For i = 6 To 24
Sheet96.Cells(i, 3) = ""
Next i
Application.ScreenUpdating = True
End Sub

La parte del codigo que puese en mayuscula es la que debo majorar pero lamentablemente no la entiendo.

En alguna parte de este codigo se estipula el ID del empleado y se copian ciertas informaciones del mismo. Quiero cambiarlo pero nose como se hace.

1 Respuesta

Respuesta
1

Entiendo esta es la parte sobre la que preguntas:

For j = 2 To 100
If Sheet62.Cells(j, 10) = "" Then
 H = j
Exit For

End If

Next j

Sheet62.Cells(j, 10) = Sheet61.Cells(5, 2)
Sheet62.Cells(j, 11) = Sheet61.Cells(5, 1)
Sheet62.Cells(j, 12) = Sheet96.Cells(3, 3)

MsgBox "gespeichert!"

Sheet96.Cells(3, 3) = Sheet96.Cells(3, 3) + 1
For i = 6 To 24
Sheet96.Cells(i, 3) = ""
Next i

Te comento línea a línea:

For j = 2 To 100   'un bucle que recorrerá del 2 al 100, en este caso se utiliza para recorrer de la fila 2 a la 100

If Sheet62.Cells(j, 10) = "" Then  'de la hoja 62 (tienes que mirar cuál es esa hoja con ese Codename).

'Es un condicional que evalua si la celda de la columna 10 (col J) en cada una de esas filas está vacía.. en cuyo caso define una variable H con el número de fila
 H = j

'y sale del bucle
Exit For

End If

Next j  'termina el bucle

'rellena a continuación las celdas de las columnas 10,11 y 12 de la hoja62 con datos de las celdas de las hojas 61 y 96, y celdas B5 := cells(5,2), A5:= cells(5,1) y C3:= cells(3,3)

Sheet62.Cells(j, 10) = Sheet61.Cells(5, 2)
Sheet62.Cells(j, 11) = Sheet61.Cells(5, 1)
Sheet62.Cells(j, 12) = Sheet96.Cells(3, 3)

MsgBox "gespeichert!"   'saca un mensaje...

'vuelve a completar la celda C3 de la hoja96, sumando 1 al valor que existia

Sheet96.Cells(3, 3) = Sheet96.Cells(3, 3) + 1

'nuevo bucle que dejará vacía la columna C, desde las filas 6 a 24 de la hoja96
For i = 6 To 24
Sheet96.Cells(i, 3) = ""
Next i

Espero te oriente, sin tener referencias de dónde está la información, qué campos en qué columnas, etc.. poco más se puede decir.

Saludos

www.excelforo.com

www.excelforo.blogspot.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas