Format cellule

Bonjour à toutes et tous,

Pourrait-on m'aider sur une macro qui me rendrait bien service !

Je m'explique :

Dans uns feuille d'un classeur excel, je souhaiterais qu'une cellule voit son format modifié en fonction du contenu

d'une autre cellule soit :

F11 contient le nombre 1236

Si dans a1, j'ai "vitesse", la cellule F11 doit afficher 12 S 36

Si dans a1 j'ai "Poids" la cellule F11 doit afficher 12 M 36

Cette macro doit s'executer avec un clic dans une cellule

Merci de votre aide

Bonjour,

Macro à mettre dans le module de la feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        With Me.Range("F11")
            If Target.Value = "vitesse" Then
                .NumberFormat = "00"" s ""00"
            ElseIf Target.Value = "poids" Then
                .NumberFormat = "00"" M ""00"
            Else
                .NumberFormat = "general"
            End If
        End With
    End If
End Sub

Cordialement.

Je ne parviens pas à faire fonctionner votre macro

Désolé, je dois m'y prendre comme un manche !

Merci tout de même

Bonjour,

Clique droit sur le nom de l'onget ==> voir code ==> et là tu colles le code. Le fichier doit être sauvé en xlsm.

Voici pour exemple...

4macro.xlsm (13.63 Ko)

Bravo, je vois que ça fonctionne sur votre fichier

Pour ma part, le mot vitesse ou poids est issu du résultat d'une formule (DECALER(C3;0;AC1;1;1))

Alors c'est peut-être pour ça que je n'obtiens pas le formatage

Désolé

Ah !!!

Si tu ne dis pas tout dès le départ, il ne faut pas t'étonner !

Et qu'est-ce qui fait que ce soit "vitesse", ou que ce soit "poids" ?

Bonjour,

Je suis désolé pour ce manque de précisions !!

Effectivement, je souhaitais avoir un minimum d'infos puis me débrouiller seul !

Je vois que c'est plus complexe que ça n'en a l'air !

ci-joint le fichier (exemple) pour plus de détails

Merci de ton aide

Bonjour,

C'est un peu tortueux comme méthode !!

Je suppose que tes formats te conviennent, je me suis donc borné à les recopier.

Sub ChangerFormat()
    Dim fc%
    fc = ActiveSheet.Shapes("Compteur 1").ControlFormat.Value
    With ActiveSheet.Range("F11")
        Select Case fc
            Case 0, 4
                .NumberFormat = "[=0]""Non Classé"";[<9999]0#"" S , ""##;0#"" M   ""##"" S, ""##"
            Case 1, 5
                .NumberFormat = "[=0]""Non Classé"";0"" M   ""##"" S, ""##"
            Case 2, 3
                .NumberFormat = "[=0]""Non Classé"";[>199]#"" Mètres   ""##;#"" Mètre ""##"
            Case Else
                .NumberFormat = "general"
        End Select
    End With
End Sub

La macro est attachée au SpinButton.

Cordialement.

Rechercher des sujets similaires à "format"