macro, mise en forme conditionnelle - recherche et remplace

mig_59

XLDnaute Junior
Bonjour Forum

Voilà, je cherche une macro, mise en forme conditionnelle ou VBA qui pourrait me remplacer toute les valeurs supérieures à un chiffre donné

Je m'explique, j'ai un tableau "AR5:AZ39" et j'aimerais replacer par un "x" toute les valeurs supérieures a la cellule "B3".

La cellule B3 n'est pas fixe elle peut changer

Merci pour votre aide
 

Pièces jointes

  • mig_59.xls
    26.5 KB · Affichages: 64
  • mig_59.xls
    26.5 KB · Affichages: 67
  • mig_59.xls
    26.5 KB · Affichages: 67

Dranreb

XLDnaute Barbatruc
Re : macro, mise en forme conditionnelle - recherche et remplace

Bonjour.
Là:
VB:
Sub Macro1()
Dim Lim As Double, TV() As Variant, L As Long, C As Long
Lim = Feuil1.[B3].Value
With Feuil1.[AR5:AY39]
TV = .Value
For L = 1 To UBound(TV, 1): For C = 1 To UBound(TV, 2)
If TV(L, C) > Lim Then TV(L, C) = "x"
Next C: Next L
.Value = TV
End With
End Sub

P.S. Vous évoquiez une mise en forme conditionnelle, mais ça ne peut pas changer le contenu de cellules, ça ! Ah mais s'il s'agit juste de faire apparaitre des "x" sans changer le contenu des cellules on peut faire :
VB:
Sub Macro2()
Feuil1.[AR5:AY39].NumberFormat = "[>" & Feuil1.[B3].Value & "]""x"";General"
End Sub
À +
 
Dernière édition:

nyko283

XLDnaute Occasionnel
Re : macro, mise en forme conditionnelle - recherche et remplace

Bonjour mig-59,

un debut de réponse mais ne sachant pas comment et pourquoi la cellule b3 peut changer, et changer de place dans la feuille ou de valeur ?
voici un code qui remplace donc toutes les valeurs supérieurs a b3 par des "X" toutes les valeurs remplacer sont perdues. ce code intervient à chaque modification de la valeur de la cellule B3.
code a placer dans la feuille
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range
If Not Intersect(Target, Range("B3")) Is Nothing Then
    For Each rg In Range("AR5:AZ39")
    If rg > Target Then rg.Value = "X"
    Next rg
End If
End Sub

Edit: Bonjour Dranreb ,je ne conaissait pas cette suptilité des ":" pour mettre plusieurs instruction à la suite, très interressant.
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : macro, mise en forme conditionnelle - recherche et remplace

Bonjour à toutes et à tous,

Peut-être, également, comme ceci :

Code:
Sub X()
Dim c As Range
For Each c In Range("AR5:AZ39")
If c.Value > [b3].Value Then c.Value = "x"
Next
End Sub

A bientôt :)
 

mig_59

XLDnaute Junior
Re : macro, mise en forme conditionnelle - recherche et remplace

Bonjour à tous

nyko283, Dranreb, gilbert_RGI ça fonctionne mais pas comme je le souhaite
DoubleZero, je ne sais pas mettre en œuvre votre macro, peut-être qu’elle répond à mes attentes mais !!!

Les valeurs du tableau doivent revenir à l'état initial quand je modifie la cellule B3
il faut que ce soit du "dynamique"

Avec du conditionnel, ça fonctionne mais a la place d'une "x" je mets les valeurs supérieures a B3 en gras (voir exemple)
On devrait pouvoir remplacer le "gras" par un "x" ?
 

Pièces jointes

  • mig_59.xls
    26.5 KB · Affichages: 66
  • mig_59.xls
    26.5 KB · Affichages: 68
  • mig_59.xls
    26.5 KB · Affichages: 61

DoubleZero

XLDnaute Barbatruc
Re : macro, mise en forme conditionnelle - recherche et remplace

Re-bonjour,

...DoubleZero, je ne sais pas mettre en œuvre votre macro, peut-être qu’elle répond à mes attentes mais !!!...

Voir le fichier joint.

Toutefois, si les données transformées par macro en "x" doivent revenir à leur état initial, le code s'avère inadapté.

A bientôt :).
 

Pièces jointes

  • 00 - mig_59.xls
    37 KB · Affichages: 53

mig_59

XLDnaute Junior
Re : macro, mise en forme conditionnelle - recherche et remplace

Re

Oui gilbert_RGI effectivement avec un bouton c'est tout a fait cela
mais la question est : comment dynamiquement (sans bouton) et remplacer le "caractère gras" pas "x" ????????

Cordialement
 

mig_59

XLDnaute Junior
Re : macro, mise en forme conditionnelle - recherche et remplace

Re-bonjour

Merci DoubleZero de te pencher sur mon souci, l'idée est bonne mais hélas pas d'ajout d'un autre onglet ingérable pour moi dans tous les onglets déjà existant
La visu doit être sur le même onglet comme la mise en forme conditionnelle mentionné plus haut
pas évident je sais mais.... il doit surement y avoir une soluce !!!

Cdt
 

nyko283

XLDnaute Occasionnel
Re : macro, mise en forme conditionnelle - recherche et remplace

Comme le suggérait Dranreb,
P.S. Vous évoquiez une mise en forme conditionnelle, mais ça ne peut pas changer le contenu de cellules, ça ! Ah mais s'il s'agit juste de faire apparaitre des "x" sans changer le contenu des cellules on peut faire :
Code vba:
Sub Macro2()
Feuil1.[AR5:AY39].NumberFormat = "[>" & Feuil1.[B3].Value & "]""x"";General"
End Sub
À +
il suffit de le mettre dans l'évènement Worsheet_Change de la feuill1.
cf fichier joint , la mise a jour ce fait pour chaque changement de valeur dans la cellule B3 ou dans le tableau.
 

Pièces jointes

  • Copie de mig_59(1).xls
    36 KB · Affichages: 69

mig_59

XLDnaute Junior
Re : macro, mise en forme conditionnelle - recherche et remplace

Re-bonjour

Excuse Dranreb la soluce dont tu parles :
Code:
Sub Macro2()
 Feuil1.[AR5:AY39].NumberFormat = "[>" & Feuil1.[B3].Value & "]""x"";General"
 End Sub
c'est un peu comme la soluce de DoubleZero, je ne sais pas la mettre en place

A priori c'est-une macro et avec le peu d'expérience que j'ai "enfin si on peut parler d'expérience", je crois qu'il faut l'associer un "bouton" et si c'est le cas, cela ne correspondra pas a mes attentes

Peut être un exemple approprié me parlerai plus

Cdt
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87