Créer une condition sur feuille complète, avec pour conséquence un calcul

alucard_xs

XLDnaute Occasionnel
Bonjour,

voilà sur une feuille C, je fais des calculs à partir d'autres feuilles, par exemple, dans la cellule 2B de feuille C , je fais cellule 2B de feuille B + cellule 2B de feuille A, idem pour cellule 3B, ensuite 4B ... etc puis colonne d'à côté 2C, 3C, bref toutes les cellules de ma feuille 2, j'aimerai bien dire à ma feuille C, voilà, si la valeur de la cellule concerné est < 10 alors tu fais rien :

si cell2_feuillA < 10 alors tu fais rien dans cell2_feuillC
etc ... poru toutes mes cellules de ma feuille B.

c'est pas très clair mais pas évident à expliquer.

EN vous remerciant ;)

ah oui au fait bon week-end à tous ;)
 

Tibo

XLDnaute Barbatruc
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

re,

Pourquoi ne joins-tu pas un fichier ?

Ca permettrait sans doute de comprendre ce que tu ne parviens pas à expliquer.

Un fichier remplace parfois efficacement un long discours

A te (re)lire

@+
 

alucard_xs

XLDnaute Occasionnel
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

je ne peux pas donner le fichier car il contient des données non diffusables.
Mais je pense que mon dernier post était de loin le plus explicite surtout ma derniere phrase.
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

re,

Il suffit de modifier les données confidentielles.

De plus, un extrait de quelques lignes devrait suffire pour qu'on comprenne ton problème.

A toi de voir

@+
 

alucard_xs

XLDnaute Occasionnel
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

voilà ce que je fais dans ma feuille de variation (où je calcule le tx de variation)

Code:
Sheets("variation").Select
Worksheets("variation").range("C2:C2").Select 
ActiveCell.FormulaR1C1 = "=IF(AND('feuille A!RC[3]<>"""",'feuille B '!RC[3]<>""""),ROUND((('feuille B'!RC[3]-'feuille A'!RC[3])/'feuille A'!RC[3])*100,1),"""")"
Set SourceRange = Worksheets("variation").range("C2:C2")
Set fillRange = Worksheets("variation").range("C2:C1600")
SourceRange.AutoFill Destination:=fillRange
Set SourceRange = Worksheets("variation").range("C2:C1600")
Set fillRange = Worksheets("variation").range("C2:BH1600")
SourceRange.AutoFill Destination:=fillRange 
color ("variation")



et voici ma macro color qui colore selon la valeur du tx de variation et ce, quel quel soit la valeur que j'ai dans ma feuille A, et moi justement je veux que, si valeur en feuille A < une variable "dblValeur" alors la cellule correspondante en feuille "variation" soit blanche (non colorié)


Code:
Sub color(nomfeuille)

For Each c In Worksheets(nomfeuille).range("C2:BH1600")

If c.Value <> "" Then
    If Abs(c.Value) < 50 Then
    c.Interior.ColorIndex = xlNone
    Else
        If Abs(c.Value) >= 50 And Abs(c.Value) < 100 Then 'and diff>nombre choisi Then
        c.Interior.ColorIndex = 19
            Else
                If Abs(c.Value) >= 100 And Abs(c.Value) < 300 Then
                c.Interior.ColorIndex = 6
                Else
                    If Abs(c.Value) >= 300 And Abs(c.Value) < 500 Then
                    c.Interior.ColorIndex = 45
                    Else
                    If Abs(c.Value) >= 500 And Abs(c.Value) < 1000 Then
    c.Interior.ColorIndex = 46
    End If
    If Abs(c.Value) > 1000 Then
    c.Interior.ColorIndex = 3
    End If
    End If
    End If
    End If
    End If
End If
Else: c.Interior.ColorIndex = xlNone
End If
Next c
End Sub
 

Tibo

XLDnaute Barbatruc
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

re,

décidément, difficile de se comprendre.

Tu nous donnes le code VBA de ton fichier.

C'est le fichier qu'il faudrait joindre en supprimant (ou modifiant) les données confidentielles et en se limitant à quelques lignes.

Le fichier : zippé de préférence, sans données confidentielles, taille < 48.8 ko.

On va bien finir par y arriver.

@
 

alucard_xs

XLDnaute Occasionnel
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

voici le fichier assez épuré mais le squelette est visible.

j'espère que ça vous sera assez clair même s'il manque quelques instructions.
 

Pièces jointes

  • txvar.zip
    26.2 KB · Affichages: 24

alucard_xs

XLDnaute Occasionnel
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

dans la derniere vous verez, les tx de variation sont faux car j'ai remplcé les valeurs des feuille B et C par n'importe quoi mais normalement le prog fait

((B-C)/B)*100
là il regarde la valeur du tx de var et la colorie selon la macro "color"
bon et bien ce que je voudrais lui dire c'est que :

si je regarde la var de paul, je vois que c'est < 10 (par exemple) feuille B donc tu ne vas pas me colorié son tx de variation correspondant.
 

matthieu33

XLDnaute Occasionnel
Re : Créer une condition sur feuille complète, avec pour conséquence un calcul

Bonsoir alucard_xs et le forum,

J'ai fait une adaptation dans la procédure "color".

Code:
Sub color(nomfeuille)
    Dim dblValeur As Double
    Dim strChoix As String

    strChoix = InputBox("Veuillez saisir une valeur ?", "Valeur")
    
    dblValeur = 0
    If IsNumeric(strChoix) Then dblValeur = CDbl(strChoix)

    For Each c In Worksheets(nomfeuille).range("C2:BH1600")
        If Worksheets("B").Cells(c.Row, c.Column).Value >= dblValeur Then
            If c.Value <> "" Then
                If Abs(c.Value) < 50 Then
                    c.Interior.ColorIndex = xlNone
                Else
                    If Abs(c.Value) >= 50 And Abs(c.Value) < 100 Then 'and diff>nombre choisi Then
                        c.Interior.ColorIndex = 19
                    Else
                        If Abs(c.Value) >= 100 And Abs(c.Value) < 300 Then
                            c.Interior.ColorIndex = 6
                        Else
                            If Abs(c.Value) >= 300 And Abs(c.Value) < 500 Then
                                c.Interior.ColorIndex = 45
                            Else
                                If Abs(c.Value) >= 500 And Abs(c.Value) < 1000 Then
                                    c.Interior.ColorIndex = 46
                                End If
                                If Abs(c.Value) > 1000 Then
                                    c.Interior.ColorIndex = 3
                                End If
                            End If
                        End If
                    End If
                End If
                
            Else: c.Interior.ColorIndex = xlNone
            End If
        End If
    Next c
End Sub

@+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87