Forum Clubic

Aide sur formule ou macro? excel 2007

bonjour à tous,

sur excel 2007 je souhaite sur une feuille 'feuille de jour" reporter automatiquement des disponibilités représenté par “J” sur une autre feuille nommé 'planning garde" mensuel. les difficultées résident dans les criteres::@

  • le 1er la date que j’indique qui fait référence à une colonne de ‘planning garde’ ou se trouve les info
  • le 2nd les cases “J” doivent renvoyer le nom de la personne sur la meme ligne dans la feuille 'feuille de jour" (ex: dupont à un “J” le 12. le nom de dupont doit etre renvoyer automatiquement sur la “feuille de jour” si j’ecris la date 12
  • le 3eme faire un trie automatique par rapport à une feuille “donné personnel” pour avoir le nombre dans chaque spécialité

je suppose qu’excel est capable de faire cela mais mes connaissances sont trops limités pour y arriver seul.:frowning:

je vous remerçie d’avoir pris le temps de lire ma question en espérant avoir un challenger dans les parrages.:wink:
Edité le 24/08/2009 à 14:28

Pour les points 1 et deux, il faudrait que tu t’expliques un peu plus clairement.
Au besoin, tu mets des copies d’écran montrant les zones sources et cible remplies
Pour le point 3, excel ne sait pas faire de tri automatique. Il faut toujours au moins cliquer sur un bouton (sauf par macro, mais c’est une autre histoire).
De toute manière, pour connaître un nombre d’éléments, mieux vaut faire un comptage qu’un tri

Pour le 1) tu peux utiliser par exemple un DECALER.
Pour le 2) tu dois pouvoir utiliser un RECHERCHEV je pense.

bon ben merci pour la réponse mais c’est la 1er fois que je ne peut pas mettre de piece jointe et la copie de l’ecran ne marche pas sur l’ordi du boulot.

je peux le mettre en pdf mais ce soir ou l’envoyer par mail. pour me contacter (mon nom) + @free

j’ essai avec d"ecaler" et “recherchev”

merci

bonjour,

alors comme convennu j’ai essayer donc
la 1er formule donne:=DECALER(B$3;0;0;14;1)
la 2nd formule donne:=RECHERCHEV(“j”;‘planning garde’!E17:L30;‘planning garde’!A17:A30;FAUX)

la1er renvoi une erreur #VALEUR et la 2nd #N/A. :@

si j’assemble les 2: =DECALER(B$3;0;0;14;1)RECHERCHEV(“j”;‘planning garde’!E16:L29;‘planning garde’!A16:A29;FAUX)
evidement j’ai une erreur #N/A:etonne2:

pouvez vous me donner votr avis sur les formules et la technique pour les assembler

merci:pt1cable:

Tu ne peux pas employer RechecheV() comme tu le fais :

  • en premier, tu donnes la chaine à rechercher (ok)
  • ensuite, tu donnes la zone de données, sachant que la recherche se fera uniquement sur la colonne la plus à gauche
  • puis tu donnes le numéro de colonne (relatif à l’intérieur de la zone de données) où se trouve le résultat
    tu ne peux donc pas avoir en argument 3 quelque chose de la forme ‘planning garde’!A17:A30

De plus si tu veux utiliser rechercheV, il faut que tu sois sûr qu’il n’y a qu’un seul “J” par date

re bonjour
donc la 1er formule est juste mais elle ne peut fonctionner seul?

la contraite est qu’il y a environ 7 à 14 “j” par date normalement.

chaque “j” corespond a un agent

je souhaiterai arriver à ce que le noms des agents ayant un “j” soit reporté automatiquement sur la feuille journaliere en fonction de la date que je determine

je suis donc ouvert aux propositions

merci

Pour avancer à coup sûr, il faudrait savoir comment se présentent exactement les données.
Pour la feuille source, je pense que c’est un tableau avec une ligne pour chaque nom, une colonne pour chaque jour.
Par contre, pour la feuille résultats, ce doit être une ligne par date, mais pour les noms ?

Pour le DECALER, ne serait-ce pas plutôt quelque chose dans ce genre : =DECALER(Feuil2!B7;0;Feuil1!B3;1;1)

La cellule B7 de la feuille Feuil2 sert ici de référence et c’est par rapport à elle qu’on va effectuer un décalage pour pointer sur une autre cellule de la feuille Feuil2.

Remarques :

  • grace au 0 (zéro) dans la formule, on se décale de zéro ligne par rapport à B7 , on reste donc sur la ligne 7,
  • grace aux deux “1” dans la formule on ne récupère qu’une seule cellule.

Exemples :

  • Si B3=0, alors on se décale de zéro cellule vers la droite par rapport à B7 et on récupère donc le contenu de… B7. :wink:
  • Si B3=1, alors on se décale d’une cellule vers la droite par rapport à B7 et on récupère donc le contenu de C7.
  • Si B3=15, alors on se décale de 15 cellule par rapport à B7, ce qui donne le contenu de Q7.

Si dans B3 tu n’as pas uniquement le quantième du mois (par exemple 25), mais la date complète (ex : 25/08/2009), alors tu peux utiliser la fonction JOUR pour récupérer le quantième du mois.
Cela te permet de te décaler d’un nombre de cellules égal au quantième du mois.
Exemple : pour le 25/08/2009 tu te décales de 25 cellules vers la droite.

Ca donnerait un truc du genre ; =DECALER(Feuil2!B7;0;JOUR(Feuil1!B3);1;1)

Remarque : si B7 correspond au premier jour du mois, alors il faut utiliser A7 dans la formule pour que le décalage du premier jour décalant d’une cellule vers la droite pointe alors bien sur B7.
=DECALER(Feuil2!A7;0;JOUR(Feuil1!B3);1;1)
ou alors retirer 1 au décalage vers la droite =DECALER(Feuil2!B7;0;JOUR(Feuil1!B3)-1;1;1)

Avec ça tu sais déjà dans quelle colonne chercher tes J. :wink:
Edité le 25/08/2009 à 00:36