Détection auto de textes pour les mettre en gras

Merci !

Cette fois j'ai compris (je n'avais pas compris comment étaient définies plage1 et plage2).

Un truc me surprend maintenant que je maîtrise un peu plus le truc : quand on efface une valeur de plage1, les textes correspondants dans plage2 restent en gras (mais j'avoue que je n'avais pas mentionné ça dans mon post initial).

Cela dit, déjà comme ça c'est super.

re,

Un truc me surprend maintenant que je maîtrise un peu plus le truc : quand on efface une valeur de plage1, les textes correspondants dans plage2 restent en gras (mais j'avoue que je n'avais pas mentionné ça dans mon post initial).

Gloub, si tu expliquais convenablement ton pb. Que de fichiers postés inutilement sur ce fil qui ne font qu'alourdir le forum inutilement.

Depuis le début tu parles d'une plage dans la colonne C non ?

Merci de mieux expliquer toute ta demande sans quoi on ne va pas arrêter de modifier les codes.

A te relire

edit dan :

Ketamacanna, je n'ai pas compris le "else" dans le IF et le 0 en fin de code.

Peut être veux tu que le code réagisse sur le changement de valeur en colonne E ou colonne C ?? Si oui, prends ce code ci :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Macro Dan pour Gloub le 15/11/2010, suite Ketamacanna 16/11/2010
Application.ScreenUpdating = False
Dim cel As Range
Dim i As Byte
Dim nb As Integer, pos As Integer
pos = 1
Range("plage2").Font.Bold = False
If Not Intersect(Target, Range(Range("plage1"), Range("plage2"))) Is Nothing Then
For Each cel In Range("plage2")
For i = 2 To Range("E65536").End(xlUp).Row
nb = Range("E" & i).Characters.Count
Do While pos <> 0
pos = InStr(pos, cel, Range("E" & i), 1)
If pos <> 0 Then cel.Characters(pos, nb).Font.Bold = True
If pos = 0 Then pos = 1: Exit Do
pos = pos + nb
Loop
Next
Next
End If
End Sub

Le code réagira sur changement en colonne C ou E

Si ok, n'oublie pas de cliquer sur le V vert pour cloturer le fil.

A te relire

Amicalement

@ketamacanna : merci pour la v5, ça marche !

@dan : merci d'avoir persévéré à m'aider.

Pour ce qui est de tes reproches, ils me paraissent injustes : j'ai demandé conseil au Forum en ramenant ma question à l'essentiel (dans la feuille de calcul dans la vraie vie, la plage de recherche est beaucoup plus longue, ne peut se situer qu'au delà de la colonne 32, etc..., toutes choses qui auraient compliqué la compréhension du problème).

Ce qui a allongé le fil c'est ma méconnaissance du VBA (qui m'a fait échouer à adapter le code à ma situation concrète) et de m'être aperçu que la mise en forme n'était pas réversible. Je ne m'y attendais pas - mais ce n'était pas évident à anticiper...

Et Ketamacanna a été très sympa de m'aider jusqu'au bout.

re,

Il ne s'agit pas de reproches mais bien souvent on passe beaucoup de temps lorsque le sujet n'est pas bien expliqué.

Peut être n'avais je pas compris. déso

Si je t'ai répondu et ai adapté le dernier code que je t'ai proposé (qui fonctionne) c'est que j'ai vu, sans prétention aucune, quelques instructions "erronées"; Dans le cas contraire je me serais abstenu de te répondre.

A quoi bon d'ailleurs remette une couche si un autre vient apporter sa solution et qu'elle est correcte.

Au final c'est à toi de voir ce que tu veux.

Si ta demande est terminée, n'oublie de cloturer le fil en cliquant sur le V vert.

A bientôt

No problemo.

En fait je viens ici chercher des conseils pour Excel mais il m'arrive bien souvent d'en donner sur un forum consacré à AutoCad. En étant alternativement demandeur et donneur de conseils, je vois bien comment ça se passe :

  • d'une part il arrive souvent que les retours qu'on obtient aident à mieux comprendre la question que l'on se posait
  • d'autre part il arrive aussi que ces retours ouvrent à leur tour sur des horizons nouveaux.

Merci en tous cas de participer à cette oeuvre collective.

Slt Gloub et Dan.

Concernant le else, c'est un oubli de ma part tout comme le 0 en fin .

Gloub, Content que cela marche enfin . Si tu veux que le code soit plus clair, tu peux supprimer le else et rajouter un not entre if et intersect. Tu peux également virer le union qui n'était pas nécessaire (laisser : Range(Range("plage1"), Range("plage2"))...

Bonne soirée à vous deux

re,

Gloub, Content que cela marche enfin . Si tu veux que le code soit plus clair, tu peux supprimer le else et rajouter un not entre if et intersect. Tu peux également virer le union qui n'était pas nécessaire (laisser : Range(Range("plage1"), Range("plage2"))...

lol ! voir ma réponse et le code proposé --> Mar Nov 16, 2010 9:06 pm

Bonne journée à vous deux.

Rechercher des sujets similaires à "detection auto textes mettre gras"