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 :

Créer format cellule perso en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut Créer format cellule perso en vba
    Bonjour,

    Comme l'annonce le titre de mon post, je souhaiterais savoir comment créer un format de cellule personnalisé, comme le permet excel, à la différence près qu'il se réfère à une cellule. Je m'explique:

    Via "Format/Cellule/Nombre/Personnalisé", on dit vulgairement au logiciel: "si je rentre une valeur dans telle cellule tu ajoutes les informations suivantes à la suite de ce que j'ai tapé".

    ex: Format cellule = # ##0\ [$kgs]
    Si je tape "25" dans la cellule, il y a "25 kgs" qui s'affiche.


    Mon idée est donc de créer le même type de mise en forme automatique mais avec les informations que contient une cellule précise à la place de "kgs":

    - Cellule de référence B1 contient "Juin"
    - Si je tape "25" en B10, il s'affiche "25 Juin" ------------> Soit contenu de B10 + Contenu de B1.

    A priori, je ne vois pas comment on peut créer cela sans utiliser Visual Basic or je ne le maitrise pas. j'ai bien essayé mais sans succès donc je me repose désormais sur vos conseils. Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut sfab41
    Je suppose qu'en B1 tu as une liste de validation, contenant les mois ?
    Pour t'éviter de taper 2 caractères ou avoir un mois qui débute par une majuscules, tu vas tout compliquer à l'extrême .
    Je suppose que B10 est un exemple que tu étendras à la colonne

    Solution 1 :
    Voir celle de ouskel'n'or => mais ce n'est pas un format, c'est du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Err_Worksheet_Change
    If Intersect(Target, [B10]) Is Nothing Then GoTo Sort_Worksheet_Change
    Application.EnableEvents = False
    Target = Target & " " & [B1]
    Sort_Worksheet_Change:
        Application.EnableEvents = True
        Exit Sub
    Err_Worksheet_Change:
        MsgBox Err.Description, vbOKOnly, "ERREUR n°" & Err.Number
        Resume Sort_Worksheet_Change
    End Sub
    je préfère la gestion des erreurs à un si B10 n'est pas numérique sortir,
    - Tu perds la facilité de traitement des dates (en tri, le 1 Juin sera avant le 1 Mars et celui-ci avant le 2 Janvier

    Solution 2 : Mettre un format numérique personnalisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Intersect(Target, [B10]) Is Nothing Then exit sub
    Target.NumberFormat = "0" & """ " & [B1] & """"
    End Sub
    - tu gardes le nombre (le jour), mais un tri amène le même genre de réponse, sauf que les 1 seront avant les 2 dans l'ordre des lignes initiales

    La solution la plus simple restant un format numérique prévu :
    format personnalisé type "j mmmm"
    => tu entres 25/6 en B10 => excel affiche 25 juin
    - tu peux travailler sur la date, puisque la valeur entrée est une date

    Mais tout ça dépend du BUT à atteindre. Et comme on ne le connaît pas, la solution est peut-être toute autre!!!
    A+

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 19
    Par défaut
    Merci de vos réponses.
    Pour ce qui est des 2 propositions de macro cela me convient mis à part qu'en fait je voulais quelque chose comme un format de cellule type excel qui s'amorce automatiquement une donnée est présente dans la cellule concernée.
    Le problème avec Worksheet_Change c'est que le format n'est mis à jour que si la cellule est modifiée, or j'utilise un fichier excel pré-rempli dont seul le mois présent en B1 change:

    ex: 1 du mois = loyer
    5 du mois = paie
    ...etc

    Comme il y a des opérations dont la date est toujours la même, je laisse telle quelle la date mais je change le mois en B1.
    Je sais c'est lourd mais j'aimerais bien arriver à ce résultat.

Discussions similaires

  1. Cellules format HH:MM en vba
    Par nancy38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2013, 16h42
  2. [XL-2007] VBA: problème format cellule
    Par gorgio dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/07/2009, 16h07
  3. {VBA Excel}probleme format cellule
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/08/2007, 11h12
  4. [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
  5. [VBA-E] Format cellule
    Par peon3 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2006, 18h35

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