Mise en forme conditionnelle via VBA

Julien_B

XLDnaute Nouveau
Bonjour à tous,

Totalement ignard en matière de VBA, je requiert votre expérience dans le but de me donner un petit coup de pouce...

En effet, je cherche à mettre en forme des cellules en fonction de leur contenu, mais sans passer par une mise en forme conditionnelle car les critères sont basés sur une base de données qui, comme toutes les bases de données, sera amenée à évoluer.

En gros, j'ai un tableau de saisie, dans lequel je vais entrer des valeurs. Le but est de rechercher la valeur correspondante dans une base de données. Une fois trouvée, je colorie ma cellule de la même couleur que la valeur correspondante dans la base de données.

Je joins un fichier exemple pour plus de clarté...

Merci beaucoup pour votre Aide, en espérant avoir été assez clair dans ma demande.

Julien
 

Pièces jointes

  • Classeur1.xlsx
    8 KB · Affichages: 33
  • Classeur1.xlsx
    8 KB · Affichages: 39

DoubleZero

XLDnaute Barbatruc
Re : Mise en forme conditionnelle via VBA

Bonjour à toutes et à tous,

Bienvenue sur XLD, Julien_B.

Un essai avec le code visé infra, placé dans un module standard.

Code:
Option Explicit
Sub MFC()
    Dim c As Range, cc As Range
    For Each c In Range("g:h").SpecialCells(xlCellTypeConstants)
        Set cc = Columns(5).Find(c, LookIn:=xlValues, LookAt:=xlWhole)
        If Not cc Is Nothing Then cc.Copy Destination:=c
    Next
End Sub

A bientôt :)
 

Julien_B

XLDnaute Nouveau
Re : Mise en forme conditionnelle via VBA

Merci beaucoup, cela fonctionne bien pour mon exemple transmis.
Le problème, c'est que dans le fichier que je souhaite traiter (le fichier envoyé n'était qu'un exemple), les valeurs à traiter ne sont pas remplies à la main, mais sont le résultat d'une formule, et pour le coup, le code ne fonctionne pas.

==> Mise à jour du message: cela fonctionne en changeant SpecialCells(xlCellTypeConstants) par SpecialCells(xlCellTypeFormulas, 2)

Par contre, si une cellule redevient vide, elle ne redevient pas blanche.
 
Dernière modification par un modérateur:

DoubleZero

XLDnaute Barbatruc
Re : Mise en forme conditionnelle via VBA

Re-bonjour,

... cela fonctionne bien pour mon exemple transmis. Le problème, c'est que dans le fichier que je souhaite traiter (le fichier envoyé n'était qu'un exemple)...

A l'avenir, merci de bien vouloir déposer le "sosie" du fichier de travail, sans donnée confidentielle.

Un autre essai :

Code:
Option Explicit
Sub MFC_v2()
    Dim c As Range, cc As Range
    Application.ScreenUpdating = 0
    Sheets("Feuil1").Range("g:h").Interior.ColorIndex = xlNone
    For Each c In Sheets("Feuil1").Range("g:h").SpecialCells(xlCellTypeFormulas, 23)
        Set cc = Sheets("Feuil3").Range("b:b").SpecialCells(xlCellTypeConstants).Find(c, LookIn:=xlValues, LookAt:=xlWhole)
        If Not cc Is Nothing Then
            cc.Copy
            c.PasteSpecial Paste:=xlPasteFormats
        End If
    Next
    Application.ScreenUpdating = -1
End Sub

A bientôt :)
 

Statistiques des forums

Discussions
312 493
Messages
2 088 945
Membres
103 989
dernier inscrit
jralonso