Contrats automatiques

Bonjour,

Je reviens vers le forum pour une amélioration de mon fichier de contrat. Je souhaite en effet l'améliorer comme suit :

Au lieu de prendre la liste déroulante pour choisir le nom et d'imprimer le contrat, je voudrais avoir sur un onglet, la liste de tout le personnel, je clique sur tout ceux qui doivent avoir un contrat et ensuite, je clique sur un bouton qui imprimerait automatiquement tout les contrats.

Est-ce que cela est possible et facile à réaliser sachant que je travaille sur un environnement en français et que la version d'excel à mon travail est an anglais ?

Merci pour votre aide.

31contrats-test.xlsx (31.08 Ko)

Bonjour,

J'ai inséré une macro sur ta lettre (bouton sélection multiple) , dis moi si ca marche.

Cordialement.

Merci, cela semble fonctionner sur mon mac. Je vais essayer au boulot prochainement. J'espère que cela fonctionnera aussi sur un environnement en anglais.

Peux-tu me dire comment puis-je éditer cette macro pour essayer de comprendre le fonctionnement de celle-ci ?

Encore une chose, ici, c'est le document test, comment faire pour l'intégrer dans le document de travail ? Simplement un copier-coller de ta macro ?

Merci pour ton aide.

Pour que la macro marche correctement, elle doit utiliser la colonne H de l'onglet "Base de donnée". En fait chaque fois que tu cliques sur "Ajouter à la sélection", il incrémente le numéro - nom prénom dans cette colonne.

Autrement il faut laisser la colonne des numéros (colonne A) et c'est bon. Et ne pas modifier le nom des onglets.

Pour l'incrémentation et dans l'onglet "Lettre" et l'impression en cliquant sur le bouton "Imprimer", j'ai fait une boucle qui pour chaque ligne dabns la colonne H va chercher les données (via une fonctione Recherche) correspondant au numéro (via la fonction split) et incrémente les valeurs dans l'onglet "Lettre".

Private Sub CommandButton2_Click()
'je déclare mes variables
Dim i As Integer
Dim Nb_lignes As Integer
Dim Recherche1 As Range
Dim Numero() As String

Nb_lignes = Sheets("Base de donnée").Range("H65536").End(xlUp).Row 'permet de compter le nombre de lignes remplies sur la colonne H

For i = 2 To Nb_lignes 'boucle
Numero = Split(Sheets("Base de donnée").Range("H" & i), " ")  'scinde en plusieurs mots les valeurs de H
Set Recherche1 = Sheets("Base de donnée").Columns(1).Cells.Find(What:=Numero(0), LookAt:=xlWhole, LookIn:=xlValues) 'je recherche dans la colonne A le premier mot, donc ici un numéro 
Sheets("Lettre").Range("E10") = Recherche1.Offset(0, 1) & " " & Recherche1.Offset(0, 1)
Sheets("Lettre").Range("E11") = Recherche1.Offset(0, 2)
Sheets("Lettre").Range("E12") = Recherche1.Offset(0, 3) & " " & Recherche1.Offset(0, 4) 'j'incrémente dans "Lettre"

Sheets("Lettre").Range("A1:H46").PrintOut 'j'imprime
Next i

MsgBox "Les contrats ont étés imprimés."

End Sub

je sais pas si je suis bien clair :/

Merci pour ta réponse.

  • Est-ce que cela fonctionnera si le document base de donnée est verrouillé ? Sinon, comment faire car celui-ci doit être verrouillé ?
  • Comment modifier les dimensions de la fenêtre qui apparaît pour la sélection des différents noms car elle fort petite ?
  • Si je rajoute des noms dans la liste de la base de données et en supprime, cela va-t-il modifié le script ou cela n'a pas d'importance ?

Encore un tout grand merci pour ton aide.

  • Oui ca marchera.
  • Chez moi ca va mais on doit pas avoir la même résolution ^^, va dans l'outil développeur, sélectionne UserForm1 et modifie les dimensions à ta guise.
  • Aucune importance.

Merci.

J'essaie donc à mon travail et je te tiens au courant.

Bonjour,

Je viens d'essayer avec le fichier du travail. Voilà ce qu'il se passe :

1) j'ai fait un copié-coller du fichier exemple vers le fichier de travail.

2) J'ai essayé et vu que la feuille "base de donnée" est verrouillée, le script ne peut fonctionner. J'ai une fenêtre pour le débogage. La feuille "base de donnée" doit rester verrouillée pour raison de sécurité.

3) Dans la base de donnée, il y a actuellement plus de 100 noms et adresses. Lorsque c'est déverrouillée pour essai, cela marche correctement mais dans la liste des noms possible qui apparaît dans la fenêtre du script qui s'affiche, je n'ai accès qu'au 46 premiers noms. Comment faire pour avoir accès à la liste complète ?

Merci pour ton/votre aide.

Bonjour,

Après un essai à mon travail, il s'avère que l'administrateur réseau n'a pas autorisé le visual basic et donc les macro. Ceci clotûre donc mon problème.

Merci de votre aide.

Rechercher des sujets similaires à "contrats automatiques"