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

Excel Discussion :

texte dans une cellule si la cellule avant est colorié


Sujet :

Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Par défaut texte dans une cellule si la cellule avant est colorié
    Bonjour à tous,

    Voila je n'arrive pas à formuler ma recherche sur les differents moteurs donc je viens vous demander un peu d'aide.

    voici mon problème :

    j'ai la cellule A1 qui a du texte et qui est colorié, la cellule A2 est vide et non colorié. Je voudrai que selon si la cellule est colorié mettre la valeur "OK" dans la cellule B1 ou B2.

    J'espere que je m'explique bien

    Merci à vous

    Fredo

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Par défaut
    Bonjour

    Si la cellule A1 est colorée par MFC, tu appliques la même condition sur A2
    Exemple :

    Si la cellule A1 est colorée manuellement, il faut passer par une macro.

    Amicalement
    Nad

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Par défaut
    Merci de votre réponse effectivement la cellule à été colorié manuellement

    Est ce que vous pouvez m'aider pour la macro ?

    Merci encore

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Voici un petit code à mettre dans le module de la feuille (click droit sur l'onglet ensuite Voir code).

    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
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim cel As Range, MaPlage As Range 'Dimensionne les variables
     
    Set MaPlage = Range("A1:A2") 'Affecte la plage à la variable à adapter selon ton cas
     
    For Each cel In MaPlage 'Boucle qui passe sur chaque cellule (cel) contenue dans la plage
        If Not IsEmpty(cel) And cel.Interior.ColorIndex <> xlNone Then 'Si non vide et avec couleur
            cel.Offset(0, 1).Interior.ColorIndex = cel.Interior.ColorIndex 'Applique la même couleur à la cellule de droite
            cel.Offset(0, 1) = "OK" '"Ecrit" OK dans la cellule de droite
        End If
    Next 'passe à la cellule suivante
     
    End Sub
    La macro se déclenche dès que tu te déplace sur la feuille, il y a moyen de restreindre le déclenchement sur base d'une zone dans la feuille ou encore que si une des cellules de la plage est modifiée mais on verra après pour autant que ce code te convienne.

    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Par défaut
    Merci pour ce code cependant je pense m'être mal exprimé

    Je vais reformuler :

    La colonne A contient des données et certaines sont mise en valeur par une couleur ( mise en manuel)

    Je voudrais pouvoir faire en sorte que dans la colonne B il me marque OK selon si la case en colorié ou non.

    Merci



    P.S : le critère s'effectue sur la couleur en fait car toutes les cellules de la colonne A ont des données

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Dans ce cas on enlève la condition lié au contenu, donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim cel As Range, MaPlage As Range 'Dimensionne les variables
     
    Set MaPlage = Range("A1:A2") 'Affecte la plage à la variable à adapter selon ton cas
     
    For Each cel In MaPlage 'Boucle qui passe sur chaque cellule (cel) contenue dans la plage
        If cel.Interior.ColorIndex <> xlNone Then cel.Offset(0, 1) = "OK" 'on met OK dans la cellule de droite si la cellule vérifiée à l'intérieur coloré.
    Next 'passe à la cellule suivante
     
    End Sub
    A+

    Edit: Adaptation du code, j'avais laissé un End If inutile...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Par défaut
    Yes c'est ça en revanche je fais bien clic droit qur la feuille puis visualiser le code.

    Je colle le code en adaptant à ma sélection de cellule mais rien ne se passe ?

    Merci encore

  8. #8
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    C'est bien ça mais la macro va se déclencher, quand, sur ta feuille tu passe d'une cellule à une autre.
    Si cette action a un caractère ponctuel, tu peux toujours le mettre dans un module "normal" et l'associer à un bouton par exemple.
    A+

Discussions similaires

  1. Remplacer un texte dans une cellule Excel à partir d'un point donné
    Par tonyC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/04/2006, 19h05
  2. formatage d'un text dans une cellule stringgrid en float
    Par iam dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/04/2006, 15h05
  3. [VBA-E]séparateur de texte dans une cellule
    Par desdenova dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2006, 16h44
  4. [VBA] aligner le texte dans une cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/01/2006, 17h07
  5. Faire défiler un texte dans une cellule de tableau
    Par Furius dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 01/12/2005, 17h06

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