XL 2010 Bulletins de paie multiples [résolu]

alamo

XLDnaute Nouveau
Bonjour
ma femme édique des bulletins de paie chaque fin de mois (un pour chaque enfant en garde).
J'aimerai qu'en remplissant un tableau (en bleu dans le fichier joint) elle puisse imprimer 2 exemplaires pour chaque enfant gardé.
Si une ligne n'est pas remplie le bulletin de paie correspondant ne sera pas édité.
Bien entendu les données de chaque enfant (qui ne sont pas dans le tableau bleu) viendront elles aussi compléter le bulletin de paie.
Un bouton "imprimer" servira pour le lancement de l'impression.
Un bouton "Quitter" viendra effacer toutes les données du tableau (bleu) et fermera le fichier.

Voilà je crois ne rien avoir oublié, merci d'avance pour vos compétences.
 

Lolote83

XLDnaute Barbatruc
Salut,
Voici les deux codes pour les boutons Imprimer et Quitter
Code:
Sub Imprime()
    ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False
End Sub
Code:
Sub Quitter()
    Range("AR29:AZ34").ClearContents
    ThisWorkbook.Close (True)
End Sub
Par contre, concernant :
Si une ligne n'est pas remplie le bulletin de paie correspondant ne sera pas édité.
Ne sachant pas quelles sont les lignes, je n'ai pas traité cette demande dans son intégralité
@+ Lolote83
 

alamo

XLDnaute Nouveau
bonsoir
merci pour tes réponses...la macro fournie imprime 2 bulletins vierges ça je sais faire !
comme expliqué dans mon 1er post je voudrais que lorsque je remplis le tableau bleu (exemple cleo) excel me complète la fiche de paie avec toutes les données concenant cléo, imprime les 2 bulletins de paie de cléo puis recommence pour l'enfant suivant à condition que le tableau soit rempli pour cet enfant sinon il passe au suivant etc..
J'espère que ces précisions seront plus claires.
merci pour le temps passé.
 

Lolote83

XLDnaute Barbatruc
Re salut,
Voici la macro d'impression modifiée
Sub Imprime()
xCpt = 1
For Each xCell In Range("AQ29:AQ34")
xCpt = xCpt + 1
[AQ3] = xCpt
If "tableau rempli pour l'enfant" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False
End If
Next xCell
End Sub

J'ai simplement souligné en rouge la condition que tu dois mettre pour tester si OUI ou NON le tableau est rempli pour l'enfant. Sans plus de précision la dessus, je ne peux établir correctement un test.
Tu dis :
puis recommence pour l'enfant suivant à condition que le tableau soit rempli pour cet enfant sinon il passe au suivant etc..
Comme je te l'ai dis au Post#2, je ne sais pas ce que tu dois tester donc je ne l'ai pas fait.
Il te reste donc a effectuer le test que tu souhaite et le rajouter dans la macro Imprime à la place de ce que j'ai écrit en rouge.
@+ Lolote83
 

alamo

XLDnaute Nouveau
Bonjour
j'ai mis un test en AO29 > NBVAL(AR29:AZ29) dès l'instant ou il y a une valeur dans cette plage j'imprime...donc si(AO29=0;je teste la ligne suivante;j'imprime)
Je pense que cela devrait fonctionner mais je ne sais pas traduire cela dans la macro.
Merci pour ton travail.
@+
 

Lolote83

XLDnaute Barbatruc
Re salut,
Si j'ai bien compris, voici la macro modifiée
Code:
Sub Imprime()
    xCpt = 1
    For Each xCell In Range("AQ29:AQ34")
        xCpt = xCpt + 1
        [AQ3] = xCpt
        If xCell.Offset(0, 2) > 0 Then
            ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False
        End If
    Next xCell
End Sub
@+ Lolote83
 

alamo

XLDnaute Nouveau
Ca ne fonctionne pas ...:(
je remplis le tableau bleu > cleo 10 repas > adèle 5 repas
en appuyant sur le bouton imprime la macro doit imprimer juste les bulletins de paie de cléo et adèle en 2 exemplaires
Pour permettre à la macro de savoir quel enfant doit avoir un bulletin de paie la cellule AO9 pour cléo fait un test pour savoir si il y a quelque chose de saisie dans la ligne Cléo...même raisonnement pour tous les enfants.
Je ne retrouve pas dans ta macro le test pour chaque ligne.
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 069
Messages
2 085 039
Membres
102 763
dernier inscrit
NICO26