Macros en Excel - Conversor de esfuerzos CYPE a IDEA

Ignasi Latorre

Esmeralda
Buenas tardes.
Me estoy peleando con una macro de Excel para tratar los datos de esfuerzos de salida de CYPE 3D y, a pesar de tener toda la macro lista y funcionando, me encuentro con un problema cuando trato los datos de entrada.
Intento explicarlo para que se entienda.

1.- Copio la tabla de esfuerzos por combinaciones desde la exportación de CYPE.
2.- Dado que CYPE usa "." como separador de decimales lo tengo que substituir por una ",".
En Excel veo esto:



y donde dice #¡CAMPO! hay el siguiente texto:



Previo a intentar solucionar el problema yo ya he cambiado el formato de todas las celdas a número sin separador de miles.

Aplico el siguiente código:
Código:
Dim m As Integer

    For m = 4 To intMivalor

    Cells(m, 3).Select

    Selection.Replace What:=".", Replacement:=",", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    Selection.Replace What:="=", Replacement:=" ", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

    Next m
Donde m es un contador desde la fila 4 hasta la última fila (se entra a mano).

Con cells(m,3).select selecciono una celda.
sustituyo el punto por la coma
borro el igual
y avanzo

Me funciona perfecto hasta que, llegada la fila 52



No sé a qué se debe que de golpe y porrazo, dentro del mismo for, deje de hacer la sustitución.

¡Gracias por vuestra ayuda!
 

pnc

Titanio
Desde mi ignorancia: no trabajo con Excel, sólo Calc de LibreOffice.
Mi solución con las comas y los puntos pasa por decirle a Calc que ahora soy británico y me apetece que el separador decimal sea el punto.
Pegas lo que exporta CYPE, lo guardas desde Calc y vuelves, si quieres, a configurar la coma como separador decimal.
 
¡Hola @Ignasi Latorre!
¿Has conseguido solucionar lo de la Excel? En el nuevo curso que va a impartir Construsoft de Cálculo de uniones metálicas con IDEA, hablan de una nueva posibilidad de enlace con CYPE. Enseguida me he puesto en contacto con ellos, porque no encontraba información en ninguno de los dos softwares que me indicase que esta interoperabilidad se había hecho. Y, efectivamente, no es así. En Construsoft parece que han trabajado en una hoja Excel con una serie de funciones que permiten enviar todas las combinaciones de CYPE a IDEA.
Deseo como usuario de ambos programas que en el futuro se haga una conexión real... pero creo que no están por la labor.
Saludos.
 

Ignasi Latorre

Esmeralda
Habrá que informarse pues... la mía es muy, muy, muy rudimentaria y aún tiene mucho recorrido por hacer... si el trabajo está hecho quizá habrá que darles un toque :p
 

kaaden

Esmeralda
Pues les voy a pedir la XLSM, exportarlo no es excesivamente complicado, tomar bien los signos de los esfuerzos sí es bastante laborioso.
 

kaaden

Esmeralda


Código:
Private Sub CommandButton1_Click()

    Dim nodo As Integer
    nodo = ListBox1.ListIndex + 1
   
    'Columna en la que se inserta la matriz transpuesta
    c = 5
    Do While IsEmpty(Cells(4, c)) = False
        c = c + 1
    Loop
    c = c + 4
   
    ActiveSheet.Cells(3, c) = "CASO"
   
    'Transponer la matriz
    For i = 0 To 5
   
        ActiveSheet.Cells(3, c + 1 + i) = ActiveSheet.Cells(4 + i, 4)
       
        j = 0
        Do While IsEmpty(Cells(4 + 6 * j, 3)) = False
       
            ActiveSheet.Cells(4 + j, c) = ActiveSheet.Cells(4 + 6 * j, 3)
            If i < 3 Then
                ActiveSheet.Cells(4 + j, c + 1 + i) = ActiveSheet.Cells(4 + 6 * j + i, 4 + nodo)
            Else
                'Cambia el signo de los momentos
                ActiveSheet.Cells(4 + j, c + 1 + i) = -ActiveSheet.Cells(4 + 6 * j + i, 4 + nodo)
            End If
       
        j = j + 1
        Loop
       
    Next i
End Sub



Private Sub UserForm_Initialize()
   
    'Inicializar los valores de los nodos
    k = 0
    Do While IsEmpty(Cells(3, 5 + k)) = False
        ListBox1.AddItem ActiveSheet.Cells(3, 5 + k).Value
        k = k + 1
    Loop

End Sub
 

kaaden

Esmeralda
En soporte no me han pasado la hoja, habrá que continuar trabajando en la propia, o que un "colega" haga el curso y nos cuente, yo el curso lo hice en la primera edición y por la XLSM y las conexiones BIM con programas que no tengo no me vale la pena.
 

kaaden

Esmeralda
También podrían enrollarse desde CYPE y hacer un exportador esfuerzos por barra en formato CSV/XLS... que IDEA pueda leer directamente, así, a pesar de que ellos no se han puesto de acuerdo, sus clientes tienen ese servicio, para IDEA y para otras cosas si la exportación es configurable.
 

Ignasi Latorre

Esmeralda
De hecho, el programa ya saca los esfuerzos críticos para las comprobaciones que hace cuando se calculan uniones dentro del propio CYPE... una exportación a Excel y después nosotros ya nos apañamos para ajustar los signos...

Algo tipo:
Nudo A
Combinación 1:
Barra1 N, Vy, Vz, Mx, My, Mz
Barra2 N, Vy, Vz, Mx, My, Mz
Barra3 N, Vy, Vz, Mx, My, Mz
Combinación 2:
Barra1 N, Vy, Vz, Mx, My, Mz
Barra2 N, Vy, Vz, Mx, My, Mz
Barra3 N, Vy, Vz, Mx, My, Mz
[...]
Combinación n:
Barra1 N, Vy, Vz, Mx, My, Mz
Barra2 N, Vy, Vz, Mx, My, Mz
Barra3 N, Vy, Vz, Mx, My, Mz

Donde n es, como máximo, el número de barras multiplicado por 6... por 5 si hay la opción de desmarcar Mx (que es menos habitual)... 3 si solo se marca N, Vz y My.

En este caso nos plantaríamos con 18 combinaciones que, a pesar de requerir un tiempo de cálculo importante en IDEA, no permiten poder optimizar muchísimo las uniones.
 
Arriba