Pouvoir passer d'un système d'unité à un autre

Bonjour à tous,

Dans un tableau où j'entre des données ligne par ligne, je peux entrer ces données soit en mètre (système metric) soit en feet (système imperial), le template du tableau est utilisé pour chaque projet différent et l'unité utilisée pour le remplir change à chaque fois. Une fois ces données entrées, j'aimerais pouvoir sélectionner dans une cellule l'unité en laquelle je veux voir mes données apparaitre et pouvoir revenir en arrière.

Je ne peux mettre une condition dès le départ: le tableau doit être utilisé pour différents projets et celui qui l'utilise doit pouvoir le remplir simplement et grâce à un bouton déroulant pouvoir choisir son unité.

Pensez-vous pouvoir me conseiller s'il-vous-plait ?

Je joins un exemple pour illustrer mes propos.

Merci beaucoup

Bonjour Camlacanaille et bienvenue sur le Forum

Pour ma part, je te conseillerai d'utiliser un "Private Sub Worksheet_Change"

Clic droit sur ton onglet

Clic sur Visualiser le code

Et colle ce que je te joins si dessous :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
If Range("C2").Value = "Metric" Then
Call Metric
Else
Call Imperial
End If
End If
End Sub
Sub Metric()
Dim DernLigne
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
Range("C7:E" & DernLigne).Select
Selection.Style = "Currency" 'REMPLACER ICI PAR LE FORMAT METRIC
End Sub
Sub Imperial()
Dim DernLigne
DernLigne = Range("C" & Rows.Count).End(xlUp).Row
Range("C7:E" & DernLigne).Select
Selection.Style = "Percent" 'REMPLACER ICI PAR LE FORMAT IMPERIAL
End Sub

En gros, à chaque fois que ta cellule C2 change, ton format changera aussi !

C'est un exemple que je te joins car je ne sais pas trop comment est vraiment fais ton tableau et tes projets

Si tu a des question ou des remarques, reviens vers nous ^^

Bonjour Juice,

Merci beaucoup pour ces pistes ! Ce n'est pas encore tout à fait cela (les formats currency et percent sont déjà enregistrés dans Excel, personnellement je cherche à convertir en inch des mm ou l'inverse) mais cela nourrit ma réflexion ! Merci d'avoir pris le temps de me répondre.

Très bonne journée à toi

Bonjour,

Alors voici l'adaptation :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$2" Then
        If Range("C2").Value = "Metric" Then
            Call Metric
        Else
            Call Imperial
        End If
    End If
End Sub

Sub Metric()
Dim DernLigne
    DernLigne = Range("C" & Rows.Count).End(xlUp).Row
    Range("C6") = "Diamètre (m)"

    For i = 7 To DernLigne
        Cells(i, 3) = Cells(i, 3) / 39.3701
    Next i
End Sub

Sub Imperial()
    Dim DernLigne
    DernLigne = Range("C" & Rows.Count).End(xlUp).Row
    Range("C6") = "Diamètre (inch)"
    For i = 7 To DernLigne
        Cells(i, 3) = Cells(i, 3) * 39.3701
    Next i
End Sub

Bonjour Valc,

C'est vraiment super merci beaucoup !

CamlaCanaille,

Je pose quand même sa la

Rechercher des sujets similaires à "pouvoir passer systeme unite"