XL 2013 [Réglé et bien réglé] St valentin

Bearn 64

XLDnaute Occasionnel
Bonjour le Forum,

Je viens vers vous pour une aide sur un fichier de suivi de cotisations en couple.
Le fichier payés.xlsx est un extrait.

Balayer le fichier colonne CONJOINT si cellule non vide et de couleur jaune alors mettre en jaune la ligne ou le nom du conjoint se trouve en NOM PRENOM.

(Une colonne NOMPRENOM peut être ajoutée si nécessaire entre PRENOM et CONJOINT)

Résultat attendu en ligne 27
la couleur marron des cellules est juste pour montrer les couples. la ligne devra être en jaune.

Merci de votre aide
 

Pièces jointes

  • payés.xlsx
    26.3 KB · Affichages: 30

Bearn 64

XLDnaute Occasionnel
Bonjour Dugenou, le Forum


merci de ta proposition.

Mais je me suis peut être mal expliqué.
<<Balayer le fichier colonne CONJOINT si cellule non vide et de couleur jaune alors mettre en jaune la ligne ou le nom du conjoint se trouve en NOM PRENOM.>>

Voir fichier joint mis des couleurs différentes pour les couples pour l'exemple.
Les conjoint en blanc ne sont pas a mettre en couleur.

A++
 

Pièces jointes

  • payés.xlsx
    27.2 KB · Affichages: 26

Dugenou

XLDnaute Barbatruc
Bonjour,
C'est plus clair avec un exemple de résultat en effet. Voir essai en pj : on affiche bien le conjoint.
Par contre pas de condition sur la couleur jaune (possible mais avec une fonction VB) : si la couleur jaune est liée à une autre valeur sur la ligne : merci de l'inqiuer et de mettre des valeurs.
Cordialement
 

Pièces jointes

  • bearn64 V2.xlsx
    22.7 KB · Affichages: 39

Bearn 64

XLDnaute Occasionnel
Bonjour Dugenou, le Forum

Le fichier est le résultat de tris, l'opération de trouver les conjoints et mettre la ligne en jaune une fois le conjoint trouvé,
comme cela j'ai le couple qui a cotisé.
A la suite je fait un tri par NOM et couleur jaune pour avoir la liste des payés.

En VBA effectivement cela me permettrai de l’intégrer dans mes autres macros.

PS : Le choix des couleurs était uniquement pour l'exemple.
merci de ton intervention
 

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous :)

Si besoin est

VB:
Sub test()
Dim plage As Range, cel As Range
With Feuil1
Set plage = .Range("i2", .Range("i" & Rows.Count).End(xlUp))

For Each cel In plage
If Not IsEmpty(cel) And cel.Interior.Color = vbYellow Then
cel.EntireRow.Interior.Color = vbYellow
End If
Next cel
End With
End Sub

EDIT: dis donc Bearn, ce ne serait pas plutôt Sainte Citronelle (jaune) au lieu de St Valentin? ;) :D
 
Dernière édition:

Bearn 64

XLDnaute Occasionnel
Bonsoir Lone-wolf le Forum,

Merci de votre proposition appliquée peut être pas comme il faut de ma part !!!!!

Erreur 424 sur la ligne

Set plage = .Range("i2", .Range("i" & Rows.Count).End(xlUp))

merci de votre regard
 

Pièces jointes

  • bearn64 V2.xlsm
    25.4 KB · Affichages: 30
C

Compte Supprimé 979

Guest
Bonjour le fil

Voici le bon code je pense.
Maintenant selon le nombre de lignes il peut être long
VB:
Sub test()
  Dim Plage1 As Range, Cel1 As Range, Plage2 As Range, Cel2 As Range
  Dim DLig As Long
  With Sheets("Payés")
    DLig = .Range("G" & Rows.Count).End(xlUp).Row
    ' Définir la plage des conjoints
    Set Plage1 = .Range("I2", .Range("I" & DLig))
    ' Définir la plage des noms
    Set Plage2 = .Range("G2", .Range("G" & DLig))
    ' Pour chaque cellule de la plage des conjoints
    For Each Cel1 In Plage1
      ' Si la cellule n'est pas vide et de couleur jaune
      If Not IsEmpty(Cel1) And Cel1.Interior.Color = vbYellow Then
        ' Faire une recherche sur chaque cellule de la plage noms
        For Each Cel2 In Plage2
          ' Si le nom + Prénom = celui de la plage conjoint
          If Cel2 & " " & Cel2.Offset(0, 1) = Cel1 Then
            ' On passe la cellule en jaune
            Cel2.EntireRow.Interior.Color = vbYellow
          End If
        Next Cel2
      End If
    Next Cel1
  End With
End Sub

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof