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 :

Format Cellule en fonction d'une valeur dans une autre cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut Format Cellule en fonction d'une valeur dans une autre cellule
    Bonsoir

    J'aimerai utiliser une macro qui pourrait me mettre un format dans une colonne
    en fonction de la valeur [5120100] trouvé dans une colonne en amont

    J'ai cherché sur le net mais je n'ai pas trouvé, le code qui me convient


    Pourriez vous m'aider à écrire cette petite macro

    je cherche la valeur [51210100] dans la colonne [A] pour mettre la cellule dans la colonne [N] au format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
        Sub format()
    Range("i3:i100").Select
    For Each cell In Selection
    Selection.NumberFormat = "0000000000000"
    Next cell
    End Sub
    Merci d'avance de votre coup de main

    Christian

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Sans vba, il suffit d'utiliser une mise en forme conditionnelle.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut
    Oui merci


    Mais je voudrais lancer une macro qui le ferait

  4. #4
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut format cellule en fonction ...
    Bonsoir,

    Ta demande est imprécise.

    Tu veux mettre la valeur 51210100 d'une cellule de la colonne A dans quelle cellule de la colonne N et avec quel format ?

    Cordialement,

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut
    j'ai 2
    Colonne [A] est indiqué des numéros de comptes comptables
    Colonne [I] est indiqué des références

    Je voudrais que le format des références se trouvant dans la [I] soit sur 13 caractères lorsqu'ils correspondent au compte [51210100] se trouvant en [A]

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Citation Envoyé par crissud Voir le message
    Oui merci


    Mais je voudrais lancer une macro qui le ferait
    Il y a l'enregistreur de macro qui donne un début de réponse à peaufiner

    ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub MFC()
     
    Worksheets("Feuil2").Range("I:I").FormatConditions.Add(Type:=xlExpression, Formula1:="=$A1=51210100").NumberFormat = "0000000000000"
    End Sub

  7. #7
    Membre émérite
    Homme Profil pro
    D.E.
    Inscrit en
    Octobre 2013
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : D.E.

    Informations forums :
    Inscription : Octobre 2013
    Messages : 562
    Par défaut
    Citation Envoyé par crissud Voir le message

    Selection.NumberFormat = "0000000000000"
    Attention car si la colonne I contient des valeurs numériques, les 0 vont s'ajouter devant et non derrière.

    Voilà ce que j'ai fait et qui semble fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MEF()
    R = 1
    While valeur <> 51210100
        Range("I" & R).Select
        valeur = ActiveCell.Value
        R = R + 1
    Wend
            ActiveCell.FormulaR1C1 = "5121010000000"
            Selection.NumberFormat = "0000000000000"
    End Sub

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 218
    Par défaut
    Oui merci

    c'est le but

  9. #9
    Membre émérite
    Homme Profil pro
    D.E.
    Inscrit en
    Octobre 2013
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : D.E.

    Informations forums :
    Inscription : Octobre 2013
    Messages : 562
    Par défaut
    Alors, si les 0 doivent etre devant, il faut enlever le ActiveCell.FormulaR1C1 = "5121010000000" de la macro que j'ai postée.

  10. #10
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut format cellule en fonction
    Re....

    Est-ce que ceci ne serait pas plus approprié que d'indiquer un format.
    Si oui je pense que des connaisseurs trouveront à la simplifier.
    A loger sur la feuille concernée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub worksheet_change(ByVal target As Range)
      If Not Intersect(Columns("i:i"), target) Is Nothing Then
        If target.Offset(0, -8) = 51210100 Then
           Application.EnableEvents = False
           If Len(target.Value) < 13 Then
              MsgBox "13 caractères recquis"
              target.ClearContents
           End If
           Application.EnableEvents = True
        End If
     End If
    End Sub
    Cordialement,

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  2. Réponses: 2
    Dernier message: 24/02/2009, 17h40
  3. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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