Grisé d'une couleur une colonne sous condition

xorre

XLDnaute Junior
Bonjour,

j'ai un certain nombre de traitement récurent que j'aimerais automatiser je vous explique ce que je cherche à faire:

En gros, j'ai 6 colonnes d'un tableau

je souhaite que

1 - Tous les C = ANN l'IY de sa ligne en D = T et vice versa
Si ID2 = ANN alors IY = T et si IY = T alors ID2 = ANN

2 - SI un 0 est présent dans IY le supprimer

3 - Si la case IY est vide, la colorer en gris

4 - Puis appliquer un tri uniquement et sur l'ensemble de ces colonnes

ID valeur de A a Z
IY couleur de cellule en gris en haut
DA Valeurs plus ancien au plus récent

Le tout dans cet ordre.
Ce fichier est une extraction d'un plus gros fichier j'aurais donc à rapatrier les modifications éventuelles du fichier exemple vers mon vrai fichier :)

Le tout peut-il / doit-il être fait en VBA ou des simples équations dans les cellules serait suffisant ?

Merci d'avance à la communauté pour son aide !
 

Pièces jointes

  • Exemple.xlsx
    9.8 KB · Affichages: 41
  • Exemple.xlsx
    9.8 KB · Affichages: 53
  • Exemple.xlsx
    9.8 KB · Affichages: 44

xorre

XLDnaute Junior
Re : Grisé d'une couleur une colonne sous condition

Bonjour,

En fait, le fichier fourni était déjà dans l'attendu :)

J'ai donc rajouté un avant / après afin de mieux visualiser les différences !
Ce que je - peux - avoir en entrée
et un attendu final

Par contre ce fichier fait office de reporting pour des utilisateurs

Je profite pour savoir y-a-t-il un moyen d'importer des fichiers texte parser ( toujours la même structure d'information parser par des ; ) vers des cellules cibles et de dérouler ?
si oui sauriez vous me "diriger" peut être vers des discussions sur lesquelles je pourrais essayer de me base pour avancer sur ce sujet en parallèle car après plusieurs recherches infructueuses :/

merci pour ta participation !
 

Pièces jointes

  • Exemple.xlsx
    11 KB · Affichages: 50
  • Exemple.xlsx
    11 KB · Affichages: 61
  • Exemple.xlsx
    11 KB · Affichages: 56
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Grisé d'une couleur une colonne sous condition

Bonjour, xorre, le Forum,

Peut-être ainsi :

Code:
Option Explicit
Sub Valeurs_modifier_cellules_vides_coloer()
    Dim i As Long, j As Long, k As Long
    With Application: .ScreenUpdating = False: .Calculation = xlManual: End With
    Columns(4).Replace What:="0", Replacement:=""
    For i = Cells(Rows.Count, "c").End(xlUp).Row To 1 Step -1
        If Range("c" & i) = "ANN" Then Range("c" & i).Offset(, 1) = "T"
    Next
    For j = Cells(Rows.Count, "d").End(xlUp).Row To 1 Step -1
        If Range("d" & j) = "T" Then Range("d" & j).Offset(, -1) = "ANN"
    Next
    For k = Cells(Rows.Count, "a").End(xlUp).Row To 1 Step -1
        If Range("a" & k).Offset(, 3) = "" Then Range("a" & k).Offset(, 3).Interior.ColorIndex = 15    ' = "ANN"
    Next
    Range("a1:e" & Range("a65000").End(xlUp).Row).Sort Key1:=Range("a1") _
                                                     , Order1:=xlAscending, Key2:=Range("e1"), Order2:=xlAscending, Header:=xlYes
    With Application: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub

A bientôt :)
 

xorre

XLDnaute Junior
Re : Grisé d'une couleur une colonne sous condition

merci beaucoup, il me manque probablement une key 3 qui place la couleur gris en haut, mais je vais me débrouiller pour l'ajouter !

Quelques petits tests unitaires mais ca m'a l'air convenir à ce que j'attends de mon tableau

merci grandement ! ( même si je ne comprends pas tout le code, je vais essayer de décortiquer :) )


PS :

petit soucis pour utiliser un nouveau tri par couleur je n'y parviens pas :/
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Grisé d'une couleur une colonne sous condition

Bonjour, xorre, le Forum,

merci beaucoup, il me manque probablement une key 3 qui place la couleur gris en haut, mais je vais me débrouiller pour l'ajouter !

PS : petit soucis pour utiliser un nouveau tri par couleur je n'y parviens pas :/

Je ne vois pas :confused: comment trier d'abord sur la colonne a, puis sur la colonne d, tout en positionnant en haut les cellules grisées.

Le fichier déposé en #3 ne me permet pas de comprendre le véritable résultat souhaité... à moins que mes mirettes :( ne soient perturbées !

A bientôt :)
 

xorre

XLDnaute Junior
Re : Grisé d'une couleur une colonne sous condition

Bonjour,

J'ai ajouté une image du tri que j'applique manuellement et que j'aimerais réalisé de façon automatisé en sus de ce que tu m'as déjà fait et qui correspond parfaitement à tous les traitements à faire (excepté pour ce trie par couleur)

J'ai tenté de bidouiller avec les SortOnValue.Color mais je ne parviens pas à appliquer.... :/

Effectivement, c'est mal expliqué de ma part.... le tri sur la date arrive en dernier car indépendamment de la date, je cherche à avoir un tri sur l'id pour les regrouper, sur la couleur grise pour avoir mon indicateur T en dernier s'il ye n a un sur mon ID en question puis par la date
Il est possible qu'une occurence existe à posteriori de celui ou j'aurai effectivement un indicateur T mais je le veux quand même en dernière position :)


Grand merci pour ton aide
 

Pièces jointes

  • trie_applique.png
    trie_applique.png
    32.6 KB · Affichages: 48
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : Grisé d'une couleur une colonne sous condition

Re-bonjour,

Un autre essai... malgré de gros doutes :confused:...

Code:
Option Explicit
Sub Valeurs_modifier_cellules_vides_colorer_V2()
    Dim i As Long, j As Long, k As Long
    With Application: .ScreenUpdating = False: .Calculation = xlManual: End With
    Columns(4).Replace What:="0", Replacement:=""
    For i = Cells(Rows.Count, "c").End(xlUp).Row To 1 Step -1
        If Range("c" & i) = "ANN" Then Range("c" & i).Offset(, 1) = "T"
    Next
    For j = Cells(Rows.Count, "d").End(xlUp).Row To 1 Step -1
        If Range("d" & j) = "T" Then Range("d" & j).Offset(, -1) = "ANN"
    Next
    For k = Cells(Rows.Count, "a").End(xlUp).Row To 1 Step -1
        If Range("a" & k).Offset(, 3) = "" Then
            With Range("a" & k).Offset(, 3): .Interior.ColorIndex = 15: .Value = "zzzz": End With
        End If
    Next
    Range("a1:e" & Range("a65000").End(xlUp).Row).Sort Key1:=Range("d1") _
                                                     , Order1:=xlDescending, Key2:=Range("a1"), Order2:=xlDescending, Header:=xlYes, Key3:=Range("e1"), Order3:=xlDescending, Header:=xlYes
    Columns(4).Replace What:="zzzz", Replacement:=""
    With Application: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub

A bientôt :)
 

xorre

XLDnaute Junior
Re : Grisé d'une couleur une colonne sous condition

tes doutes sont fondés :)

ca ne fonctionne pas ce trie me place d'abord toutes les colonnes vides puis tous les T

le trie déjà opéré sur le fichier source est celui attendu donc s'il y a modification, c'est que le tri appliqué n'est pas le bon :S
 

xorre

XLDnaute Junior
Re : Grisé d'une couleur une colonne sous condition

et ton gros neurone * :)

l'image prise sur le trie réalisé manuellement dans le message du 06/11/2014 11h33 ne t'aide pas ?

C'est dommage que je ne puisse pas utiliser la macro à cause de ce tri manquant ... :(
 

Discussions similaires

Statistiques des forums

Discussions
312 296
Messages
2 086 967
Membres
103 411
dernier inscrit
jamjam6767