Difficultés à coller une plage déjà copiée

Bonjour à tous. C'est Constant30. C'est ma première fois de vous écrire. Il s'agit de copier d'un classeur à un autre une plage de cellules. Tout se passe bien sauf que il y erreur à fin et pas de collage.

BV m'aider.

Merci.

Je joins la macro

Sub Copielistepersonnel()

Dim maplage As Range
Dim taille, position1, position2 As Integer

'   prise des données dans calsseur établissement
    Workbooks(2).Worksheets(1).Activate

'Oter la protection de la feuille
    ActiveSheet.Unprotect

    'chargement de la liste
Set maplage = Range("B13:P" & Range("P13").End(xlDown).Row)
taille = Range("P13").End(xlDown).Row - 12

maplage.Select
maplage.Copy
MsgBox ("nombre de ligne source " & taille)
Application.CutCopyMode = False

Set maplage = Selection

'Proteger la feuille
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

' positionnement dans le fichier "FICHIER Général Mutuelle du personnel"

'Oter la protection de la feuille
    ActiveSheet.Unprotect
    Application.DisplayAlerts = False

    Windows("FICHIER Général Mutuelle du personnel.xlsm").Activate
            position1 = Range("B3").End(xlDown).Row + 1
            MsgBox ("ligne de départ " & position1)
            position2 = position1 + taille - 1
            MsgBox ("ligne de fin " & position2)
            Range("B" & position1 & ":P" & position2).Select

    ActiveSheet.Paste
' Range("B" & position1).Paste
'            MsgBox ("cellule de départ " & "B" & position1)
    Application.DisplayAlerts = True

End Sub

Bonjour Constant30 et bienvenue

De ce que je vois, vous ne pouvez pas copier des cellules, protéger, déprotéger puis coller ces cellules

Essayer de le faire manuellement, vous verrez

Bonsoir JExceL2fr,

Merci pour ta prompte réaction.

Lorsque je masque la re-protection du premier classeur, c'est le même résultat.

Je crois que la ligne qui fait problème c'est :

ActiveSheet.Paste

Comment faire ?

Bonjour,

Non, plusieurs erreurs !

1) l'instruction "Application.CutCopyMode = False" alors que vous venez de copier votre plage

2) la déprotection de la feuille alors que vosu venez de copier des cellules

Tout ça annule la copie et donc créé une erreur lors du collage de "rien"

Voici un code qui devrait fonctionner

Sub Copielistepersonnel()
  Dim Wbk2 As Workbook, Sht2 As Worksheet
  Dim MaPlage As Range
  Dim Taille As Long, Position1 As Long, Position2 As Long
  ' Définir les variables objet
  Set Wbk2 = Workbooks(2)
  Set Sht2 = Wbk2.Sheets(1)
  ' 1) oter les protection
  Sht2.Unprotect
  ActiveSheet.Unprotect
  'chargement de la liste
  Set MaPlage = Sht2.Range("B13:P" & Range("P13").End(xlDown).Row)
  Taille = Sht2.Range("P13").End(xlDown).Row - 12
  ' Copier la plage
  MaPlage.Copy
  MsgBox ("nombre de ligne source " & Taille)
  '
  With ActiveSheet
    Position1 = .Range("B3").End(xlDown).Row + 1
    MsgBox ("ligne de départ " & Position1)
    Position2 = Position1 + Taille - 1
    MsgBox ("ligne de fin " & Position2)
    .Range("B" & Position1 & ":P" & Position2).Select
    .Paste
  End With
  'Proteger les feuilles
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
  Sht2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
  ' Effacer les variables objet
  Set Sht2 = Nothing: Set Wbk2 = Nothing
End Sub

Bonjour JExceL2fr.

"Voici un code qui devrait fonctionner" oui, ça fonctionne à merveille.

Oh merci, grand merci, ça fonctionne super bien. C'est propre. Je suis trop content.

Merci pour le grand coup de main. J'ai également pris par rapport à mes erreurs.

Bonne journée à tous.

Rechercher des sujets similaires à "difficultes coller plage deja copiee"