Formule dans bulletin de paie

Bonjour

Je recherche une formule pour remplir un récapitulatif par salarié afin de remplir en fin d'année la DADS.

Le probléme est évoqué dans l'exemple joint.

Merci ppur votre aide

Bonjour,

une solution dont tu peux t'inspirer,

il suffit de faire un report.

https://www.excel-pratique.com/~files/doc/XJVePGRETA2.xls

Bonne journée

Claude.

Bonjour,

Je pense que dans ton cas, si tu veux sauvegarder les données et les cumuler, il n'y que une macro VBA qui peut le faire. Patiente un peu, quelqu'un va t'aider. J'en suis sûr.

édit : Salut Claude, pense à toujours gérer quand il y a clique sur l'annulation d'InputBox.

Merci pour votre aide mais je vais patienter un peu en espérant une formule plus adaptée voire VBA

Je joins de nouveau le fichier avec quelques modifications.

https://www.excel-pratique.com/~files/doc/Om8LKMODELE_BULLETIN_test.xls

Bonjour,

First of all, je te souhaite une bonne année 2009.

Une petit code à placer dan un module en VBA et lui associer un bouton sur ta feullle

Sub test()
'Macro par Dan pour country64 le 01/01/2009
Dim a As Byte
a = Application.WorksheetFunction.Match(Range("D3"), Range("K13:K18"), 0) + 12
Range("O" & a) = Range("c18")
End Sub

Amicalement

Dan

Bonjour à tous et BONNE ET HEUREUSE ANNEE

Merci DAN pour ton aide

Je veux bien mettre en application ce code en VBA

Peux-tu me donner la marche à suivre.

Merci

re,

Suis l'explication dans ce lien -> https://www.excel-pratique.com/forum/viewtopic.php?t=9125

Amicalement

Dan

Bonjour

Un grand merci DAN, çà fonctinne trés bien.

Est-il possible d'adapter ce code avec la référence "D3" se trouvant dans une autre feuille.

Merci pour votre réponse.

Bonjour,

Bien sûr, il te suffit de remplacer :

a = Application.WorksheetFunction.Match(Range("D3"), Range("K13:K18"), 0) + 12

par

a = Application.WorksheetFunction.Match(sheets("nom de ta feuille").Range("D3"), Range("K13:K18"), 0) + 12 

Amicalement

Dan

Un grand merci DAN

Bonjour tout le monde

Je reprends ce fil car j'aimerai apporter une amélioration à ce programme.

J'aimerai que la modification ci-dessus demandée se fasse à la fermeture de la feuille.

Est-il possible d'automatiser cette action ?

Et cela afin de limiter les erreurs ou les oublis. Peut-être y a t'il d'autres solutations ?

Merci d'avance

Personne ?

Bonsoir,

  • Vas dans VBA par ALT +F11
  • A gauche dans la fenetre VBA project, double clique sur THISWORKBOOK
  • Place le code ci-dessous
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Macro par Dan pour country64 le 01/01/2009
Dim a As Byte
With Sheets("nom de ta feuille")
a = Application.WorksheetFunction.Match(.Range("D3"), .Range("K13:K18"), 0) + 12
.Range("O" & a) = .Range("c18")
End With
End Sub

- Enregistre ton fichier avant de le fermer

A te relire

Dan

18macro-ri.xlsm (286.84 Ko)

Merci DAN

Ta formule fonctionne mais dans ce fichier il y a plusieurs feuilles concernées par cette modification.

Comment puis-je l'appliquer partout ?

J'ai essayé de trouver une solution mais ne connaissant pas le VBA, je coince

J'ai essayé ("feuille1 : feuille2") puis (feuille1:feuille10") mais rien ne marche mais par contre en notant seulement la "feuille1" tout va bien.

Merci pour ton aide.

Bonne soirée.

13planning.zip (12.96 Ko)

re,

hum...tu n'avais pas expliqué tout ton pb là...

Remplace le code précédent par celui-ci.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Macro par Dan pour country64 le 01/01/2009
Dim a As Byte, i As Byte
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
With Sheets(i)
On Error Resume Next
a = Application.WorksheetFunction.Match(.Range("D3"), .Range("K13:K18"), 0) + 12
If a <> 0 Then .Range("O" & a) = .Range("c18")
End With
Next
End Sub

Toutes les feuilles doivent comporter des données au même endroit. Le cas contraire une erreur peut se produire.

Si tel est le cas place moi ton fichier.

Amicalement

Dan

Bonjour DAN

Merci pour ta réponse

Par contre, actuellement sinistrée par KLAUS, je ne pourrai pas vérifier cette solution car nous n'avons plus d'électricité

A trés bientôt

Re-bonsoir

Finalement l'électricité a été rétabli cet après-midi donc j'ai peu essayer cette formule.

Elle fonctionne bien avec une fermeture individuelle des feuilles

Si je passe d'une feuille à l'autre par les onglets , cela ne fonctionne plus.

Bonne soirée

re,

Pas de soucis, par NAD je suis bien au courant des pb que vous avez. Que c'est désolant tout cela....

Pour ton pb j'avais compris que tu voulais que les actions se fassent à la fermeture de ton fichier. Là tu me parles de fermeture de feuille. Que veux tu dire ?

Tu veux que l'action se produise à chaque sélection d'une feuille (donc d'un onglet) ?

Si oui, dis-moi quelles sont les feuilles non concernées car dans ton fichier il y en a trois -> Données, registre et modèle

A te relire

Dan

Bonjour DAN

Oui en fait j'aimerai que l'action soit activée soit en cliquant sur la croix rouge soit en changeant de feuille (donc par l'ionglet)

Le feuilles concernées sont toutes les feuilles des salariés qui sont ou seront créées à partir de la feuille modéle (par copie)

Merci pour tout

re,

Essaye ce code :

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Macro par Dan pour country64 le 28/01/2009
Dim a As Byte
Select Case ActiveSheet.Name
Case Is = "REGISTRE", "DONNEES", "MODELE"
End
Case Else
With ActiveSheet
a = Application.WorksheetFunction.Match(.Range("D3"), .Range("K13:K18"), 0) + 12
.Range("O" & a) = .Range("c18")
End With
End Select
End Sub

Le code précédent peut être supprimé je pense.

Amicalement

Dan

Rechercher des sujets similaires à "formule bulletin paie"