Microsoft 365 Copier des cellules de la feuille1 à la feuille2 automatiquement même lors de l'insertion d'une ligne ou colonne de la feuille 1

kareen64

XLDnaute Nouveau
Bonjour,
Je souhaite copier les lignes ( de la feuille 1 "saisie des salaires") suivantes: 1,2,17,20 à 24, 27 à 29, 34 à 39 sur la feuille 3. J'ai réussi à le faire avec VBA mais comme la feuille 1 contient des formules avec des champs absents dans la feuille 3, je ne sais pas comment faire ??
J'ai un soucis lorsque j'insère des colonnes ou lignes sur la feuille 1 les champs ne sont pas automatiquement insérer sur la feuille 3...
Quelqu'un aurait une solution ?
Merci d'avance bonne journée
Karine
 

Fichiers joints

fanch55

XLDnaute Impliqué
Salut, à tester :
VB:
Sub rangecopy()
With Sheets("Feuil3")
    .Activate
    .Cells.Clear
    xl_Paste Sheets("Saisie des Salaires").Range("A1:BB1"), .Range("A1:BB1")
    xl_Paste Sheets("Saisie des Salaires").Range("A2:BB2"), .Range("A2:BB2")
    xl_Paste Sheets("Saisie des Salaires").Range("A17:BB17"), .Range("A4:BB4")
    xl_Paste Sheets("Saisie des Salaires").Range("A20:BB24"), .Range("A6:BB10")
    xl_Paste Sheets("Saisie des Salaires").Range("A27:BB29"), .Range("A12:BB14")
    xl_Paste Sheets("Saisie des Salaires").Range("A34:BB39"), .Range("A16:BB21")
End With

End Sub
Sub xl_Paste(source As Range, target As Range)
    source.Copy
    target.Select
    ActiveSheet.Paste link:=True
    target.PasteSpecial xlPasteFormats
    target.PasteSpecial xlPasteColumnWidths
    For Each cell In target
        If cell.HasFormula Then
        formule = Mid(cell.Formula, 2)
        cell.FormulaLocal = "=si(" & formule & "="""";"""";" & formule & ")"
        End If
    Next
End Sub
 

kareen64

XLDnaute Nouveau
Salut, à tester :
VB:
Sub rangecopy()
With Sheets("Feuil3")
    .Activate
    .Cells.Clear
    xl_Paste Sheets("Saisie des Salaires").Range("A1:BB1"), .Range("A1:BB1")
    xl_Paste Sheets("Saisie des Salaires").Range("A2:BB2"), .Range("A2:BB2")
    xl_Paste Sheets("Saisie des Salaires").Range("A17:BB17"), .Range("A4:BB4")
    xl_Paste Sheets("Saisie des Salaires").Range("A20:BB24"), .Range("A6:BB10")
    xl_Paste Sheets("Saisie des Salaires").Range("A27:BB29"), .Range("A12:BB14")
    xl_Paste Sheets("Saisie des Salaires").Range("A34:BB39"), .Range("A16:BB21")
End With

End Sub
Sub xl_Paste(source As Range, target As Range)
    source.Copy
    target.Select
    ActiveSheet.Paste link:=True
    target.PasteSpecial xlPasteFormats
    target.PasteSpecial xlPasteColumnWidths
    For Each cell In target
        If cell.HasFormula Then
        formule = Mid(cell.Formula, 2)
        cell.FormulaLocal = "=si(" & formule & "="""";"""";" & formule & ")"
        End If
    Next
End Sub

Merci cela m'a bien avancé
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas