decalage de colonne en fonction de la date

bzh76

XLDnaute Nouveau
bonjour à tous,

je rencontre un petit problème , j ai un tableau , donc la première ligne correspond à chaque jour du mois ( donc de 1 à 31).
la première colonne , elle , correspond à une liste de noms.

tous les jours , je fais une liste ( colonne "Tournée") .
ce que je souhaite faire , c'est que , quand ma liste de Tournée est effectuée , cette liste est comparée avec la liste de nom du tableau et , quand les noms de la liste de Tournée sont présents dans la liste de noms , alors une croix se met dans la case.....là ou je plante , c est lorsque je veux que les croix se mettent dans la colonne correspondant au jour de la cellule "B35".....
bref , un exemple vaut mieux q'un long discours alors je joint un ficher...:)

j arrive à faire les croix dans la première colonne mais ensuite je bloque , je suis sur que ce n est pas méchant mais là .....c'est moi qui bug !!:)
 

Pièces jointes

  • selection journaliere.xlsm
    20 KB · Affichages: 59
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : decalage de colonne en fonction de la date

Bonjour Bzh,

en F3 :
Code:
=SI(ET(OU( EXACT($E3;$C$3:$C$31));F$2=$B$35);"x";" ")

à recopier en bas et à droite

Je ne connaissais pas cette utilisation de la fonction Exact !!

Cordialement
 

Modeste

XLDnaute Barbatruc
Re : decalage de colonne en fonction de la date

Bonsoir,

Une autre solution, sans que la formule ne doive être matricielle: en F3
Code:
=SI((NB.SI($C$3:$C$31;$E3)*(F$2=$B$35));"x";"")
... à recopier également en bas et à droite (sauf si le respect de la casse était primordial!?)
 

bzh76

XLDnaute Nouveau
Re : decalage de colonne en fonction de la date

désolé pour le retard , merci à tous les deux , cela marche bien , cependant , cela efface les colonnes précendentes , c'est pour cela que je voyait plus une macro sous vba , du genre :
Sub DecalageJour()
Dim jour As Range

Set jour = Range("B35").Value

If jour = Range("F2:AJ2") Then
'activer la colone ou se trouve la valeur de B34
Range("jour").Activate
'Sheets("Feuil1").Range("F" & Column.Count).End(xlToRight)).Select
Selection.Offset(0, 1).Value = Selection.Value
End If
End Sub

mais ça plante ...
 

Modeste

XLDnaute Barbatruc
Re : decalage de colonne en fonction de la date

Bonjour bzh76,

Un peu "basique", mais fonctionnel:
VB:
Sub DecalageJour()
jour = Range("B35") + 5
For Each c In Range("C3:C" & Range("C65000").End(xlUp).Row)
    On Error Resume Next 'si nom inexistant
    nom = 2 + Application.WorksheetFunction.Match(c, Range("E3:E31"), 0)
    If IsNumeric(nom) Then Cells(nom, jour) = "x"
Next c
End Sub

Attention: tu as, en colonne C, quelques cellules qui ont l'air d'être vides ... mais ne le sont pas!
 

Discussions similaires

Statistiques des forums

Discussions
312 783
Messages
2 092 073
Membres
105 182
dernier inscrit
alexandre.guilhem