Création fiche personnel

sapheron

XLDnaute Junior
Bonjour,

J'aimerai créer une macro sur excel 2003, qui me permet de créer une fiche pour chaque membre de personnel qui croise les données d'un tableau. J'aimerai que, quand je positionne mon curseur sur le nom d'un salarié, sa rempli la fiche en indiquant son nom et les différentes donnés qui lui sont liés présentent dans le tableau.

Le problème c'est que, lorsque je positionne mon curseur sur le nom, il me répète l'opération comme si j'avais enregistrer la macro en mode absolu alors que j'ai bien enregistrer la macro en ayant le bouton "Réference relative" enclenché

Je précise que je suis un novice en langage Vba. Et que ce forum ma l'air d'être mon messie dans ce domaine :)

Je vous remercie deja pour toutes les réponse que vous pourriez m'apporter
 

sapheron

XLDnaute Junior
Re : Création fiche personnel

Bonjour BrunoM45 et merci

Je t'envoie le lien pour télécharger mon fichier via free

Free - Envoyez vos documents

sinon mon code je pense qu'il a été envoyé avec le fichier sinon le voici

Sub exemple()
'
' exemple Macro
' Macro enregistrée le 20/07/2012 par
'

'
Sheets("Fiche pénibilité salarié (ex)").Select
ActiveCell.Select
ActiveCell.FormulaR1C1 = "='Grille de pénibilité berry'!R[-2]C"
ActiveCell.Offset(9, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"='Grille de pénibilité berry'!R[-11]C*'Grille de pénibilité berry'!R[4]C"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"='Grille de pénibilité berry'!R[-12]C*'Grille de pénibilité berry'!R[4]C"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"='Grille de pénibilité berry'!R[-13]C*'Grille de pénibilité berry'!R[4]C"
ActiveCell.Offset(-2, 0).Range("A1:A3").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:G3"), Type:= _
xlFillDefault
ActiveCell.Range("A1:G3").Select
End Sub
 
C

Compte Supprimé 979

Guest
Re : Création fiche personnel

Re,

Pour moi, inutile de passer par du VBA, regarde le fichier ci-joint si cela te convient

J'ai défini un nom "ListeSalariés" pour la liste de validation,
mis quelques formules à base de EQUIV() et INDEX()

tu as juste à sélectionner le salarié dans la liste et les valeurs se calcul en fonction

A+
 

Pièces jointes

  • Sapheron_FicheDePénibilité.xls
    42 KB · Affichages: 586

sapheron

XLDnaute Junior
Re : Création fiche personnel

Bonjour,

Excuse moi de te déranger mais j'ai encore une question.
Comment tu a fait pour que les cellules qui calcul mon temps d'exposition aux risques se modifie en fonction du choix de la liste déroulante?

Merci
 
C

Compte Supprimé 979

Guest
Re : Création fiche personnel

Salut ;)

Dans ta cellule B15, tu as une formule
Code:
=$A14*INDEX('Grille de pénibilité berry'!$B6:$H19;EQUIV($A8;ListeSalariés;0);COLONNE()-1)
J'utilise pour cela, la fonction INDEX(Matrice;NoLig;NoCol)
qui te retourne la valeur située au numéro de ligne et de colonne de la zone (Matrice)

Le numéro de ligne est retournée par la fonction EQUIV(ValeurCherchée;Matrice;Type)
La valeur cherchée, ici, est le nom du salarié
La Matrice est la zone des noms définit "ListeSalariés"
Type = 0 = recherche strictement égale à la valeur

Le numéro de colonne est retournée tout simplement par la fonction COLONNE()

La valeur retournée est le pourcentage d'occupation du temps qui est multiplié par la cellule A14 qui est le nombre d'heures

J'espère que ce sera plus clair ;):eek:

A+
 

Discussions similaires

Réponses
2
Affichages
670

Statistiques des forums

Discussions
312 344
Messages
2 087 444
Membres
103 546
dernier inscrit
mohamed tano