Voici mon problème. Je souhaite pouvoir reporter les valeurs d'une plage de cellule sans la mise en forme des cellules. la plage ajoutée doit se reporter dans mon tableau en feuille 3 afin de constituer un historique de notation par semaine. Mon niveau en vba étant très faible comme vous pouvez le constater, je ne suis parvenu qu'à cibler la cellule d'où doit partir l'historique mais pas le report sur les semaines d'après sans effacer l'historique.
Sub Reporter()
Col = Range("B2").Value + 9
Range("O7:O12").Copy
Feuil2.Select
Cells(4, Col).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.Goto [A1], True
End Sub
Sans connaitre la structure de ton fichier pas possible de t'aider
Postes un exemple (allégé et anonymé si nécessaire ) de ton fichier sur cjoint.com, fais créer un lie, copies le et reviens le coller ici dans un prochain message
Cdlmnt
Via
Jo33
bonjour via55,
Effectivement ce sera plus simple avec mon document. Il s'agit d'un exo de cours donc pas de confidentialité.
Voici le lien : http://www.cjoint.com/c/ELhrsUdUugb
Pour précision: en feuille reporting hebdomadaire, la plage O7:O12 doit se reporter dans la feuille reporting quadrimestriel en fonction de la semaine spécifiée en B2 dans la feuille reporting hebdomadaire. Une fois reporté, les données de la feuille reporting quadrimestriel ne doivent pas pouvoir être effacées ou modifiée.
Merci pour votre aide.
Les croyants sont ceux qui savent qu'ils ne savent pas. Les savants sont ceux qui croient savoir. Socrate
Jo33
Précision : le report en feuille reporting quadrimestriel doit se reporter dans la plage de cellule : J4:J9 en fonction du n°0 de semaine spécifié en feuille reporting hebdomadaire cellule B2
C'était peut être évident mais mieux vaut le préciser.
Modifie dans la macro la lige qui indique le report ainsi
Sheets("Reporting quadrimestriel").Range("I4").Offset(0, Sheets("Reporting hebdomadairel").Range("B2").Value ).Select
Si tu ne veux pas que les données puissent êre modifies il faut d'abord protéger la feuille quadrimestriel, puis dans la macro, avant la ligne précédente mettre ces lignes
If Sheets("Reporting quadrimestriel").Range("I4").Offset(0, Sheets("Reporting hebdomadairel").Range("B2").Value) <> "" Then Exit Sub
Sheets("Reporting quadrimestriel").Unprotect
La 1° vérifie que 1ere cellule de report est vide si ce n'est pas cas sortie
La 2° déprotège
Rajouter enfin ligne en fin de macro pour reprotéger
Sheets("Reporting quadrimestriel").Unprotect
Merci pour l'aide cependant il subsiste une erreur dans la modification du offset que vous m'avez apporté. En effet, en activant le bouton, le message suivant apparaît : erreur d'éxecution '9' : l'indice n'appartient pas à la sélection.
ne s'agirait-il pas pas de la valeur B2 qui ne fait pas parti de du Range I4.
Non B2est la cellule choix semaine dans hebdomadairel
Ce qu'il faut c'est reselectionner la feuille après la déproctection, donc après la ligne Sheets("Reporting quadrimestriel").Unprotect ajouter une ligne :
Sheets("Reporting quadrimestriel").Select