Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2010, 11h33   #1
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Par défaut mise en forme

Bonjour,

J'ai une colonne contenant des lettres et j'aimerais que tout ce qui n'est pas A, T, C ou G soit mis en rouge. Est-ce possible via la fonction 'Rechercher et remplacer' ou dois-je utiliser un macros?


Merci pour votre aide.
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 11h37   #2
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,

La mise en forme conditionnelle devrait povoir faire cela.

Edit : On pourrait mieux vous expliquez quoi faire si on savait quelle version d'Excel vous utilisez.
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 11h41   #3
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Merci de vous intéresser à mon problème, j'utilise excel 2003 11.8328.8329.
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 14h32   #4
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Re,
après avoir sélectionner les cellules à mettre en forme.

Pour 2003 il faut passer par Format > Mise en forme conditionnelle
Choisir l'option Formule dans la liste de choix et inscrire la formule suivante

Citation:
=ET($A2<>"A";$A2<>"T";$A2<>"G";$A2<>"C")
Il faudra peut être adapté ici cela fonctionne pour des données dans la colonne A depuis A2 jusqu'à ....
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 14h49   #5
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Merci de me répondre

Code :
=ET($D2<>"A";$D2<>"T";$D2<>"G";$D2<>"C")
La formule fonctionne mais le problème est qu'elle met tout le contenu de la cellule en couleur

EX : cellule D25 contient
Code :
TGGGTCGCCGTCCCCYCTCTCCGGGGGGACGGGCCCGAAAG
Seul le Y doit être mis en rouge
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 14h55   #6
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Re,

OK j'avais pas bien rélisé ce que vous demandiez. Je m'y remet.

Edit :
peut-il y avoir plusieurs caractères qui peuvent apparaître en rouge dans la chaîne?
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h22   #7
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Re,

Désolé pas de solution par MFC il faudra passer par VBA en analysant la chaîne caractères par caractères et en colorisant les caractères qui seront vérifiés comme ne répondant pas aux critères du test.

Je suis occupé pour l'instant mais si demain je vois que vous n'avez pas de réponse j'essayerai de vous aidez plus.
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h05   #8
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Re,

Voilà une procédure que je viens d'écrire et qui pourra vous guider en l'adaptant à vos besoins, en tout cas pour D25 elle fonctionne

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Colorise_Caractère()
Dim Chaîne As String, Lettre As String
Dim i As Integer, Longueur As Integer
 
'Mettre le contenu de D25 dans Chaîne
Chaîne = Range("D25").Value
'Nbre de caractères de Chaîne
Longueur = Len(Chaîne)
'Analyse de la chaîne caractère par caractère
For i = 1 To Longueur
    Lettre = Mid(Chaîne, i, 1)
    If Lettre <> "A" And Lettre <> "C" And Lettre <> "G" And Lettre <> "T" Then
        Range("D25").Characters(i, 1).Font.ColorIndex = 3
    End If
Next i
End Sub
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 07h40   #9
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Merci beaucoup pour ton aide, je ne connais pas du tout VBA

Citation:
Envoyé par rjamin Voir le message
peut-il y avoir plusieurs caractères qui peuvent apparaître en rouge dans la chaîne?
Oui


Je ne comprends pas bien ton script
- qu'est-ce que la fonction Mid()?
- comment faire si j'ai plusieurs cellules à traiter?

J'ai rajouter une colonne donc maintenant c'est E et non D et je dois traiter de E2 à E236

Sur ce forum, quelqu'un m'avait déjà aidé pour un script du même genre

Code :
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
Sub consensus()
 
  Dim i As Integer
  Dim Cellule As Range
 
  For Each Cellule In Range("e2:e1507")
    For i = 1 To Len(Cellule.Text)
      Select Case i
        Case 1, 2, 3, 4, 5
          Select Case Cellule.Characters(i, 1).Caption
            Case "A"
              With Cellule.Characters(i, 1)
                .Font.Bold = True
                .Font.Color = vbGreen
              End With
            Case "C"
              With Cellule.Characters(i, 1)
                .Font.Bold = True
                .Font.Color = vbBlue
              End With
            Case "G"
              With Cellule.Characters(i, 1)
                .Font.Bold = True
                .Font.Color = vbMagenta
              End With
            Case "T"
              With Cellule.Characters(i, 1)
                .Font.Bold = True
                .Font.Color = vbRed
              End With
          End Select
      End Select
    Next i
  Next Cellule
 
End Sub
Peut-être comme ça

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub consensus()
 
  Dim i As Integer
  Dim Cellule As Range
 
  For Each Cellule In Range("e2:e236")
    For i = 1 To Len(Cellule.Text)
      Select Case i
        Case 1, 2, 3, 4, 5
          Select Case Cellule.Characters(i, 1).Caption
 
                If Lettre <> "A" And Lettre <> "C" And Lettre <> "G" And Lettre <> "T" Then
                   Range("?").Characters(i, 1).Font.ColorIndex = 3
                End If
 
          End Select
      End Select
    Next i
  Next Cellule
 
End Sub
Comment faire pour la ligne Case 1, 2, 3, 4, 5
Si je veux traiter 30 cas ... est-il possible de dire Case 1:30 ?


Merci pour ton aide
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 10h15   #10
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,
Lepremier post ne spécifiait pas que plusieurs cellules devaient être traîtées ni lesquelles surtout.
Voilà la procédure adaptée

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Colorise_Caractère()
Dim Chaîne As String, Lettre As String
Dim i As Integer, Longueur As Integer
Dim cellule As Range
 
 
'Parcourir toutes les cellules de E2 à E236
For Each cellule In Range("E2:E236")
    'Analyse de la chaîne caractère par caractère
    For i = 1 To Len(cellule.Text)
        'Pour extraire 1 caractère dans la chaîne à la position i
        'Mid(Texte,PositionDeDépart,NbdeCar)
        Lettre = Mid(cellule.Text, i, 1)
        'Test du caractère Extrait
        If Lettre <> "A" And Lettre <> "C" And Lettre <> "G" And Lettre <> "T" Then
             With cellule.Characters(i, 1)
             .Font.ColorIndex = 3
             End With
        End If
    Next i
Next cellule
End Sub
Mid("Texte",3,1) permet d'extraire le x de la chaîne Texte

Bonne journée
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 10h28   #11
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Merci beaucoup, cela fonctionne bien.

J'ai encore une question, sais-tu à quoi sert la ligne Case 1, 2, 3, 4, 5 du script que j'ai posté?
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 10h54   #12
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Re,
On a écrit
Citation:
For i = 1 To Len(Cellule.Text)
Select Case i
Case 1, 2, 3, 4, 5
Select Case Cellule.Characters(i, 1).Caption
Case "A"
i est in crémenté à chaque boucle du For
on fait Select Case i donc on sélectionne une valeur de i
Case 1, 2, 3 .... Quand i = 1 on compare le caratère 1 de la chaîne contenue dans la cellule et cette comparaison se fait avec un nouveau Select case
Apparemment dans le cas de votre procédure on testait les 5 premiers caractères.

En résumé :
Select Case exécute des séquences d'instructionsspécifiées en fonction de la valeur d'une expression, elle permet de remplacer avantageusement le ElseIf dans des instructions If.... Then.....Else

Code :
1
2
3
4
5
6
7
8
9
10
Syntaxe :
Select Case 'Expression à tester
        Case 'Expression 1
                Séquence d'instructions 1
        Case 'Expression 2
                Séquence d'instructions 2
        ...........
        Case Else
                Séquence d'instructions 3
End Select
L'Expression x peut prendre les formes suivantes
Valeur Ex Case 10
liste de valeurs Ex Case 1, 5, 10
plage de valeurs Ex Case 1 To 5
expression conditionnelle Ex Case Is >= 5
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 11h10   #13
Membre Expert
 
Avatar de Jasmine80
 
Jasmine
Inscription : octobre 2006
Messages : 2 814
Détails du profil
Informations personnelles :
Nom : Jasmine
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : octobre 2006
Messages : 2 814
Points : 2 079
Points : 2 079
Merci pour tes explications et ta patience. J'ai bien compris.
__________________
-- Jasmine --

Merci de poser les questions dans le forum, je ne répondrai pas aux MP.
Jasmine80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h20.


 
 
 
 
Partenaires

Hébergement Web