Probleme Changement de Format texte

Bonjour,

Voila dans un module j'ai fais une fonction qui me permet de mettre en forme une cellule selon sa valeur en fonction d'une autre.

(je sais mise en forme conditionnel (mais je trouve sa super lourd a faire surtout si je doit rajouter des cases a mon tableau régulièrement))

J'ai donc écrit une petite fonction.

Function CompareCells(Deb As Range, Cible As Range)
Dim ValCible As Integer
Dim Valeur As Integer
Dim Style As Range
Dim Parametre As Worksheet

Valeur = Deb
ValCible = Cible
Set Parametre = Worksheets("Parametre")

If Valeur < (ValCible - 1) Then
    Set Style = Parametre.Range("B2")
    Else
        If Valeur < ValCible Then
            Set Style = Parametre.Range("C2")
            Else
                If Valeur = ValCible Then
                    Set Style = Parametre.Range("D2")
                    Else
                        If Valeur > (ValCible + 1) Then
                            Set Style = Parametre.Range("F2")
                            Else
                                If Valeur > ValCible Then
                                    Set Style = Parametre.Range("E2")
                                End If
                        End If
                End If
        End If
End If

    Deb.Font.Color = Style.Font.Color

    'Style.Copy
    'Deb.PasteSpecial Paste:=xlPasteFormats
    CompareCells = ""
End Function

mais je n'arrive pas a copier correctement le style.

Seul la couleur marche =/

il ne prend pas en compte la police, la taille ,ect... rien a pars la couleur. (le copier-coller avec collage spécial. marche simplement pas)

Savez-vous comment je peux forcer la main a la fonction pour qu’elle redéfinisse bien les propriété nommer?

merci d'avance pour vos réponses.

Bonjour,

Réalise l'action avec l'enregistreur de macro en route, tu verras toutes les propriétés à utiliser.

C'est sans doute mieux de copier une cellule modèle et de faire un .PasteSpecial Paste:=xlPasteFormats

Et utilise elseif, ça t'évitera de devoir acheter un écran 24/9

eric

Bonjour,

Et avec "Select Case", ce n'est pas plus simple

Voir aide Excel.

Cdlt.

Heu select case (j'adopte)

Sinon le probleme n'est pas les propriété. (du moins je connais celle dont j'ai besoin)

par contre ce que je n'arrive pas a faire c'est de les définir par l’intermédiaire d'une fonction d'un module.

Ces propriété. si j'effectue cette modification par un bouton appelant une macro dans thisworkbook. cela le définit bien.

Par contre en utilisant une fonction dans une cellule (=CompareCells("H2";"H24") la il n'y a que la couleur qui est prise en compte.

et si je met plus de valeurs cela plante le traitements.

Re,

je viens de voir que c'est une fonction.

Une fonction ne peut pas modifier son environnement.

Le fait qu'elle modifie la couleur est, pour moi, plus une anomalie qui nous arrange bien.

Aide excel :

VBA pour Excel impose des limites très strictes aux fonctions appelées à l'intérieur de formules de feuilles de calcul. Leur seule attribution est de renvoyer une valeur à la cellule hôte. Ces fonctions ne peuvent effectuer aucune autre action susceptible de modifier le contenu du classeur.

En particulier, une fonction complémentaire ne peut pas modifier la valeur d'autres cellules que celles où elles ont été saisies. De même, il est impossible de renommer une feuille, déplacer une plage, changer le format d'une cellule, etc. à l'intérieur d'une fonction complémentaire. Les seules actions autorisées sont celles qui n'ont aucun effet sur le contenu du classeur, comme par exemple afficher un message par MsgBox.

eric

Franchement dommage,

Je pensai pouvoir gérez mes valeurs conditionnel comme sa =/

bas je vais bien trouvé une autres méthodes

merci pour vos réponses et votre Aides ^^ (Select Case)

C'est le rôle d'une fonction : retourner une valeur. Sinon ce n'est plus une fonction

eric

eriiic a écrit :

C'est le rôle d'une fonction : retourner une valeur. Sinon ce n'est plus une fonction

eric

Tous a fais d'accord.

Mais je voulais faire une fonction qui remplace la mise en forme conditionnel de excel 2010 que je trouve super lourde.

En plus ma feuille étant généré automatiquement par un script je vois pas comment lui mettre la mise en forme auto

Je vais me penchez sur le change de mon worksheets ^^

Tu peux faire un sub qui balaye la plage concernée ou bien, s'il s'agit de saisies, utiliser l'évènement Change.

Au pire, si ce sont des formules, tu peux utiliser Calculate.

eric

Rechercher des sujets similaires à "probleme changement format texte"