• Initiateur de la discussion Initiateur de la discussion roro69
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

roro69

XLDnaute Impliqué
Bonjour et merci de votre aide
Dans des colonnes j'ai des données qui vont deux par deux ;j'aimerais pouvoir colorier ces cellules avec certaine condition et avec décalage.J'ai mi mon fichier avec la demande que je souhaite.
Merci pour le temps consacré
 

Pièces jointes

Re : Coloré cellule

Bonsoir et merci de votre intérêt
Les conditions sont pour chaque ligne:
si colonne 3 "vide" je colorie les deux cellules précédente
Si colonne 3 n'est "pas vide" et colonne 5 "vide" je colorie les deux cellules précédent la colonne 5
‘’’’Ligne suivante j’alterne
Si colonne 3 n'est "pas vide" et colonne 5 "vide" je colorie les deux cellules précédent la colonne 3

‘’’’’Et je continue
Si colonne 3 n'est "pas vide" et colonne 5 " pas vide " et colonne 7 ‘’vide’’ je colorie les deux cellules précédent la colonne 7
‘’’’Ligne suivante j’alterne
Si colonne 3 n'est "pas vide" et colonne 5 " pas vide " et colonne 7 ‘’vide’’ je colorie les deux cellules précédent la colonne 5
‘’’’Et ainsi de suite

Merci
 
Re : Coloré cellule

Bonjour à tous,
Salut Roro,

Il me semble que :

si colonne 3 "vide" je colorie les deux cellules précédente
Si colonne 3 n'est "pas vide" et colonne 5 "vide" je colorie les deux cellules précédent la colonne 5
‘’’’Ligne suivante j’alterne
Si colonne 3 n'est "pas vide" et colonne 5 "vide" je colorie les deux cellules précédent la colonne 3

‘’’’’Et je continue
Si colonne 3 n'est "pas vide" et colonne 5 " pas vide " et colonne 7 ‘’vide’’ je colorie les deux cellules précédent la colonne 7
‘’’’Ligne suivante j’alterne
Si colonne 3 n'est "pas vide" et colonne 5 " pas vide " et colonne 7 ‘’vide’’ je colorie les deux cellules précédent la colonne 5
‘’’’Et ainsi de suite
ne correspond pas à ta coloration manuelle

A++
A+ à tous
 
Re : Coloré cellule

Re,

J'ai modifié ton fichier mais ne suis pas sûr du résultat à partir de la ligne 16 j'ai décalage.

A partir de la ligne 16 il y a un décalage. Pourquoi à cette ligne doit-on continuer en S et T plutôt U et V ?

A te relire

Martial

Edit : Salut Jean-Claude, j'avais pas rafraichit.
 

Pièces jointes

Re : Coloré cellule

Bonsoir Yaloo et Jean-claude
Bien vu Jean Claude .Yaloo m'a corriger çà.
Yaloo :super exactement ce que je voulais ( la ligne 16 un bug manuel de ma part) en plus avec ton code çà me corrige toute mes lignes d’après. SUPER MERCI

Une dernier petite question puis je récupérer dans une autre feuille sur une seule colonne les cellules coloré .
En tout cas merci beaucoup pour votre aide et votre temps consacré
 
Re : Coloré cellule

Re,

En modifiant comme ça :
VB:
Sub Color()
Dim c&, l&, k&
[B:K].Interior.ColorIndex = xlNone
For l = 2 To [A65536].End(3).Row
  c = Application.WorksheetFunction.Odd(Cells(l, 1).End(2).Column)
  If c < 4 Then
    Cells(l, 2).Resize(, 2).Interior.ColorIndex = 6
    Cells(l, 2).Resize(, 2).Copy Feuil2.[A65536].End(3)(2)
   ElseIf c > 4 Then
    For k = c To 2 Step -2
      Cells(l, k - 1).Resize(, 2).Interior.ColorIndex = 6
      Cells(l, k - 1).Resize(, 2).Copy Feuil2.[A65536].End(3)(2)
      If l = [A65536].End(3).Row Then Exit Sub
      If k > 3 Then l = l + 1
    Next
  End If
Next
End Sub

A+
 
Re : Coloré cellule

Oui, je viens de voir "le une seule colonne", comme ceci :

VB:
Sub Color()
Dim c&, l&, k&
[B:K].Interior.ColorIndex = xlNone
Feuil2.Cells.Clear
For l = 2 To [A65536].End(3).Row
  c = Application.WorksheetFunction.Odd(Cells(l, 1).End(2).Column)
  If c < 4 Then
    Cells(l, 2).Resize(, 2).Interior.ColorIndex = 6
    Cells(l, 2).Copy Feuil2.[A65536].End(3)(2)
    Cells(l, 2).Offset(, 1).Copy Feuil2.[A65536].End(3)(2)
   ElseIf c > 4 Then
    For k = c To 2 Step -2
      Cells(l, k - 1).Resize(, 2).Interior.ColorIndex = 6
      Cells(l, k - 1).Copy Feuil2.[A65536].End(3)(2)
      Cells(l, k - 1).Offset(, 1).Copy Feuil2.[A65536].End(3)(2)
      If l = [A65536].End(3).Row Then Exit Sub
      If k > 3 Then l = l + 1
    Next
  End If
Next
End Sub

A+

@ Jean-Claude, bon Vin Jaune 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
347
Réponses
5
Affichages
260
Réponses
18
Affichages
485
Retour