Good morning
i tried to put two macros in one button
, but it gives me back some errors, I state that I am not capable of it my competence in VB is almost nothing

, is there a person who can help me to correct it?
I thank
I am attaching macros:
' CENTRO ASSE X INTERNO ESTERNO
Sub Main
Speak (" CENTRO ASSE x ") 'Avviso Vocale
Begin Dialog SelectCentering 240,80,140,225,"CENTRO ASSE X"
Picture 5, 65, 130, 130, "c:\mach3\addons\centri_scan_sondaggi\bitmaps\CENTRO ASSE X.BMP"
OKButton 15,203,50,14
CancelButton 70,203,50,14
GroupBox 5,10,130,50,"CENTRO ASSE X",.GroupBox1
OptionGroup .OptionGroup1
OptionButton 10,24,120,8,"-A- CENTRO ASSE X INTERNO",.OptionButton1
OptionButton 10,38,120,8,"-B- CENTRO ASSE X ESTERNO",.OptionButton2
End Dialog
Dim Dlg1 As SelectCentering
Button = Dialog (Dlg1)
If Button = 0 Then Exit Sub
Selected = Dlg1.OptionGroup1
'centro asse x INTERNO @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
If Selected = 0 Then
Speak ("centro interno ASSE x") 'Avviso Vocale
Dim F1 As Double
Dim F2 As Double
Dim F3 As Double
Dim A As Double
Dim A1 As Double
Dim A2 As Double
Dim B As Double
Dim B1 As Double
Dim B2 As Double
Dim C As Double
Dim D As Double
Dim D1 As Double
Dim D2 As Double
Dim E As Double
Dim E1 As Double
Dim E2 As Double
Dim F As Double
F1= GETOEMDRO(1111) ' leggi F di Spostamento
F2= GETOEMDRO(1014) ' leggi F di Avvicinamento
F3= GETOEMDRO(1003) ' leggi F di Accosto
F4= GETOEMDRO(1000) ' leggi diametro probe
Begin Dialog ButtonSample 280,270,100,30,"START SCANSIONE"
OKButton 10,8,40,14
CancelButton 50,8,40,14
End Dialog
Dim Dlg1 As ButtonSample
Button = Dialog (Dlg1)
If Button = 0 Then
MsgBox "SCANSIONE CANCELLATA!"
Speak ("scansione cancellata") 'Avviso Vocale
Exit Sub
End If
SetOEMDRO(1181,0)
Speak ("dro azzerati")
Sleep (500) ' pausa di 2 secondi
' TROVA CENTRO IN X
SETDRO(0,0) 'Azzera X
SETDRO(1,0) 'Azzera Y
code "g31x200" & "f" & F2 'muove verso x+
While isMoving()
Sleep (100)
Wend
A1= GETOEMDRO(800) ' legge il valore di X
A2= A1-2
code "g1x"& A2 & "f" & F2
code "g31x200" & "f" & F3 'muove verso x+
While isMoving()
Sleep (100)
Wend
A= GETOEMDRO(800) ' legge il valore di X
code "g1x0" & "F" & F1 'torna a X0
While isMoving()
Sleep (100)
Wend
code "g31x-200" & "f" & F2 'muove verso x+
While isMoving()
Sleep (100)
Wend
B1= GETOEMDRO(800) ' legge il valore di X
B2= B1+2
code "g1x" & B2 & "f" & F2
code "g31x-200" & "f" & F3 'muove verso x+
While isMoving()
Sleep (100)
Wend
B= GETOEMDRO(800) ' legge il valore di X
C= ((A+B)/2) ' trova la metà in X
code "g1 X" & C & "f" & F1 ' va alla metà in X
While isMoving()
Sleep (100)
Wend
Call SetUserDro (1181, A1 + A + F4)
E3= GetUserLED (1011)
If E3 = 0 Then
Speak ("centro interno completato") 'Avviso Vocale
SETDRO(1,0) 'Azzera Y
SetDRO(0,0) 'Azzera X
Else
G= GETOEMDRO(1049) ' leggi offset X
G1= GETOEMDRO(1050) ' leggi offset Y
G2= GETOEMDRO(800) ' leggi coord X
G3= GETOEMDRO(801) ' leggi coord Y
G4= (G2)+(G) ' nuova coordonata in X
G5= (G3)+ (G1) ' nuova coordonata in Y
Code "G1 X" & G4 & "Y" & G5 & "F500"
While isMoving()
Sleep (100)
Wend
SETDRO(1,0) 'Azzera Y
SetDRO(0,0) 'Azzera X
End If
End If
'centro asse x ESTERNO selected @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
If Selected = 1 Then
Speak ("centro esterno ASSE x") 'Avviso Vocale
Dim A As Double
Dim A1 As Double
Dim A2 As Double
Dim A3 As Double
Dim A4 As Double
Dim A5 As Double
Dim A6 As Double
Dim A7 As Double
Dim A9 As Double
Dim B As Double
Dim B1 As Double
Dim B2 As Double
Dim B3 As Double
Dim B4 As Double
Dim B5 As Double
Dim B6 As Double
Dim B7 As Double
Dim F As Double
F1= GETOEMDRO(1111) ' leggi F di Spostamento
F2= GETOEMDRO(1014) ' leggi F di Avvicinamento
F3= GETOEMDRO(1003) ' leggi F di Accosto
F4= GETOEMDRO(1000) ' leggi DIAMETRO PROBE
Speak ("centro asse x pieno") 'Avviso Vocale
Begin Dialog ButtonSample 280,270,100,30,"START SCANSIONE"
OKButton 10,8,40,14
CancelButton 50,8,40,14
End Dialog
Dim Dlg1 As ButtonSample
Button = Dialog (Dlg1)
If Button = 0 Then
MsgBox "SCANSIONE CANCELLATA!"
Speak ("scansione cancellata") 'Avviso Vocale
Exit Sub
End If
Sleep (500) ' pausa di 2 secondi
SetOEMDRO(1181,0)
Speak ("dro azzerati") 'Avviso Vocale
Sleep (500) ' pausa di 2 secondi
Speak ("inserire lunghezza asse x") 'Avviso Vocale
A=InputBox("INSERIRE LA LUNGHEZZA IN Y")
Speak ("confermare centro asse x pieno") 'Avviso Vocal
Tasto = MsgBox("CENTRO PIENO ASSE X" ,1+64, "CONFERMARE")
If Tasto <> 1 Then
Exit Sub
End If
A1=((A/2)+12)
SETDRO(0,0) ' azzera Z
code "g31z-50" & "f" & F2 'muove verso z-
While isMoving()
Sleep (100)
Wend
SETDRO(2,0) ' azzera Z
code "g1z3" & "f" & F1 'muove verso z+
While isMoving()
Sleep (100)
Wend
' TROVA CENTRO IN Y
SETDRO(0,0) 'Azzera Y
code "g1x-" & A1 & "f" & F1 'muove verso y-
While isMoving()
Sleep (100)
Wend
code "g1z-6" & "f" & F1 ' muove verso z-
While isMoving()
Sleep (100)
Wend
code "g31x200" & "F" & F2
While isMoving()
Sleep (100)
Wend
B1= GETOEMDRO(800) ' legge il valore di X
B2 = B1-2
code "g1x"& B2 & "f" & F2
While isMoving()
Sleep (100)
Wend
code "g31x200" & "f" & F3 'muove verso y+
While isMoving()
Sleep (100)
Wend
B3= GETOEMDRO(800) ' legge il valore di y
code "g1z4" & "f" & F1 ' alza in z
While isMoving()
Sleep (100)
Wend
code "g1x0" & "f" & F1 ' torna a y0
While isMoving()
Sleep (100)
Wend
code "g1x+" & A1 & "f" & F1 'muove verso y-
While isMoving()
Sleep (100)
Wend
code "g1z-6" & "f" & F1 ' muove verso z-
While isMoving()
Wend
code "g31x-200" & "F" & F2
While isMoving()
Sleep (100)
Wend
B4= GETOEMDRO(800) ' legge il valore di X
B5 = B4+2
code "g1x"& B5 & "f" & F2
While isMoving()
Sleep (100)
Wend
code "g31x-200" & "f" & F3 'muove verso y+
While isMoving()
Sleep (100)
Wend
B6= GETOEMDRO(800) ' legge il valore di y
code "g1z4" & "f" & F1 ' alza in z
B7= ((B3+B6)/2) ' trova la metà di Y
code "g1 x" & B7 & "f" & F1 ' va alla metà in x
While isMoving()
Sleep (100)
Wend
SETDRO(0,0) 'Azzera x
While isMoving()
Sleep (100)
Wend
Call SetUserDro (1181, B6+B6 -F4 )
E3= GetUserLED (1011)
If E3 = 0 Then
Speak ("centro asse x pieno completato") 'Avviso Vocale
SETDRO(1,0) 'Azzera Y
SetDRO(0,0) 'Azzera X
Else
G= GETOEMDRO(1049) ' leggi offset X
G1= GETOEMDRO(1050) ' leggi offset Y
G2= GETOEMDRO(800) ' leggi coord X
G3= GETOEMDRO(801) ' leggi coord Y
G4= (G2)+(G) ' nuova coordonata in X
G5= (G3)+ (G1) ' nuova coordonata in Y
Code "G1 x" & G5 & "F500"
While isMoving()
Sleep (100)
Wend
SETDRO(0,0) 'Azzera x
End If
End Sub