Microsoft 365 Indiquer la dernière cellule colorée d'une ligne (VBA)

Gourbi1986

XLDnaute Nouveau
Bonjour,

Je suis débutant sur Excel et je cherche une formule pour m'indiquer la dernière cellule colorée d'une ligne.
Voire même, me renvoyer à cellule de l'en-tête de colonne de cette dernière cellule colorée !

Merci d'avance pour vos réponses.
 
Solution
Bonjour Gourbi, Soan
mais je crains que ta formule de convienne pas à mon tableur.
Il suffit de modifier un peu.
VB:
Function RetourPrévu(D)
RetourPrévu = ""
Ligne = D.Row
For i = 256 To D.Column + 2 Step -1
    If Cells(Ligne, i).Interior.Color <> RGB(255, 255, 255) Then
        RetourPrévu = Format(Cells(3, i), "[$-40C]d-mmm;@")
        Exit Function
    End If
Next i
End Function
Syntaxe : =RetourPrévu(CellulePremièrecolonne)

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Gourbi, Soan,
Un essai avec :
VB:
Sub Essai()
Ligne = [D30]
[D32] = ""
LastCol = Cells(Ligne, Cells.Columns.Count).End(xlToLeft).Column
For i = LastCol To 1 Step -1
    If Cells(Ligne, i).Interior.Color <> RGB(255, 255, 255) Then
        Cells(1, i).Select
        [D32] = i
        Exit Sub
    End If
Next i
End Sub
J'ai supposé que la couleur de fond standard est le blanc. ( Sinon modifier RGB value )
 

Pièces jointes

  • Classeur1.xlsm
    17.2 KB · Affichages: 13

Gourbi1986

XLDnaute Nouveau
Pour être plus précis dans ma requête j'ai joint un fichier "Test"

Alors du coup j'ai une colonne "Retour prévu" et dans celle-ci je cherche à faire apparaître la dernière cellule colorée de la ligne concernée. Et pourquoi pas si c'est possible la cellule de la même colonne qui contient la date du jour.

Merci d'avance
 

Pièces jointes

  • Test.xlsx
    18.4 KB · Affichages: 6

Gourbi1986

XLDnaute Nouveau
Bonjour Gourbi, Soan,
Un essai avec :
VB:
Sub Essai()
Ligne = [D30]
[D32] = ""
LastCol = Cells(Ligne, Cells.Columns.Count).End(xlToLeft).Column
For i = LastCol To 1 Step -1
    If Cells(Ligne, i).Interior.Color <> RGB(255, 255, 255) Then
        Cells(1, i).Select
        [D32] = i
        Exit Sub
    End If
Next i
End Sub
J'ai supposé que la couleur de fond standard est le blanc. ( Sinon modifier RGB value )

Bonjour Sylvanu,

Merci pour ta réponse, mais je crains que ta formule de convienne pas à mon tableur..
J'ai joint un exemple sur mon précédent post pour être plus précis dans ma demande.
 

Gourbi1986

XLDnaute Nouveau
Bonjour Gourbi1986,

Merci de joindre un fichier exemple. ;)

soan

Bonjour Soan,

Alors du coup j'ai une colonne "Retour prévu" et dans celle-ci je cherche à faire apparaître la dernière cellule colorée de la ligne concernée. Et pourquoi pas si c'est possible la cellule de la même colonne qui contient la date du jour.

Merci d'avance
 

Pièces jointes

  • Test.xlsx
    20.1 KB · Affichages: 4

soan

XLDnaute Barbatruc
Inactif
Re,

Voici ton fichier modifié.

Ctrl e ➯ colonne H remplie
VB:
Option Explicit

Sub Essai()
  Dim dcl%, col%, dlg&, lig&
  dcl = Cells(3, Columns.Count).End(1).Column: Application.ScreenUpdating = 0
  dlg = Cells(Rows.Count, 3).End(3).Row: [H7].Resize(dlg - 6).ClearContents
  For lig = 7 To dlg
    For col = dcl To 10 Step -1
      If Cells(lig, col).Interior.Color = 49407 Then
        Cells(lig, 8) = Cells(3, col): Exit For
      End If
    Next col
  Next lig
End Sub
soan
 

Pièces jointes

  • Test.xlsm
    26.4 KB · Affichages: 3
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Gourbi, Soan
mais je crains que ta formule de convienne pas à mon tableur.
Il suffit de modifier un peu.
VB:
Function RetourPrévu(D)
RetourPrévu = ""
Ligne = D.Row
For i = 256 To D.Column + 2 Step -1
    If Cells(Ligne, i).Interior.Color <> RGB(255, 255, 255) Then
        RetourPrévu = Format(Cells(3, i), "[$-40C]d-mmm;@")
        Exit Function
    End If
Next i
End Function
Syntaxe : =RetourPrévu(CellulePremièrecolonne)
 

Pièces jointes

  • Test (35).xlsm
    24.5 KB · Affichages: 3

Gourbi1986

XLDnaute Nouveau
Bonjour Gourbi, Soan

Il suffit de modifier un peu.
VB:
Function RetourPrévu(D)
RetourPrévu = ""
Ligne = D.Row
For i = 256 To D.Column + 2 Step -1
    If Cells(Ligne, i).Interior.Color <> RGB(255, 255, 255) Then
        RetourPrévu = Format(Cells(3, i), "[$-40C]d-mmm;@")
        Exit Function
    End If
Next i
End Function
Syntaxe : =RetourPrévu(CellulePremièrecolonne)

Re Sylvanu,

Super !!! ça fonctionne du tonner, merci beaucoup pour le coup de pouce.
 

Gourbi1986

XLDnaute Nouveau

Discussions similaires

Réponses
4
Affichages
134

Statistiques des forums

Discussions
311 721
Messages
2 081 929
Membres
101 843
dernier inscrit
Thaly