Aide VBA lancement macro et execution

Bonsoir à tous,

Étant novice en VBA, je rencontre une problématique avec une macro. Celle-ci à pour but de changer les formats des cellules en fonction d'un choix. La macro marche partiellement, car le changement de format est ok si on clic sur un bouton, mais je souhaiterais que cela soit automatique en fonction de la valeur de la cellule (donc sans devoir cliquez sur le bouton).

Merci par avance de votre aide

17test.xlsm (16.79 Ko)

Bonjour,

Une proposition avec une procédure évènementielle.

Cdlt.

22test-2.xlsm (14.99 Ko)
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
    If Target.Address = "$C$12" Then
        Set rng = Me.Range("D12:E12")
        Select Case Target.Value
            Case "Choix1"
                rng.NumberFormat = "0"
            Case "Choix2"
                rng.NumberFormat = "0.0%"
            Case "Choix3"
                rng.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
            Case Else
                '
        End Select
    End If
    Set rng = Nothing
End Sub

Bonsoir Jean-Eric,

Merci de votre aide, sur le fichier cela fonctionne parfaitement. J'ai donc voulut transposer dans mon fichier "Réel" avec le changement de la plage et de la cellule cible, mais rien ne se passe. Il y a-t-il une autre manipulation à faire ?

Le code est bien enregistrer dans la feuille où le changement de format doit se faire

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
    If Target.Address = "$C$26" Then
        Set rng = Me.Range("D26:J26")
        Select Case Target.Value
            Case "Nb de client servie"
                rng.NumberFormat = "0"
            Case "% Respect de la promesse client"
                rng.NumberFormat = "0.00%"
            Case "Temps d'attente moyen"
                rng.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
            Case "Temps de traitement Moyen"
                rng.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
            Case "% d'entretien / Nb de client magasin"
                rng.NumberFormat = "0.0%"
            Case "Productivité"
                rng.NumberFormat = "0.0"
            Case Else
                '
        End Select
    End If
    Set rng = Nothing
End Sub

Merci

Re,

Une modification à ton code.

Normalement il n'y a aucun souci avec la procédure.

Assure toi qu'elle est placée dans le bon module de feuille.

Cdlt.

22test-2.xlsm (18.37 Ko)
Option Explicit
' Module Feuil2 (Feuil2)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
    If Target.Address = "$C$26" Then
        Set rng = Me.Range("D26:J26")
        Select Case Target.Value
            Case "Nb de client servie"
                rng.NumberFormat = "0"
            Case "% Respect de la promesse client"
                rng.NumberFormat = "0.00%"
            Case "Temps d'attente moyen", "Temps de traitement Moyen"
                rng.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
            Case "% d'entretien / Nb de client magasin"
                rng.NumberFormat = "0.0%"
            Case "Productivité"
                rng.NumberFormat = "0.0"
            Case Else
                '
        End Select
    End If
    Set rng = Nothing
End Sub

Bonjour Jean-Eric,

Je viens de comprendre pourquoi cela ne fonctionnait pas (je suis un gros boulet en faite) :

Dans mon fichier, la liste déroulante est sur la feuille "Hebdo" dans la case C36. La plage à modifié est sur le feuille "Calc_Hebdo" (plage D26:J26)

Est-il possible de la lancer en étant sur 2 feuilles ?

Encore merci de votre aide

Bonjour,

Voir fichier joint avec un peu d'explications.

Cdlt.

20test-2.xlsm (48.54 Ko)

Merci encore de votre aide Jean-Eric

Rechercher des sujets similaires à "aide vba lancement macro execution"