IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Forcer format cellule [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 59
    Par défaut Forcer format cellule
    Bonjour à tous !

    J'ai des données à renseigner dans certaines colonnes.
    Ces données peuvent etre une heure 15 par exemple ou bien une date sous ce format 12/09.

    Lorsque je renseigne un format 12/09, par exemple, Excel repère automatiquement une division et divise....

    Je voudrais bloquer le format pour que 12/09 reste 12/09 lorsqu'on valide. Format texte.

    Actuellement j'ai mis outil -> calcul -> Sur ordre

    et j'ai fait ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
                 If Target.Value = "NP" Or Target.Value = "AR" Or Mid(Target.Value, 3, 1) = "/" Then
                       Target.NumberFormat = "@"
                Else: Target.NumberFormat = "General"
                End If
    End Sub
    Evidement, ce code ne fonctionne pas...

    Avez vous des idées ?

    Merci d'avance !

    Bonne après-midi !

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .NumberFormat = "d/m;@"

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 59
    Par défaut
    Malheureusement ca ne fonctionne pas...

    Par exemple : Si j'inscris dans une cellule 12/06, avant que s'active, il inscrit 2 puis ensuite exécute . Le Target.Value fait donc référence à la valeur 2 au lieu de 12/06.

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Comme tu l'as bien constaté, Il faut intervenir avant l'événement Change, sinon il est trop tard.
    D'abord il faut mettre la cellule au format TEXTE pour éviter que Excel interprète l'entrée.
    Ensuite dans l'événement Change, on peut faire tout ce qu'on veut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
      If Target.Count = 1 Then
       If Not Intersect(Range("A:A"), Target) Is Nothing Then
        If Target = "" Then
         Target.NumberFormat = "@"
        End If
       End If
     End If
     
    End Sub
     
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Count = 1 Then
     If Not Intersect(Range("A:A"), Target) Is Nothing And Target.NumberFormat = "@" And Target <> "" Then
     If IsNumeric(Target) Then
     
      answer = MsgBox("Voulez-vous appliquer le format numerique a cette cellule?", vbYesNoCancel, CDbl(Target))
       If answer = vbYes Then
        Cancel = True
        Target.NumberFormat = "General"
        Target = CDbl(Target)
       End If
     
     ElseIf IsDate(Target) Then
     
      answer = MsgBox("Voulez-vous appliquer le format Date a cette cellule?", vbYesNoCancel, CDate(Target))
     
      If answer = vbYes Then
       Cancel = True
       Target.NumberFormat = "m/d/yyyy"
       Target = CDate(Target)
      End If
     
     End If
     End If
     End If
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 59
    Par défaut
    Parfait, j'ai utilisé "Selection_Change" comme tu l'as mentionné et ca fonctionne nickel !

    Merci beaucoup Docmarti !

    Bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Forcer format cellule
    Par Nako_lito dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2010, 11h13
  2. [Access 2003] forcer format numerique
    Par dakoyaz dans le forum Access
    Réponses: 1
    Dernier message: 16/05/2006, 18h27
  3. [VBA-E]automatiser "clic droit, format cellule, texte"
    Par jmlcea dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/04/2006, 16h21
  4. [VBA-E] Format cellule
    Par peon3 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2006, 18h35
  5. [Delphi 2005] Format cellules Excel
    Par Vulcanos dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/05/2005, 22h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo