Bonjour à tous, J'ai de solide connaissance en LISP, que j'utilise fréquemment, par contre je ne connais que les principes de base en VBA et j'aurai besoin d'un peu d'aide... Mon associé, ne s'intéressant pas du tout à la programmation, m'a fait part de ce vieux programme, conçu par un de ses amis, qu'ils utilisaient il y a une dizaine d'année. En l'état, le programme ne fonctionne pas (sur ma version d’AutoCAD en tout cas) mais je souhaiterai le remettre en route, voire l’améliorer. Bien que je n'y connaisse pas grand-chose en VBA, certaines fonctions ne me parle pas du tout (je suppose même qu’elles n'existent pas, puisque rien n'apparait dans l’Object browser… (SBar.SimpleText/CMD.Action/CMD.FileName...) Est-ce possible ???). Bref, je souhaiterai donc savoir si ce code peut fonctionner ? si oui, comment ? si non, est-il possible de modifier/d’adapter certaines parties afin qu'il puisse fonctionner...? Si quelqu'un pouvait y jeter un coup d'œil et m'apporter tout renseignement me permettant de comprendre ce qui ne fonctionne pas, je lui serais très reconnaissant. Merci d'avance.
Private Sub ComFile_Click()
CMD.Action = 1
InGrid = CMD.FileName
If InGrid = "" Or InGrid = Null Then
SBar.SimpleText = "Need a .GRD File"
Exit Sub
End If
On Error Resume Next
Open InGrid For Binary Access Read Write As #1
If Err <> 0 Then
SBar.SimpleText = "Invalid.GRD File"
Exit Sub
End If
On Error GoTo 0
Dim FLen As Long
Dim X As Long
Dim rw As Long
Dim cl As Long
Dim Idx As Long
Dim Xi As Double
Dim Yi As Double
Dim Xs As Double
Dim Ys As Double
Dim Zm As Double
Dim Zn As Double
Dim Zx As Double
Get #1, 21, rw
Get #1, 25, cl
Get #1, 29, Xi
Get #1, 37, Yi
Get #1, 45, Xs
Get #1, 53, Ys
Get #1, 61, Zm
Get #1, 69, Zn
Get #1, 77, Zx '
Get #1, 97, FLen
Text0 = "XYmin= " + Format(Xi, "#.000") + "," + Format(Yi, "#.000") + Chr(13)
Text0 = Text0 + "XYmax= " + Format(Xi + Xs * (cl - 1), "#.000") + "," + Format(Yi + Ys * (rw - 1), "#.000") + Chr(13)
Text0 = Text0 + "Zmin= " + Format(Zm, "#.000") + " Zmax= " + Format(Zn, "#.000") + Chr(13)
Text0 = Text0 + "Matrix Size(CR) = " & cl & "," & rw & Chr(13)
Text0 = Text0 + "Cell Size X= " + Format(Xs, "#.0") + " Y= " + Format(Ys, "#.0")
Close 1
Lb.Caption = InGrid
Gfile = InGrid
End Sub
Private Sub UserForm_Activate()
StartSmart.Left = 2
StartSmart.top = 385
SBar.Width = StartSmart.Width - 3
SBar.top = (StartSmart.Height - SBar.Height) - 20
If UCase(Right(Gfile, 3)) = "GRD" Then Lb = Gfile
End Sub