Ajout ligne - Mise en forme conditionnelle

Bonjour,

C'est la première fois que je créée une macro et j'ai un petit soucis, pourriez-vous m'aider s'il-vous-plait?

Je vous explique mon problème:

Je dois créer deux boutons (Fait!).

-Le premier bouton doit ajouter automatique une ligne entre la 19 et la 20 à chaque fois que l'on clique dessus.

Mais cette ligne rajoutée doit contenir la même mise en forme conditionnelle que celle du dessus (J'ai inséré un jeu d'icône et une autre petite fonction).

-Pour le second bouton: Il doit lui aussi ajouter automatique une ligne entre la 16 et la 17 à chaque fois que l'on clique dessus.

Et elle aussi doit contenir la même mise en forme conditionnelle que celle du dessus (c'est la même mise en forme conditionnelle que pour le bouton 1 d'ailleurs).

Par contre, vous remarquerez qu'en ligne 21, j'ai une formule. Et j'aimerai que la ligne rajoutée par ce bouton s'ajoute automatiquement à la plage de cette formule.

Voilà voilà...

Je vous joins le fichier pour que vous ayez une meilleur idée du problème ^^

Je serais très reconnaissante si quelqu'un pouvais m'aider à créer un code pour chacun de ces boutons.

Bonne journée!

Alexia

20test.xlsx (22.42 Ko)

Bonjour,

Tu commences par déverrouiller ton fichier, on ne verrouille pas un fichier qu'on met à disposition sur un forum !

En effet, je ne m'en étais pas rendu compte, excusez-moi !

L'erreur est réparée

Bonjour,

Sub AjoutSalarié()
    Dim sa$, i%, xyz%
    sa = Right(Application.Caller, 1)
    i = 6: xyz = 87
    With ActiveSheet
        Do
            i = i + 1
            If .Cells(i, 3).Interior.Color <> .Cells(i - 1, 3).Interior.Color Then
                xyz = xyz + 1
                If sa = Chr(xyz) Then
                    xyz = i
                    Exit Do
                End If
            End If
        Loop While .Cells(i, 3) <> ""
        .Cells(xyz, 3).Resize(, 11).Insert xlShiftDown
    End With
End Sub

Une seule procédure, affectée aux deux boutons. Les boutons sont renommés AjoutY et AjoutZ.

La macro identifie le bouton appelant par le "Y" ou "Z" qui termine son nom.

Elle balaie la plage des noms de salariés pour y détecter les changements de couleur de fond (pas d'autre critère pour savoir quelle est la ligne de changement de catégorie) : à chaque changement elle incrémente une variable initialisée à 87, code du caractère "W", ainsi cette variable devient 88 (=X) au passage en zone Y, 89 (=Y) au passage en zone Z et 90 (=Z) à la sortie de la zone Z.

Elle compare à chaque changement avec le "Y" ou "Z" issu du bouton, lorsque la correspondance et établie elle mémorise la ligne d'insertion.

L'insertion se fait donc sur cette ligne et ajoute une ligne à la suite des Y ou à la suite des Z. La ligne ajoutée prend le format de la ligne qui précède (par défaut) et les MFC suivent normalement.

Mais je vois que j'ai oublié de voir tes formules en ligne 21, qui elles ne suivent pas...

Je m'en occuperai après manger...

J'ai aussi arrangé tes MFC pour éviter leur multiplication inutile.

Cordialement.


Désolé encore, j'avais homogénéisé tes bordures intérieures inégales, et ajouté au code un rétablissement de la bordure inférieure, absente à cause du changement de bordure après Z. Mais j'ai supprimé le bon fichier !!

Je rétablirai ça en même temps que les formules...

18alexia-test.xlsm (22.36 Ko)

Voilà la procédure complétée.

Cordialement.

41alexia-test.xlsm (23.10 Ko)

Merci beaucoup MFerrand!

Merci d'avoir pris de ton temps pour résoudre mon problème. Tu m'enlève une épine du pied!

Cordialement,

Alexia

Rechercher des sujets similaires à "ajout ligne mise forme conditionnelle"