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 :

colorer une case qui repond aune condition


Sujet :

Macros et VBA Excel

  1. #1
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Points : 61
    Points
    61
    Par défaut colorer une case qui repond aune condition
    Bonjour,

    comment on fait pour colorer une case qui repond a une condition : j'ai essayé cette solution, mais ca ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub format_cellule()
    For Each Cell In Range("F1:F20")
        If Cell.Value Like "[A-Z]###" Then 'MsgBox "Non"
        Else: Cell.Value.Interior.ColorIndex = 3
        End If
    Next Cell
    End Sub
    qu'est ce qui va pas dans mon code???
    Merci pas avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Que veux-tu trouver dans ta cellule pour que like ... = true ? Donne un exemple.
    Sinon, pour interior.color, ce n'est pas cell.value mais cell tout court.

  3. #3
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    Ca marche, la reponse me suffit
    j'ai une autre question, je veux corriger la forme de mes cases, cad :
    - bonjour,c'est moi devient bonjour, c'est moi
    - bonjour tout le monde, devient bonjour tout le monde (enlever la virgule de fin de chaine)
    donc enlever les caractères superflus,et corriger un peu l'orthographe,
    le probleme c'est que je sais pas comment detecter le caractère de fin de chaine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub virgules_fin()
    Dim Cell As Variant
    For Each Cell In Range("D1:D1340")
        Cell.Value = Replace(Cell.Value, ",", ", ")
    Next Cell
    End Sub
    j'arrive pas a enlever la virgule de fin !!!
    merci de votre aide

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je ne sais pas si j'ai vraiment compris la question
    Je reprends
    Cell.Value = Replace(Cell.Value, ",", ", ")
    et je suppose qu'en fait tu veux supprimer la virgule tout court. Dans ce cas là, tu n'es pas loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Cell.Value = Replace(Cell.Value, ",", "")
    Si j'ai mal compris, tu dis
    A+

  5. #5
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    non, quand j'ai une virgule au milieu de la chaine, je rajoute un espace comme en bon francais, mais si la virgule est a la fin de la chaine, ce qui n'a pas de sens, je dois la virer, revois les exemples ci-dessus

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Dans tes exemples, si tu avais mis
    Ce que j'ai
    - bonjour,c'est moi
    Ce que je veux
    - bonjour, c'est moi

    Ce que j'ai
    - bonjour tout le monde,
    Ceque je veux
    - bonjour tout le monde
    j'aurais compris tout de suite

  7. #7
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    désolé pour cette maladresse....

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je ne vois pas de solution simple.
    1 - Si tu remplaces "," par ", " tu ajouteras un espace en fin de chaîne ou mieux,
    2 - tu insèreras un espace supplémentaire si tu en as déjà un.
    3 - Si tu remplaces "," par "", tu supprimes toutes tes virgules

    Donc, ta solution peut consister à séparer les actions.
    Dans l'ordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Cell.Value = Replace(Cell.Value, ", ", ",") 'pour éviter 2
        if instr(Cell.Value,",") = len(Cell.Value) then _
             Cell.Value= Left(Cell.Value, len(Cell.Value)-1) 'Evite 3
        Cell.Value = Replace(Cell.Value, ",", ", ") 'Corrige 1

  9. #9
    En attente de confirmation mail
    Inscrit en
    Février 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 134
    Points : 61
    Points
    61
    Par défaut
    merci pour ta solution,
    je l'ai essayé mais ca ne marche pas pour la suppression des virgules de fin de chaine (elles restent qd meme !!!):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub virgules()
    Dim Cell As Variant
    For Each Cell In Range("D1:D10")
        Cell.Value = Replace(Cell.Value, ", ", ",") 'pour éviter 2
        If InStr(Cell.Value, ",") = Len(Cell.Value) Then _
             Cell.Value = Left(Cell.Value, Len(Cell.Value) - 1) 'Evite 3
        Cell.Value = Replace(Cell.Value, ",", ", ") 'Corrige 1
    Next Cell
    End Sub
    je vois pas ce pkoi ca marche pas

Discussions similaires

  1. Colorer une case qui est deja choisi par un min Fonction
    Par Lafleur2012 dans le forum Excel
    Réponses: 12
    Dernier message: 27/05/2014, 23h46
  2. comment colorer une case d'un tableau?
    Par zangaloni dans le forum Composants
    Réponses: 4
    Dernier message: 13/05/2009, 17h44
  3. Colorer une case comme paint
    Par ptitepo dans le forum Excel
    Réponses: 7
    Dernier message: 23/05/2008, 16h49
  4. Réponses: 4
    Dernier message: 14/01/2007, 13h21
  5. [JTable] comment colorer une case
    Par cladsam dans le forum Composants
    Réponses: 12
    Dernier message: 20/01/2005, 08h14

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