Code vba

Résolu/Fermé
guerando Messages postés 336 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 - 13 nov. 2018 à 05:22
guerando Messages postés 336 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 - 18 nov. 2018 à 10:20
Bonjour,
Pour termier mon fichieril faudrait rajouter un code... si c'est possible :

j'ai un premier fichier "formulaire G" qui est rempli par un technicien sur excel oneline (sans vba possible)
Les informations sont récupérer dans un fichier, pour le comptable de l'entreprise (avec code).
Dans le fameux fichier de recuperation de données, et dans l'onglet "Dégustation Cadeau Casse Perso" (qui récupere les infos de du meme onglet mais dans le fichier "formulaire" ) : j'ai rajouté une colonne en I pour dire si c'est comptabilisé. Serait ce possible dans le meme code ou dans un autre, de dire que sur les lignes où il y a noté "oui" alors il faut sur le fichier "formulaires_G" onglet "Dégustation cadeau ..." sur les même lignes les cellules des colonnes C à H soient sélectionnées, clic droit , mise en forme, protection, cocher verouiller, puis proteger l'onglet (revision / proteger/ cocher "selectionner les cellules deverouillées").
Attention avant de faire cela il faudra enlever la protection de la feuille.
Le but étant que le comptable une fois qu'il a mis "oui" (c'est comptabilisé) le technicien ne puisse pas modifier quoi que ce soit sur ces lignes déja comptabilisées...

Pouvez vous m'aider ?
bonne journée
Merc
https://www.cjoint.com/c/HKlmyWincgl
https://www.cjoint.com/c/HKlmBZEkFpl
A voir également:

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 13 nov. 2018 à 20:42
bonjour, je regarde.
regardé, pas encore fait, cela me semble très faisable.

cependant, j'hésite à propos de quand le faire, et pour quels "oui".
à l'ouverture et/ou à la fermeture de la synthèse, au moment ou un "non" devient "oui", ou via un bouton ou autre chose déclenché par le comptable?
pour tous les "oui", oui uniquement pour les nouveaux "oui"? si les nouveaux, il faudrait mémoriser quelque part dans la synthèse ceux qui sont déjà protégés, par exemple via la valeur en colonne J.

pour tester, j'ai fait ceci, qui déclenche quand le comptable change un "non" en "oui":
ceci est à mettre dans un nouveau module:
Option Explicit
Public Const fichier_formulaire = "https://d.docs.live.net/169216252f734be3/Documents/Formulaires_G.xlsx"

Sub blockstock(ligne As Long)
Dim form As Workbook, degust As Worksheet

Set form = Workbooks.Open(fichier_formulaire)
Set degust = form.Sheets("Dégustation Cadeau Casse Perso")
degust.Unprotect
degust.Range(degust.Cells(ligne, 3), degust.Cells(ligne, 8)).Locked = True
degust.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
form.Save
form.Close
End Sub

ceci est mettre dans le module de la feuille "Dégustation Cadeau Casse Perso":
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 9 And Target.Row > 6 And Target = "oui" Then
    blockstock (Target.Row)
End If
End Sub
0
guerando Messages postés 336 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 6
14 nov. 2018 à 20:59
Super ca marche trés bien merci beaucoup :)
bonne soireé
0
guerando Messages postés 336 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 6
16 nov. 2018 à 13:28
Bonjour YG_BE,
j'ai fait des test et ca fonctionne trés bien, cependant lorsque j'ai voulu enlever les tests (j'ai supprimer ce qui avait dans les lignes, dans les deux fichiers, remis non au lieu de oui) puis refait des tests... ca ne marche pas sur les lignes ou la macro à déja marché (par exemple ici sur les deux premieres lignes). Peut etre est ce en lien justement avec ta question "pour tous les "oui", oui uniquement pour les nouveaux "oui"?" ca serait pour l'ensemble des oui et pas uniquement pour les nouveaux, est ce possible ?
merci
bonne soirée
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > guerando Messages postés 336 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023
16 nov. 2018 à 15:22
en principe, cela devrait fonctionner à chaque fois que la case est modifiée et contient "oui".
donc cela ne se fait pas pour ceux qui sont oui et ne sont pas modifiés.
pour ceux-là, il faut repasser en non, puis en oui.
ou bien adapter le code. le code peut le faire pour tous les oui: dis moi quand le code devrait faire cela.
0
guerando Messages postés 336 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 6
18 nov. 2018 à 10:20
oui tu as raison ca fonctionne, j'avais du faire une fausse manipe :) merci
0