RE:¿Porque escribe al reves?
A mi punto de vista lo anterior te lo puede marcar (escribir al reves) porq no le estas indicando la posicion del ultimo caracter, es decir, solamente igualas el Text1 a lo que hay en Text1, de manera que siempre se posicion en el primer caracter, puedes hacer una prueba haciendo lo siguiente:
Private Sub Text1_Change()
Text2.Text = StrConv(Me.Text1.Text, vbUpperCase)
End Sub
Como veras aqui se puso un text2 y ese si muestra la informacion como debe de ser, haz el intento.
Otra opcion seria que dejaras al usuario que escribiera en mayusculas o minusculas y al final (por ejemplo al presion enter), realizar el cambio a minusculas o mayusculas segun convenga, algo asi como esto:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text1.Text = StrConv(Me.Text1.Text, vbUpperCase)
End If
End Sub
Aqui si funciona en el mismo text1, ya qye reemplazaras toda la linea.
Bueno, espero que esto te sea de utilidad....Saludos!!!