Insertion personalisée d'une ligne par macro

Bonjour,

j'ai un fichier qui contient des informations sur les employés, les contrats et les avenants.

un contrat peut avoir zéro ou plusieurs avenants classés juste en dessous de la ligne contrat.

la liste des informations est considérable, et j'ai deux types d'insertion à faire (des lignes pour les nouveaux contrats et autres pour pour les avenants des contrats)

pour cela, je veux faire l'insertion par un bouton et selon le choix (contrat ou avenant).

dans le cas d'un contrat, on insère une ligne vide avec un numéro du contrat séquentiel qui suit le précédent.

dans le cas d'un avenant, et selon la saisie (numéro contrat), on insère une ligne avec les mêmes infos du dernier avenant du contrat saisi.

vous trouvez ci-joint un fichier pour démonstration.

Merci

37examplev1.zip (14.86 Ko)

Bonjour

alors demande très précise, donc question

dans le cas d'un contrat, on insère une ligne vide avec un numéro du contrat séquentiel qui suit le précédent.

un numéro séquentiel???? qui suit le précédent ??? et en clair dans la fichier cela donne quoi??

Le numéro de contrat on doit deviner que c'est la numéro matricule ou c'est autre chose encore????

Ensuite le Numéro Matricule 093462 il est commun au nom 4 et au nom 9 !!! C'est normal ou une erreur????

Bref des explications dans le fichier, des explications précises et on fera, mais pour le moment, je vais attendre les explications.

De plus l'insertion doit se faire uniquement de la feuille Info ??

Et les contrats on suppose que c'est la feuille Info ?? ( oui puisque l'autre c'est avenant???)

a te relire

a+

papou

Salut,

désolé j'étais pressé quand j'ai écris le message,

alors vous trouvez ci-joint le fichier modifié avec démonstration.

Merci.

32exemplev2.zip (32.90 Ko)

Bonjour,

et les dates, on met la date du jour ?

Claude

pour les dates ce n'est pas important puisque tout dépend de la fin du premier contrat.

si le contrat commence le 17-01-2011 et fini le 17-04-2011

alors le premier avenant va être du 18-04-2011 au 18-7-2011

voila.

re,

Précision:

pour un avenant,

si le "matricule employé" n'existe pas, on insère en bas à la suite, comme un nouveau contrat,

dans ce cas, le choix "Contrat/Avenant" ne sert à rien, non ?

Claude

re claude,

on a 2 choix: soit contrat ou avenant:

si on choisit contrat on récupère le dernier matricule employé et on l'incrémente puis quand on clique sur le bouton on insère une nouvelle ligne.

si le choix est avenant donc on doit préciser pour quel matricule employé s'agit-il. et on insère une ligne à la fin de la liste des avenants qui concerne le matricule employé saisi (quand on clique sur le bouton).

et dans ce cas si le matricule employé saisi n'existe pas -> c'est une erreur "on affiche un message qui indique que le matricule saisi n'existe pas" et à mon avis pour éviter cela:

quand on choisi avenant dans Q3 on récupère la liste des matricules existants dans Q4 (liste).

j'attends l'astuce ou les questions

Merci

re,

bon, çà se précise,

Je regarde dans la soirée

édit:

tu n'as pas peur que la liste soit longue , combien de Ref ? (environ)

Claude

Re,

c’était juste une astuce pour éviter de saisir un matricule qui n'existe pas.

la liste ne doit pas dépasser les 50.

Merci

Bonjour,

----- Remarques -----

1) Pas sûr que la colonne "B" (N°) soit utile ?

pourquoi des formules dans colonnes "B:E" ?

2) Si la durée des avenants est variable, on pourrait l'écrire en numérique et

en tenir compte pour la date fin.

3) On pourrait écrire le N° d'avenant en dur (au lieu de la formule)

4) à quoi sert la feuille "Avenant" ?

risque d'erreurs et double emploi !

Si tu supprime des matricules, remets la liste à jour (bouton feuille "Listes")

les nouveaux contrats incrémentent la liste automatiquement.

En cas de plantage, lancer la maco "Test"

L'insertion d'une ligne l'affiche en haut de l'écran

Je te laisse tester

Amicalement

Claude

Bonjour,

pour les remarques, tu as raison, mais c'était juste un fichier pour tester.

et je te remercie pour la solution, c'est ce que je voulais faire.

Merci Claude.

Bonjour,

Quelque chose ne me plaisait pas dans mon code précédent,

j'ai modifié cette partie,

            '--- recherche occurences ---
      With Range("a5:a" & Lg)
            Set c = .Find(Target, LookIn:=xlValues, lookat:=xlPart)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                L = Range(c.Address).Row
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress

            Rows(L).Copy                                'ligne dernière occurence
            Rows(L + 1).Insert

mieux vaut recopier le code complet

Claude

Rechercher des sujets similaires à "insertion personalisee ligne macro"