Formule VB Pros

V

Veve

Guest
Bonjour le Forum

J'ai fait un tableau de polyvalence qui fonction à peu prêt correctement mais l'on me demande de nouvelles modifications et là j'ai vraiment besoin de professionnels avec de bonnes connaissances du VB

Le but il y à une feuille de polyvalence vide et un onglet que l'on reporte chaque mois.

Mon problème se décompose en 2 parties
• Problème de date sous l'onglet polyvalence
(C22; AL52) je mets des X et en compteur s'accrescent dans les cellules
(B22: B52) et maintenant j'aimerai faire la même chose avec des dates différentes dans chaque colonne
Problème en bleu sur la pièce jointe.

• Problème entre l'onglet polyvalence et 11_04
• Dans l'onglet polyvalence je tape une date exemple dans G23 dans notre cas le 13/11/2004 pour la personne nommée Sylvie en (AP23).
• Mon souhait serai si possible que dés que l'on met une date il va vérifier le numéro qui se trouve en (G17) dans notre cas le numéro 32.
• Il va sur le dernier onglet actif dans notre cas le 11_04
Il recherche le Prénom Sylvie en (B20:B43) ensuite il va comparer la date avec les date de (C18:AM18) et à l'intersection des deux il met le chiffre qui il y avait en (Polyvalence G17) donc le 32.
Problème en rouge sur la pièce jointe.

Je vous conseil dans un premier temps de ne pas activer les macros.

En espérant avoir précis, j'attire votre attention que la feuille est souvent protégée pour éviter que les personnes ne commette des erreurs.

Merci pour aimable collaboration

VeVe
 

Pièces jointes

  • Forum.zip
    39.9 KB · Affichages: 43
  • Forum.zip
    39.9 KB · Affichages: 41
  • Forum.zip
    39.9 KB · Affichages: 44
Z

Zon

Guest
Salut,

Tu aurais pu dévérouillé ton projet. du coup j'ai pas testé, en le collant dans le module de ta feuille polyvalence: à priori tu as un décalage de 2 lignes et de 2 colonnes pour le jour : si toutes feuilles ont la même mise en page, il te reste à tester si la saisie est bien une date.

const NomF$="Polyvalence"
const Plage$="C20:AL52"
Const LDat&=17
Private Sub Worksheet_Change(ByVal Target As Range)
dim Col&,Lig&,Jour&
with target
if .cells.count>1 then exit sub
col=.column:lig=.row:jour=day(.value2)
end with
if not application.intersect(range(plage),target) is nothing then
with worksheets(worksheets.count) ' la dernière feuille
.cells(lig-2,jour+2)=worksheets(nomf).cells(ldat,col).value
end with
end if


A+++
 

Discussions similaires

Réponses
6
Affichages
435

Statistiques des forums

Discussions
312 559
Messages
2 089 610
Membres
104 230
dernier inscrit
Mviard_13