Modificar código, para introducir bucles para que no tenga que repetir la misma instrucción varias veces.
Alguien me podría ayudar con un código para introducirle bucles y no repetir la misma acción varias veces. Anexo código.
Option Explicit
Sub Capturar_Folio_maritimo()
'Declaración de variables
'
Dim strTitulo As String
Dim Continuar As String
Dim TransRowRng As Range
Dim NewRow As Integer
Dim Limpiar As String
'
strTitulo = "Folios Maritimos"
'
Continuar = MsgBox("¿Desea guardar este Folio Maritimo?", vbYesNo + vbExclamation, strTitulo)
If Continuar = vbNo Then Exit Sub
'
Set TransRowRng = ThisWorkbook.Worksheets("Folios Maritimos").Cells(1, 1).CurrentRegion
NewRow = TransRowRng.Rows.Count + 1
With ThisWorkbook.Worksheets("Folios Maritimos")
. Cells(NewRow, 1).Value = UCase(ThisWorkbook. Sheets(2). Range("B2"))
. Cells(NewRow, 2).Value = UCase(ThisWorkbook. Sheets(2). Range("B3"))
. Cells(NewRow, 3).Value = UCase(ThisWorkbook. Sheets(2). Range("B4"))
. Cells(NewRow, 4).Value = UCase(ThisWorkbook. Sheets(2). Range("B5"))
. Cells(NewRow, 5).Value = UCase(ThisWorkbook. Sheets(2). Range("B6"))
. Cells(NewRow, 6).Value = UCase(ThisWorkbook. Sheets(2). Range("B7"))
. Cells(NewRow, 7).Value = UCase(ThisWorkbook. Sheets(2). Range("B8"))
. Cells(NewRow, 8).Value = UCase(ThisWorkbook. Sheets(2). Range("B9"))
. Cells(NewRow, 9).Value = UCase(ThisWorkbook. Sheets(2). Range("B10"))
. Cells(NewRow, 10).Value = UCase(ThisWorkbook. Sheets(2). Range("B11"))
. Cells(NewRow, 11).Value = UCase(ThisWorkbook. Sheets(2). Range("B12"))
. Cells(NewRow, 12).Value = UCase(ThisWorkbook. Sheets(2). Range("B13"))
. Cells(NewRow, 13).Value = UCase(ThisWorkbook. Sheets(2). Range("B14"))
. Cells(NewRow, 14).Value = UCase(ThisWorkbook. Sheets(2). Range("B15"))
. Cells(NewRow, 15).Value = UCase(ThisWorkbook. Sheets(2). Range("B16"))
. Cells(NewRow, 16).Value = UCase(ThisWorkbook. Sheets(2). Range("B17"))
End With
'
MsgBox "Guardado con Exito", vbInformation, strTitulo
Limpiar = MsgBox("¿Deseas limpiar los campos de la captura?", vbYesNo, strTitulo)
If Limpiar = vbYes Then
With ActiveWorkbook.Sheets(2)
. Range("B2"). ClearContents
. Range("B3"). ClearContents
. Range("B4"). ClearContents
. Range("B5"). ClearContents
. Range("B6"). ClearContents
. Range("B7"). ClearContents
. Range("B8"). ClearContents
. Range("B9"). ClearContents
. Range("B10"). ClearContents
. Range("B11"). ClearContents
. Range("B12"). ClearContents
. Range("B13"). ClearContents
. Range("B14"). ClearContents
. Range("B15"). ClearContents
. Range("B16"). ClearContents
. Range("B17"). ClearContents
End With
Else
End If
'
End Sub
Hola, en dado caso de que la hoja de destino (donde se van a colocar los valores seleccionados) tenga celdas combinadas, es decir, si en el ejemplo . Cells(NewRow, 1).Value = UCase(ThisWorkbook. Sheets(2). Range("B2")) el Range("B2")) fuera un conjunto de celdas combinadas. cómo se podría copiar? - mackenzie10
Plantea la pregunta directamente, es muy difícil responder acá y encima no permite insertar ningún objeto y el texto queda todo "en continuado". Saludos - Anónimo