Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte, colDD As Byte, coldeg As Byte, colmin As Byte, colsec As Byte, cor as byte
On Error Resume Next 'sinon ça plante...
col = Target.Column
'Mise en forme des coordonnées (Degrés/Minutes) saisies en degrés sexagésimaux afin de faire précéder d'un "0" si le résultata est inférieur à 10 & <> 0
If Not Intersect(Target, [L6:L7, L9:L10]) Is Nothing Then
Application.EnableEvents = False
cor = IIf(Target <> Int(Target) And Target < 0, 1, 0)
Target = Abs(Int(Target)) - cor
Application.EnableEvents = True
MiseEnFomeCoordonnées Target, 1 'degrés
End If
If Not Intersect(Target, [M6:M7, M9:M10]) Is Nothing Then
Application.EnableEvents = False
cor = IIf(Target <> Int(Target) And Target < 0, 1, 0)
Target.Value = Abs(Int(Target.Value)) - cor
Application.EnableEvents = True
MiseEnFomeCoordonnées Target, , 1 'minutes
End If
'Mise en forme des coordonnées (secondes) saisies en degrés sexagésimaux afin qu'elles aient toujours 3 décimales après la virgule, même si ce sont des "0"
If Not Intersect(Target, [N6:N7, N9:N10]) Is Nothing Then MiseEnFomeCoordonnées Target, , , 1 'secondes
'Mise en forme des coordonnées (Latitudes/Longitudes), après saisies en degrés sexagésimaux, en fonction du nombre de décimales après la virgule (pour qu'il n'y ait pas de "0" inutiles)
If Not Intersect(Target, [L6:L7, L9:L10, M6:M7, M9:M10, N6:N7, N9:N10]) Is Nothing Then
colDD = [Latitude3].Column
MiseEnFomeCoordonnées Target.Offset(0, colDD - col)
End If
'Saisies rapides en degrés sexagésimaux : sélection de la cellule suivante pour la rentrée des données
If Not Intersect(Target, [L6:L7, L9:L10, M6:M7, M9:M10]) Is Nothing Then Target.Offset(0, 1).Select
If Not Intersect(Target, [N6]) Is Nothing Then Target.Offset(1, -2).Select
If Not Intersect(Target, [N7]) Is Nothing Then Target.Offset(2, -2).Select
If Not Intersect(Target, [N9]) Is Nothing Then Target.Offset(1, -2).Select
If Not Intersect(Target, [N10]) Is Nothing Then Target.Select
End Sub