Copiar celdas de un rango que tengan números

Buenos tengo la siguiente macro y me copia todos los datos de una rango de una hoja a otra

Pero solo quiere que me copie las celdas que tengan números igual o mayor que cero, pero no las de texto, las pegue en la misma celda de la otra hoja dejando las de texto vacías

Sub Copiar_Valores()
Dim sPath As String
Dim sh As Worksheet
Dim l2 As Workbook
'
Set sh = ActiveSheet
'
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione archivo de excel"
.AllowMultiSelect = False
.InitialFileName = "D:\Jose ono\Presupuestos\"
If .Show Then
Application.DisplayAlerts = False
Set l2 = Workbooks.Open(.SelectedItems.Item(1))
sh.Range("K13:K50").Value = ActiveSheet.Range("K13:K50").Value
l2.Close False
Application.DisplayAlerts = True
End If
End With
End Sub

1 Respuesta

Respuesta
1

"Pero solo quiere que me copie las celdas que tengan números igual o mayor que cero, pero no las de texto, las pegue en la misma celda de la otra hoja dejando las de texto vacías"

Puedes explicar eso con ejemplos

De k13 a k50 hay valores numéricos y valores de texto

que solo copie los numéricos y los pegue en las mismas celdas

Prueba esto:

Sub Copiar_Valores()
'Por Dante Amor
  Dim sPath As String
  Dim sh As Worksheet
  Dim l2 As Workbook
  Dim i As Long
  '
  Set sh = ActiveSheet
  '
  With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Seleccione archivo de excel"
    .AllowMultiSelect = False
    .InitialFileName = "D:\Jose ono\Presupuestos\"
    If .Show Then
      Application.DisplayAlerts = False
      Set l2 = Workbooks.Open(.SelectedItems.Item(1))
      For i = 13 To 50
        If IsNumeric(ActiveSheet.Range("K" & i).Value) Then
          sh.Range("K" & i).Value = ActiveSheet.Range("K" & i).Value
        End If
      Next
      l2.Close False
      Application.DisplayAlerts = True
    End If
  End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas