Code pour insertion de ligne avec formules et formats

Bonjour à tous,

J'ai créer un fichier qui permet à l'utilisateur en chef, dans la première feuille du classeur, d'indiquer quels éléments auront besoin d'être soumissionner. Ensuite, les autres feuilles du classeur sont gérées par les différents intervenants qui auront à demander des soumissions pour ces éléments.

Ils inscrivent donc les prix et le fichier renvoi cette information dans la première feuille, celle de l'utilisateur en chef, pour qu'il puisse avoir accès aux prix sans consulter chaque feuille une par une.

Voici donc le problème;

Il est possible que l'utilisateur en chef ait besoin d'insérer une ligne au milieu des éléments qu'il aura identifiés. Il faut donc que cette ligne s'insère au même endroit dans chaque feuille. Après plusieurs recherches sur différents forums, j'ai finalement trouver ce code qui fonctionne très bien pour ce que j'ai besoin;

Sub InsererLignes()

    Dim cs As String
    cs = ActiveSheet.Name
    Dim y As Integer
    y = Application.InputBox("Entrer le # de la ligne que vous voulez ajouter", _
    Type:=1)
    If MsgBox("Êtes vous certain de vouloir ajouter la ligne " & y & " sur toutes les feuilles?", _
    vbYesNo, "Insertion de lignes sur toutes les feuilles") = vbNo Then Exit Sub
    Application.ScreenUpdating = False
    Dim r As Range
    Dim ws As Worksheet

   For Each ws In ThisWorkbook.Worksheets
        ws.Activate
        Set r = ActiveSheet.Range("A" & y)
        If y < 6 Then GoTo circumv 'POUR NE PAS INSÉRER DANS L'ENTETE
        Range("A" & y).EntireRow.Insert

         '  AJOUTER ICI LE CODE POUR COPIER LES FORMULES ET FORMATS SUR TOUTES LES FEUILLES
circumv:
    Next ws
    Sheets(cs).Activate
    Application.ScreenUpdating = True

End Sub

Le hic, c'est que je ne sais pas comment m'assurer que toutes les différentes formules, formats et mise en forme conditionnelles restent les mêmes avec la nouvelle ligne qui vient d'être insérer avec le précédent code.

Aussi, s'il serait possible d'exclure la dernière feuille du classeur lors de l'ajout de ligne, ce serait merveilleux.

Désolé pour le long message, j'ai tenté d'être le plus clair possible.

Merci à l'avance!

bonjour

joindre un fichier exemple (simplifié ! ) pour test

Bonjour,

J'ai trouvé solution à mon problème.

Voici le nouveau code pour ceux que ça pourrait intéresser.

Sub InsererLignes()

    Dim cs As String
    cs = ActiveSheet.Name
    Dim y As Integer
    y = Application.InputBox("Entrer le # de la ligne que vous voulez ajouter", _
    Type:=1)
    If MsgBox("Êtes vous certain de vouloir ajouter la ligne " & y & " sur toutes les feuilles?", _
    vbYesNo, "Insertion de lignes sur toutes les feuilles") = vbNo Then Exit Sub
    Application.ScreenUpdating = False
    Dim r As Range
    Dim ws As Worksheet

    If y > 6 Then

             For Each ws In ThisWorkbook.Worksheets
             ws.Activate
             ActiveSheet.Rows("5:5").Select
             Selection.Copy
             Rows(y).Select
             Selection.Insert Shift:=xlDown
                Rows(y).EntireRow.Hidden = False

             Next ws

            For Each ws In ThisWorkbook.Worksheets
             ws.Activate
             ActiveSheet.Rows("5:5").Select
             Selection.Copy
             Rows(y).Select
             ActiveSheet.Paste
             Rows(y).EntireRow.Hidden = False
            Next ws

    End If

    Sheets(cs).Activate
    Application.ScreenUpdating = True

End Sub
Rechercher des sujets similaires à "code insertion ligne formules formats"