Extraer coordenadas desde una celda cadena

kratk

New Member
Joined
Oct 25, 2010
Messages
19
Estimados:

Lo que necesito es extremadamente simple, pero en la práctica de hacer una macro o ponerlo en código se me ha hecho tremendamente difícil.
Desde AutoCad yo extraigo la siguiente información:

Command: ID Specify point: X = 5068.7648 Y = 224.3896 Z = -4063.3161

Esto me queda copiado completo en la celda A1 (excel 2003). Lo que yo necesito es que me queden los valores X,Y & Z en las columnas B1, C1 Y D1 (en cualquier celda si es necesario) lo único que necesito es extraer las coordenadas desde la única celda. Hasta el momento la única forma que he encontrado de separar la información es con el comando Text To Columns.... del menu Data, pero comprenderán que hacerlo para 150 puntos es bastante engorroso.

Desde ya agradezco cualquier comentario u ayuda que puedan brindarme.
 
Marcelo:

Una última consulta, me funciona mejor la combinación de MID & TRIM para extraer las coordenadas. Puedo llenar sistematicamente las celdas con un comando For como te muestro en rojo en la macro???? te lo pregunto porque no me deja hacerlo por un asunto de formato la macro, me molesta por la sintaxis del FIND... me dice Sub or Function not defined y me resalta el comando FIND.

Code:
Sub Copia()
    Dim lastRow As Long, i As Long
    Dim nombreArquivo As String
    
    nombreArquivo = Application.InputBox("Ingrese con nombre de archivo", Type:=2)
    
    With ThisWorkbook.Sheets("Hoja1")
        lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    End With
    For i = 1 To lastRow / 2
    [COLOR="Red"]With ActiveSheet
    Range(Bi) = Mid(Ai, Find("X =", Ai) + 3, Find("Y =", Ai) - Find("X =", Ai) - 4)
    Range(Ci) = Mid(Ai, Find("Y =", Ai) + 3, Find("Z =", Ai) - Find("Y =", Ai) - 4)
    Range(Di) = Trim(Right(Ai, Len(Ai) - Find("Z =", Ai) - 3))
    End With
    Next i[/COLOR]
    ActiveSheet.Range("B1" & ":D" & lastRow / 2).Copy _
        Destination:=ThisWorkbook.Sheets("Hoja2").Range("A2")
    
    ActiveSheet.Range("B" & 1 + lastRow / 2 & ":D" & lastRow).Copy _
        Destination:=ThisWorkbook.Sheets("Hoja2").Range("D2")
        
    Sheets("Hoja2").Activate
    With ActiveSheet
        .Range("A1") = "X Inicio"
        .Range("B1") = "Y Inicio"
        .Range("C1") = "Z Inicio"
        .Range("D1") = "X Final"
        .Range("E1") = "Y Final"
        .Range("F1") = "Z Final"
        .Range("G1") = "Nombre Arquivo"
        .Range("H1") = "No de Linea"
    End With
    
    For i = 1 To lastRow / 2
        Range("G" & i + 1) = nombreArquivo
        Range("H" & i + 1) = i
    Next i
    
    Columns("G:H").AutoFit
    
    Application.CutCopyMode = False
End Sub

Funciona perfectamente la macro que hiciste, pero quedaría mucho mejor si los datos origen se llenasen solos, es decir, que del rango A1:LastRow/2 se fueran completando las celdas B , C y D.

Me entiendes????
 
Upvote 0

Excel Facts

How to change case of text in Excel?
Use =UPPER() for upper case, =LOWER() for lower case, and =PROPER() for proper case. PROPER won't capitalize second c in Mccartney
No compreendo porque quieres utilizar um loop. Pero si lo quiere tiene que corrigir el sintaxis
No Range(Bi)

Range("B"&i)

Ai no ----> "A"&i

....
....

M.
 
Upvote 0

Forum statistics

Threads
1,223,956
Messages
6,175,611
Members
452,660
Latest member
Zatman

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top