Problème avec un copier/coller sans select

Bonjour me revoilà =) ,

maintenant que j'ai terminé une majorité de mes programmes, j'ai décidé de les reprendre afin de supprimer tous les select et activate. Seulement pour le moment je n 'avais pas eu de soucis mais là je coince =s .

A la base j'avais ça comme programme :

Sub Validation()
    Dim NombreSalarie As Integer

    NombreSalarie = Sheets("cumul d'heures 2017 2018").Range("AD3").Value
    Sheets("badgeuse").Select 'aller sur la feuille badgeuse
    ActiveSheet.Unprotect "auvinetrh" 'enlever la protection de cette feuille
    Sheets("Cumul d'heures 2017 2018").Select 'aller sur la feuille cumul d'heures 2017 2018
    ActiveSheet.Unprotect "auvinetrh" 'enlever la protection de cette feuille
    Sheets("badgeuse").Select 'retourner sur la feuille badgeuse
    Dim i As Integer 'la valeur i est une variable enregistré ligne du tableau des chef d equipe
    Dim MaPlage As Range 'la valeur maplage est une variable enregistré
    Dim j As Integer 'enregistrement de ligne aléatoire

        If (Sheets("Cumul d'heures 2017 2018").Range("AA3").Value <> 0) Then 'si la cellule l3 à une valeur différente de zéro faire

        i = Sheets("Cumul d'heures 2017 2018").Range("AA3").Value  ' i= valeur de l3

        Range(Cells(8, 4), Cells(8, NombreSalarie)).Select 'on selectionne le tableau de d35 à y40
        Selection.Copy ' on le copie
        Sheets("Cumul d'heures 2017 2018").Select 'on retourne sur la feuille archive
        Set MaPlage = Range(Cells(i, 4), Cells(i, NombreSalarie))
        MaPlage.Select 'on selectionne le tableau de d(9+k) à y(14+k)
        Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=False, Transpose:=False 'on le colle avec ctrl alt v on mode valeur et format uniquement
        Sheets("Badgeuse").Select

        ActiveSheet.Protect "auvinetrh", True, True, True
        End If
    ActiveSheet.Protect "auvinetrh", True, True, True 'on reprotege la feuille cumul d 'heures 2017
    Sheets("Badgeuse").Select 'on selectionne la feuille badgeuse
    Range("D37").Select 'on selectionne d37
    ActiveCell.FormulaR1C1 = "1" 'on met la valeur 1
    For j = 4 To NombreSalarie + 1 'pour j de 4 à NombreSalarie
    Cells(37, j).Select 'on selectionne la cellule j,38 (colonneligne)
    Selection.Copy 'copier cette cellule
    Cells(37, j + 1).Select 'on selectionne la cellule j+1,37 (colonneligne)
    ActiveSheet.Paste 'feuille active
    Next 'suite de la boucle on incrémente de 1
    Range("A1").Select 'on selectionne a1
    ActiveSheet.Protect "auvinetrh", True, True, True 'on reprotege la feuille badgeuse

End Sub 'fin

Ouai ca pique je sais =s mais bon ça marche nickel à part le fait que ça ressemble à une guirlande de noël lorsque je lance la procédure

Après un petit nettoyage j'obtiens ça :

Sub Validation()
    Dim NombreSalarie As Integer

    NombreSalarie = Sheets("cumul d'heures 2017 2018").Range("AD3").Value
    Sheets("badgeuse").Unprotect "auvinetrh" 'enlever la protection de cette feuille
    Sheets("Cumul d'heures 2017 2018").Unprotect "auvinetrh" 'enlever la protection de cette feuille
    Dim i As Integer 'la valeur i est une variable enregistré ligne du tableau des chef d equipe
    Dim MaPlage As Range 'la valeur maplage est une variable enregistré
    Dim j As Integer 'enregistrement de ligne aléatoire

        If (Sheets("Cumul d'heures 2017 2018").Range("AA3").Value <> 0) Then 'si la cellule l3 à une valeur différente de zéro faire

        i = Sheets("Cumul d'heures 2017 2018").Range("AA3").Value  ' i= valeur de l3

        Range(Cells(8, 4), Cells(8, NombreSalarie)).Copy Destination:=Sheets("Cumul d'heures 2017 2018").Select  'on retourne sur la feuille archive
        Set MaPlage = Range(Cells(i, 4), Cells(i, NombreSalarie))
        Sheets("Cumul d'heures 2017 2018").Protect "auvinetrh", True, True, True
        End If

    For j = 4 To NombreSalarie + 1 'pour j de 4 à NombreSalarie
    Sheets("Badgeuse").Cells(37, j).Value = 1
    Next 'suite de la boucle on incrémente de 1
    Sheets("Badgeuse").Protect "auvinetrh", True, True, True 'on reprotege la feuille badgeuse

End Sub 'fin

Mais la problème le copier coller marche pas =(

j'ai tenté d'autre alternative du genre :

with sheets("Cumul d'heures 2017 2018")
sheets("Badgeuse").Range("D8:" & NombreSalarie & "8").copy:   .Paste    .Range("D" & i & ":" & NombreSalarie & i)
end with

Mais là c'est carrément mon range qui marche pas ...

Je fais un nettoyage car mon Excel beug vachement par exemple j'ai créé une fonction et des fois sans pour aucune raison la cellule écrit #VALEUR au lieu du résultat de la fonction. Le plus drôle c'est que pour débuger il suffit de masquer et afficher la cellule pour que le résultat revienne (le beug n'est pas systématique). Ensuite sur toutes les feuilles j'ai un autre beug, mes pages sont toutes protégé et lorsque je souhaite modifier une cellule (non verrouillé) et bien lorsque je la modifie je change de feuille de façon systématique alors qu'il y a aucune raison pour que cela arrive.

Je suppose que c 'est problème sont du à mes maccro rempli de activate et de select en tout genre, enfin j'espère ^^.

Quelqu'un à un solution pour ce fichu copier coller ^^ ?

Bonjour,

quel est la valeur de la variable NombreSalarie ?

par exemple si NombreSalarie est un chiffre,

i = 13
NombreSalarie = 5
With Sheets("Cumul d'heures 2017 2018")
Sheets("Badgeuse").Range("D8:" & Cells(8, NombreSalarie).Address).Copy .Range("D" & i & ":" & Cells(i, NombreSalarie).Address)
End With
Rechercher des sujets similaires à "probleme copier coller select"