Saltar al contenido

Macro para convertir en número sólo en una columna


Recommended Posts

publicado

Macro para convertir en número sólo en una columna

Buenas a todos: Ante todo felicitar por tan excelente foro que contribuye mucho para usuarios como yo, ávidos de aprender cada día.

Tengo este código que hace que desde la hoja “Formulario_pantalla”copie algunas celdas y rango a otra hoja llamada “Kardex”. En realidad lo hace todo bien a excepción del copiado de la celda AJ5 (=TEXTO(AF3,"000000") de la primera hoja mencionada a la otra hoja a partir de la celda A4 donde aparece el icono de advertencia “El número de esta celda tiene formato de texto o va precedido por un apóstrofo” y luego manualmente tengo que convertir en número. Entonces por favor necesito el código que complemente esta tarea.

Gracias,

Carlos Carnero Gálvez

Private Sub CommandButton3_Click()

Dim I As Range

Dim RowI, ColI, LastRow As Long

Dim NumRow As Byte

Application.ScreenUpdating = False

If Range("AA33") <> "" Then

Set I = Range("AA33")

RowI = I.Row

ColI = I.Column

If Range("AA34") <> "" Then

LastRow = Cells(RowI, ColI).End(xlDown).Row

NumRow = LastRow - RowI + 1

Else

LastRow = 33

NumRow = LastRow - RowI + 1

End If

Worksheets("kardex").Activate

With Worksheets("kardex")

For NumRowAdd = 1 To NumRow

.Range("A4").EntireRow.Insert

.Range("H5:R5").Copy

.Range("H4:R4").PasteSpecial xlPasteFormulas

.Range("A5:R5").Copy

.Range("A4:R4").PasteSpecial Paste:=xlPasteFormats

Application.CutCopyMode = False

.Rows(4).EntireRow.AutoFit

.Cells(4, 6) = Worksheets("Formulario_pantalla").Cells(LastRow, ColI)

.Cells(4, 7) = Worksheets("Formulario_pantalla").Cells(LastRow, ColI + 1)

.Cells(4, 1) = Worksheets("Formulario_pantalla").Range("AJ5")

.Cells(4, 2) = Worksheets("Formulario_pantalla").Range("AA3")

.Cells(4, 4) = Worksheets("Formulario_pantalla").Range("AB3")

.Cells(4, 5) = Worksheets("Formulario_pantalla").Range("AC3")

.Cells(4, 3) = Worksheets("Formulario_pantalla").Range("AJ9")

LastRow = LastRow - 1

Next

.Range("A1").Activate

End With

End If

With Worksheets("Formulario_pantalla")

.Range("AE9:AF9").ClearContents

.Range("B6:B15").ClearContents

.Range("AE11:AF11").ClearContents

.Range("AA33:AB47").ClearContents

.Range("J51:P100").ClearContents

.Range("AG3:AH3").ClearContents

End With

C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg

End Sub

20150222 Convertir en número sólo en una columna.xls

publicado

Hola

Pudieras incluir en tu codigo esta linea que ayudaria a darle el tipo de formato;

.Columns(1).NumberFormat = "000000"

publicado

Estimado Enigma25: Te agradecería por favor indicarme exactamente en que lugar debó incluir el código que me indicas, ya que estoy intentando en:

  • .Range("A4").EntireRow.Insert.Columns(1).NumberFormat = "000000"
  • .Range("A4:R4").PasteSpecial Paste:=xlPasteFormats.Columns(1).NumberFormat = "000000"
  • .Cells(4, 1) = Worksheets("Formulario_pantalla").Range("AJ5").Columns(1).NumberFormat = "000000"

publicado

Claro;

Al iniciar el bloque With

With Worksheets("kardex")
            .Columns(1).NumberFormat = "000000" '&lt;-----------Aquí serviría
            For NumRowAdd = 1 To NumRow

Saludos

publicado

Ah ya vi

Lo pusiste mal

  With Worksheets("kardex").Columns(1).NumberFormat = "000000"
            For NumRowAdd = 1 To NumRow

Cuando en realidad era:

With Worksheets("kardex")

.Columns(1).NumberFormat = "000000" '&lt;-----------Aquí serviría

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.