AUTOMATISATION MASQUAGE / AFFICHAGE LIGNES DANS EXCEL
Résolu
Jemex
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
touroul Messages postés 509 Date d'inscription Statut Membre Dernière intervention -
touroul Messages postés 509 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis nouveau sur le forum que j'ai découvert récemment. Par consultation des messages laissés par chacun, j'ai déjà pu régler quelques problèmes qui pour moi étaient bien épineux avant de vous connaitre. Aussi, butant sur l'un d'entre eux, je me suis décidé à vous le soumettre.
Mon problème : je réalise actuellement une grille de chiffrage tarifaire qui comporte, dans une même feuille EXCEL :
- une première partie qui établi la liste et les prix inhérents de manière exhaustive de tous les équipements pouvant entrer dans la composition d'un produit donné. En sélectionnant par l'intermédiaire d'une liste déroulante chacun des équipements, liste placée sur chacune de leur ligne, je compose et je chiffre donc le produit proposé au client (produit dit "de base") et je défini les variantes ou options que nous allons lui proposer. Ce dernier choix provoque le chiffrage dans la seconde partie de ces variantes ou options.
- une seconde partie qui affichera donc les options et variantes retenues ainsi que le détails de leur chiffrage.
Pour ce faire, la liste déroulante indiquée ci-dessus permet un choix entre 3 valeurs :
- la valeur est à "1" : l'équipement est intégré au chiffrage de base
- la valeur est à "OPL" : l'équipement est intégré dans une variante qui elle peut être composée de plusieurs équipements; le chiffrage correspondant est provoqué par la saisie de cette valeur.
- la valeur est à "OPS" : l'équipement est proposé en option séparément. Le chiffrage correspondant est provoqué par la saisie de cette valeur.
Pour imager mon projet :
valeur 1 :je propose une cuisine complète selon un plan de base,
valeur : "OPL" : j'ajoute un meuble supplémentaire complet comprenant un caisson + des portes + des ferrures
valeur "OPS" : je remplace les façades des meubles blanches dans le prix de base par des façades "vieux chêne" en option,
J'ai donc prévu dans la seconde partie autant de zone que d'options ou variantes possibles.
Jusque là tout fonctionne mais je souhaite maintenant , afin de réduire la taille de l'impression de ce document, car naturellement nous n'utilisons que quelques options ou variantes chez un client, masquer les options et variantes non proposées donc inutiles
Pour ce faire, j'ai déterminé des groupes d'options (c'est à dire dans mon exemple les différents types de portes que je peux proposer), puis pour chacun de ces groupes, codifié l'état du groupe dans une colonne séparée ("o" : pas de variante de porte proposée ou équipement livré sans porte, "1" : une seule variante de porte proposée; "2" : 2 variantes de portes proposées ......) Ce codage se fait à partir des fonctions SI, appuyé sur la valeur retenue pour chacun des équipements concernés.
Dans l'exemple qui suit, pour un groupe donné, le groupe se compose de 3 équipements proposables et j'ai donc 2 variantes possibles. Le code du groupe se trouve dans la cellule AA36. La variante N°1 se trouve sur les lignes 271 à 278 et la N° 2 sur les lignes 279 à 285. J'ai inclus dans ma feuille la macro suivante :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AA$36" Then Macro1
End Sub
Sub Macro1()
''Masque les lignes 271 à 285 si la case AA36 est égal à zéro
If Range("aa36") = "0" Then
Rows("271:285").Select
Selection.EntireRow.Hidden = True
End If
''Masque les lignes 279 à 285 si la case AA36 est égal à un
If Range("aa36") = "1" Then
Rows("279:285").Select
Selection.EntireRow.Hidden = True
End If
'Affiche les lignes 271 à 285 si la case AA36 est égal à deux
If Range("aa36") = "2" Then
Rows("271:285").Select
Selection.EntireRow.Hidden = False
End If
' Macro1 Macro
' Macro enregistrée le 04/03/2013 par JM REVEL
End Sub
La macro1 fonctionne bien mais je ne parvient pas, par l'instruction Private Sub Worksheet_Change(ByVal Target As Range), à automatiser le mascage/affichage des lignes par simple choix de la valeur dans la liste déroulante de départ. Je fais sans doute une erreur mais laquelle ?
Pourriez-vous m'aider?
Je suis comme vous vous en doutez surement, débutant dans ce langage VBA mais tente malgré le manque de temps de me passionnner pour lui car manifestement il sera bien souvent LA solution à mes problèmes.
D'avance merci à tous
Je suis nouveau sur le forum que j'ai découvert récemment. Par consultation des messages laissés par chacun, j'ai déjà pu régler quelques problèmes qui pour moi étaient bien épineux avant de vous connaitre. Aussi, butant sur l'un d'entre eux, je me suis décidé à vous le soumettre.
Mon problème : je réalise actuellement une grille de chiffrage tarifaire qui comporte, dans une même feuille EXCEL :
- une première partie qui établi la liste et les prix inhérents de manière exhaustive de tous les équipements pouvant entrer dans la composition d'un produit donné. En sélectionnant par l'intermédiaire d'une liste déroulante chacun des équipements, liste placée sur chacune de leur ligne, je compose et je chiffre donc le produit proposé au client (produit dit "de base") et je défini les variantes ou options que nous allons lui proposer. Ce dernier choix provoque le chiffrage dans la seconde partie de ces variantes ou options.
- une seconde partie qui affichera donc les options et variantes retenues ainsi que le détails de leur chiffrage.
Pour ce faire, la liste déroulante indiquée ci-dessus permet un choix entre 3 valeurs :
- la valeur est à "1" : l'équipement est intégré au chiffrage de base
- la valeur est à "OPL" : l'équipement est intégré dans une variante qui elle peut être composée de plusieurs équipements; le chiffrage correspondant est provoqué par la saisie de cette valeur.
- la valeur est à "OPS" : l'équipement est proposé en option séparément. Le chiffrage correspondant est provoqué par la saisie de cette valeur.
Pour imager mon projet :
valeur 1 :je propose une cuisine complète selon un plan de base,
valeur : "OPL" : j'ajoute un meuble supplémentaire complet comprenant un caisson + des portes + des ferrures
valeur "OPS" : je remplace les façades des meubles blanches dans le prix de base par des façades "vieux chêne" en option,
J'ai donc prévu dans la seconde partie autant de zone que d'options ou variantes possibles.
Jusque là tout fonctionne mais je souhaite maintenant , afin de réduire la taille de l'impression de ce document, car naturellement nous n'utilisons que quelques options ou variantes chez un client, masquer les options et variantes non proposées donc inutiles
Pour ce faire, j'ai déterminé des groupes d'options (c'est à dire dans mon exemple les différents types de portes que je peux proposer), puis pour chacun de ces groupes, codifié l'état du groupe dans une colonne séparée ("o" : pas de variante de porte proposée ou équipement livré sans porte, "1" : une seule variante de porte proposée; "2" : 2 variantes de portes proposées ......) Ce codage se fait à partir des fonctions SI, appuyé sur la valeur retenue pour chacun des équipements concernés.
Dans l'exemple qui suit, pour un groupe donné, le groupe se compose de 3 équipements proposables et j'ai donc 2 variantes possibles. Le code du groupe se trouve dans la cellule AA36. La variante N°1 se trouve sur les lignes 271 à 278 et la N° 2 sur les lignes 279 à 285. J'ai inclus dans ma feuille la macro suivante :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$AA$36" Then Macro1
End Sub
Sub Macro1()
''Masque les lignes 271 à 285 si la case AA36 est égal à zéro
If Range("aa36") = "0" Then
Rows("271:285").Select
Selection.EntireRow.Hidden = True
End If
''Masque les lignes 279 à 285 si la case AA36 est égal à un
If Range("aa36") = "1" Then
Rows("279:285").Select
Selection.EntireRow.Hidden = True
End If
'Affiche les lignes 271 à 285 si la case AA36 est égal à deux
If Range("aa36") = "2" Then
Rows("271:285").Select
Selection.EntireRow.Hidden = False
End If
' Macro1 Macro
' Macro enregistrée le 04/03/2013 par JM REVEL
End Sub
La macro1 fonctionne bien mais je ne parvient pas, par l'instruction Private Sub Worksheet_Change(ByVal Target As Range), à automatiser le mascage/affichage des lignes par simple choix de la valeur dans la liste déroulante de départ. Je fais sans doute une erreur mais laquelle ?
Pourriez-vous m'aider?
Je suis comme vous vous en doutez surement, débutant dans ce langage VBA mais tente malgré le manque de temps de me passionnner pour lui car manifestement il sera bien souvent LA solution à mes problèmes.
D'avance merci à tous
A voir également:
- AUTOMATISATION MASQUAGE / AFFICHAGE LIGNES DANS EXCEL
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
15 réponses
Bonjour,
Si ton Private Sub Worksheet_Change est bien dans le module de la feuille concernée par de raison que ça ne marche pas.
Comme tu as parcouru le forum tu as dû remarqué que joindre un fichier était apprécié. Là on ne peut qu'essayer de deviner...
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Si ton Private Sub Worksheet_Change est bien dans le module de la feuille concernée par de raison que ça ne marche pas.
Comme tu as parcouru le forum tu as dû remarqué que joindre un fichier était apprécié. Là on ne peut qu'essayer de deviner...
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Bonjour Eriiic,
Je cherche à t'envoyer un fichier d'exemple mais je ne parviens pas à l'inclure dans ma réponse.
Comment fait-on ??
Merci d'avance.
Je cherche à t'envoyer un fichier d'exemple mais je ne parviens pas à l'inclure dans ma réponse.
Comment fait-on ??
Merci d'avance.
Bonjour,
Déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
eric
Déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
eric
Bonjour,
et salut Eric
Au passage:
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Evite de mettre tes titres en majuscules qui est un signe de mécontentement voire de colère
https://www.commentcamarche.net/infos/25857-charte-de-commentcamarche-net-conseils-d-ecriture/#titre-du-message
et salut Eric
Au passage:
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Evite de mettre tes titres en majuscules qui est un signe de mécontentement voire de colère
https://www.commentcamarche.net/infos/25857-charte-de-commentcamarche-net-conseils-d-ecriture/#titre-du-message
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Eriic,
Ci-joint donc mon fichier exemple. Celui-ci reprend la macro décrite précedemment, adaptée naturellement à l'exemple.
https://www.cjoint.com/?3CfnXtjP46B
Je n'ai pas développé cette macro pour l'ensemble de l'exemple. Elle est donc associée uniquemùent à la valeur de la cellule B11. Si je change la valeur de cette cellule (liste déroulante), l'automatisme de mlaquer ou d'afficher les lignes dans la partie VARIOANTE / OPTION ne se produit
Pourriez-vous ml'aider.
D'avance merci.
Ci-joint donc mon fichier exemple. Celui-ci reprend la macro décrite précedemment, adaptée naturellement à l'exemple.
https://www.cjoint.com/?3CfnXtjP46B
Je n'ai pas développé cette macro pour l'ensemble de l'exemple. Elle est donc associée uniquemùent à la valeur de la cellule B11. Si je change la valeur de cette cellule (liste déroulante), l'automatisme de mlaquer ou d'afficher les lignes dans la partie VARIOANTE / OPTION ne se produit
Pourriez-vous ml'aider.
D'avance merci.
Bonjour Eriic,
Merci pour le renseignement. Je vous ai donc transmis mon fichier exemple mais il semble que michel m l'ait intercepté.
Ne sachant pas si vous l'avez vu, je vopus repasse le lien et le commentaire fait précédemment :
"Ci-joint donc mon fichier exemple. Celui-ci reprend la macro décrite précedemment, adaptée naturellement à l'exemple.
https://www.cjoint.com/?3CfnXtjP46B
Je n'ai pas développé cette macro pour l'ensemble de l'exemple. Elle est donc associée uniquemùent à la valeur de la cellule B11. Si je change la valeur de cette cellule (liste déroulante), l'automatisme de masquer ou d'afficher les lignes dans la partie VARIANTE / OPTION ne se produit pas.
Pourriez-vous m'aider et m'indiquer mon erreur ? "
Merci d'avance.
Merci pour le renseignement. Je vous ai donc transmis mon fichier exemple mais il semble que michel m l'ait intercepté.
Ne sachant pas si vous l'avez vu, je vopus repasse le lien et le commentaire fait précédemment :
"Ci-joint donc mon fichier exemple. Celui-ci reprend la macro décrite précedemment, adaptée naturellement à l'exemple.
https://www.cjoint.com/?3CfnXtjP46B
Je n'ai pas développé cette macro pour l'ensemble de l'exemple. Elle est donc associée uniquemùent à la valeur de la cellule B11. Si je change la valeur de cette cellule (liste déroulante), l'automatisme de masquer ou d'afficher les lignes dans la partie VARIANTE / OPTION ne se produit pas.
Pourriez-vous m'aider et m'indiquer mon erreur ? "
Merci d'avance.
Bonsoir Michel,
Restez calme.
Il me semble deviner un ton ironique dans vos réponses, à moins que ce ne soit de la susceptibilité. Quoiqu'il en soit, soyez-en certain, ni l'une ni l'autre ne participent à élever le niveau de l'homme !
De mon côté, je vous rassure, je ne suis qu'un hônnete citoyen moyen. Rien de plus - rien de moins ! Aussi, je vous écris avec la plus grande politesse qui soit, que :
1 - il n'y a aucune autre intention dans l'écriture de mes textes en majuscule que celle de m'en faciliter la lecture, mon grand âge le nécessitant, Je prends toutefois note de votre conseil et je m'attacherai dorénavant à faire attention à ce point, la pensée ne m'étant jamais venue qu'un humain puisse en faire une telle interprétation !
2 - ne possédant pas vraiment la pratique des forums, sauf jusqu'à présent de les avoir de temps en temps consultés, il est sans doute vrai que je possède des lacunes. A devoir ironiser sur le sujet, cela peut paraître surprenant. N'avez-vous pas un jour débuté ? A moins que ce soit de l'humour et auquel cas je ne le comprends pas.
3 - je note au passage que vous semblez consacrer beaucoup de temps à des considérations qui n'ont rien à voir avec l'utilité de ce forum ... n'avez-vous pas autre chose à faire ?
Au delà de ces basses considérations, je ne suis pas venu sur ce site pour disserter de ce genre de choses mais pour y trouver, comme sans doute pour la très très grande majorité des participants, des conseils, des astuces et des solutions à mes problèmes.
Mes compétences soyez-en conforté, sont par ailleurs sans doute encore très limitées pour que je puisse en fournir à d'autres. Quoique, si j'observe bien, les problèmes des uns servent bien souvent ceux des autres. Dans tous les cas, cela viendra !
C'est, me semble-t-il, l'essence majeure d'un tel forum. Le reste ne m'importe peu.
Bonne soirée et merci quand même pour l'explication relative à l'insertion d'un fichier dans ce type de message.
Restez calme.
Il me semble deviner un ton ironique dans vos réponses, à moins que ce ne soit de la susceptibilité. Quoiqu'il en soit, soyez-en certain, ni l'une ni l'autre ne participent à élever le niveau de l'homme !
De mon côté, je vous rassure, je ne suis qu'un hônnete citoyen moyen. Rien de plus - rien de moins ! Aussi, je vous écris avec la plus grande politesse qui soit, que :
1 - il n'y a aucune autre intention dans l'écriture de mes textes en majuscule que celle de m'en faciliter la lecture, mon grand âge le nécessitant, Je prends toutefois note de votre conseil et je m'attacherai dorénavant à faire attention à ce point, la pensée ne m'étant jamais venue qu'un humain puisse en faire une telle interprétation !
2 - ne possédant pas vraiment la pratique des forums, sauf jusqu'à présent de les avoir de temps en temps consultés, il est sans doute vrai que je possède des lacunes. A devoir ironiser sur le sujet, cela peut paraître surprenant. N'avez-vous pas un jour débuté ? A moins que ce soit de l'humour et auquel cas je ne le comprends pas.
3 - je note au passage que vous semblez consacrer beaucoup de temps à des considérations qui n'ont rien à voir avec l'utilité de ce forum ... n'avez-vous pas autre chose à faire ?
Au delà de ces basses considérations, je ne suis pas venu sur ce site pour disserter de ce genre de choses mais pour y trouver, comme sans doute pour la très très grande majorité des participants, des conseils, des astuces et des solutions à mes problèmes.
Mes compétences soyez-en conforté, sont par ailleurs sans doute encore très limitées pour que je puisse en fournir à d'autres. Quoique, si j'observe bien, les problèmes des uns servent bien souvent ceux des autres. Dans tous les cas, cela viendra !
C'est, me semble-t-il, l'essence majeure d'un tel forum. Le reste ne m'importe peu.
Bonne soirée et merci quand même pour l'explication relative à l'insertion d'un fichier dans ce type de message.
Si sa Seigneurie bavarde condescendait, malgré son age respectable, à lire la charte de ce forum comme cela existe sur tous les forums, peut-être percevrait il l'absurdité pédante de son sermon...
Je sais, mon brave Monsieur, c'est dur d'être confronté au bas peuple...
Je sais, mon brave Monsieur, c'est dur d'être confronté au bas peuple...
Oui, tu es très poli.
Moi-même je suis très à cheval sur la politesse également, la règle sur un forum (comme dans la vie) est quand même de remercier tous les intervenants.
Et détrompe-toi, les interventions de michel ne sont pas basées uniquement sur la politesse et sont d'un très haut niveau sur excel.
Et il a bien raison d'être susceptible sur la politesse, on se fait un concours là-dessus d'ailleurs...
Comme tu t'es rattrapé sur la dernière phrase voici une proposition :
Ton erreur : target.address = "$B$11", pas "$b$11"
eric
Moi-même je suis très à cheval sur la politesse également, la règle sur un forum (comme dans la vie) est quand même de remercier tous les intervenants.
Et détrompe-toi, les interventions de michel ne sont pas basées uniquement sur la politesse et sont d'un très haut niveau sur excel.
Et il a bien raison d'être susceptible sur la politesse, on se fait un concours là-dessus d'ailleurs...
Comme tu t'es rattrapé sur la dernière phrase voici une proposition :
Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Rows.EntireRow.Hidden = False ' afficher toutes les lignes Select Case Target.Address Case "$B$11" ''Masque les lignes 34 à 44 si la case B11 n'est pas égal à "OPL" If [B11] <> "OPL" Then Rows("34:44").EntireRow.Hidden = True Case "$B$12" ' plusieurs tests If [B11] = 1 Then Rows("62:65").EntireRow.Hidden = True ElseIf [B11] = 2 Then Rows("66:70").EntireRow.Hidden = True ElseIf [B11] = "opt" Then Rows("69").EntireRow.Hidden = True End If End Select Application.ScreenUpdating = True End Sub
Ton erreur : target.address = "$B$11", pas "$b$11"
eric
Bonsoir Eriic et par la même à Michel,
Tout d'abord un petit mot à Michel. Mes propos n'avaient pas pour volonté de lui nuire. Ils reflétaient simplement la perception que j'ai eu, sans doute à tort, de ses commentaires. Je mettrai ceci sur le compte de la jeunesse dans votre milieu. En tous cas, il n'était pas question pour moi de douter de ses compétences techniques ou alors pourquoi l'aurais-je remercier en bas de page. J'espère qu'il ne m'en voudra pas pour cet échange, je me répète sans doute à tort, un peu houleux. Pour finir sur le sujet, je ne suis pas pour autant un seigneur ni un donneur de leçon et de faire partie de la base ne me déplait pas non plus !
Un grand merci à Eric pour le projet qu'il m'a transmis. Il fonctionne parfaitement. Je vais m'atteler maintenant à le développer dans ma grille de chiffrage. Je vous tiendrai par principe informé lorque j'aurai fini. Peut-être entre temps germeront-elles de nouvelles questions ?
D'ailleurs, une question me taraude déjà : connaissez-vous une astuce pour que les cellules de choix puissent être toutes ramenées à une certaine valeur (sur commande) pour réinitialiser le chiffrage par exemple ?
Ebcore merci et bonne soirée à vous deux.
J.Michel
Tout d'abord un petit mot à Michel. Mes propos n'avaient pas pour volonté de lui nuire. Ils reflétaient simplement la perception que j'ai eu, sans doute à tort, de ses commentaires. Je mettrai ceci sur le compte de la jeunesse dans votre milieu. En tous cas, il n'était pas question pour moi de douter de ses compétences techniques ou alors pourquoi l'aurais-je remercier en bas de page. J'espère qu'il ne m'en voudra pas pour cet échange, je me répète sans doute à tort, un peu houleux. Pour finir sur le sujet, je ne suis pas pour autant un seigneur ni un donneur de leçon et de faire partie de la base ne me déplait pas non plus !
Un grand merci à Eric pour le projet qu'il m'a transmis. Il fonctionne parfaitement. Je vais m'atteler maintenant à le développer dans ma grille de chiffrage. Je vous tiendrai par principe informé lorque j'aurai fini. Peut-être entre temps germeront-elles de nouvelles questions ?
D'ailleurs, une question me taraude déjà : connaissez-vous une astuce pour que les cellules de choix puissent être toutes ramenées à une certaine valeur (sur commande) pour réinitialiser le chiffrage par exemple ?
Ebcore merci et bonne soirée à vous deux.
J.Michel
Le plus simple est de mettre ces valeurs par défaut dans une autre feuille (que tu peux masquer). Comme ça tu peux en changer les valeurs sans toucher le code, qui en est d'autant plus court.
Ex sur double-clic en A5 ou à mettre sur un bouton :
mais comme plusieurs cellules peuvent être modifiées en même temps ça oblige à modifier le code précédent :
A l'attention de michel : un truc tout bête sur lequel je viens seulement de réagir : un paste déclenche l'évènement change. C'est tellement évident en plus.
Ca pourra resservir :-)
eric
Ex sur double-clic en A5 ou à mettre sur un bouton :
Dim c As Range, plage As Range ... Set plage = Intersect(Target, [B8:B29]) If Not plage Is Nothing Then For Each c In Intersect(Target, [B8:B29]) Select Case c.Address ... End Select Next c End Ifprovoque la raz de de B8:B29.
mais comme plusieurs cellules peuvent être modifiées en même temps ça oblige à modifier le code précédent :
Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Rows.EntireRow.Hidden = False ' afficher toutes les lignes If Intersect(Target, [B8:B29]) Is Nothing Then Exit Sub Application.ScreenUpdating = False For Each c In Intersect(Target, [B8:B29]) Select Case c.Address Case "$B$11" ''Masque les lignes 34 à 44 si la case B11 n'est pas égal à "OPL" If [B11] <> "OPL" Then Rows("34:44").EntireRow.Hidden = True Case "$B$12" ' plusieurs tests If [B11] = 1 Then Rows("62:65").EntireRow.Hidden = True ElseIf [B11] = 2 Then Rows("66:70").EntireRow.Hidden = True ElseIf [B11] = "opt" Then Rows("69").EntireRow.Hidden = True End If End Select Next c Application.ScreenUpdating = True End SubAttention, le select aussi a changé.
A l'attention de michel : un truc tout bête sur lequel je viens seulement de réagir : un paste déclenche l'évènement change. C'est tellement évident en plus.
Ca pourra resservir :-)
eric
Bonjour,
Merci à vous deux pour cette continuité. Je vais tenter d'implanter cela correctement.
Bon après-midi.
J.Michel
Merci à vous deux pour cette continuité. Je vais tenter d'implanter cela correctement.
Bon après-midi.
J.Michel
Bonsoir Eric et Michel,
J'ai mis en place le script modifié mais pas encore la nouvelle instructions qu'Eric à suggéré (et qui, si j'ai bien comrpis est destinée à la remise à zéero de la grille ?). Je n'ai pas compris quelles sont les valeurs à mettre dans la feuille séparée ?
Par ailleurs, la réflexion progressant, pour la remise à "zéro" de la grille pour un nouveau chiffrage, je vais avoir les problèmes suivants (voir exemple ci-joint) :
- B8 et B9 doivent être ramenée à "vide" car il s'agit simplement d'informations complémentaires saisies par l'opérateur et propre à un chiffrage. Par contre les autres cases B10 à B31 sont à ramener à la valeur "NR",
- parmi les cases B10 à B31, certaines peuvent être dépendantes d'une autre (exemple la case B17). La remise à"zéro" ne devra donc pas effacer les formules en place,
- enfin, cette remise à zéro concernera plusieurs zones non adjacentes dans la grille (exemple case E5 qui devrait être ramenée à "vide" puisqu'il s'agit là aussi d'une info.
Pourriez-vous encore m'aider ? Ma nullité me fait presque honte !
D'avance merci à tous.
https://www.cjoint.com/?3CgupcsvAP0
J'ai mis en place le script modifié mais pas encore la nouvelle instructions qu'Eric à suggéré (et qui, si j'ai bien comrpis est destinée à la remise à zéero de la grille ?). Je n'ai pas compris quelles sont les valeurs à mettre dans la feuille séparée ?
Par ailleurs, la réflexion progressant, pour la remise à "zéro" de la grille pour un nouveau chiffrage, je vais avoir les problèmes suivants (voir exemple ci-joint) :
- B8 et B9 doivent être ramenée à "vide" car il s'agit simplement d'informations complémentaires saisies par l'opérateur et propre à un chiffrage. Par contre les autres cases B10 à B31 sont à ramener à la valeur "NR",
- parmi les cases B10 à B31, certaines peuvent être dépendantes d'une autre (exemple la case B17). La remise à"zéro" ne devra donc pas effacer les formules en place,
- enfin, cette remise à zéro concernera plusieurs zones non adjacentes dans la grille (exemple case E5 qui devrait être ramenée à "vide" puisqu'il s'agit là aussi d'une info.
Pourriez-vous encore m'aider ? Ma nullité me fait presque honte !
D'avance merci à tous.
https://www.cjoint.com/?3CgupcsvAP0
Bonjour,
Regarde si ça te va :
Compléter la liste des références à réinitialiser en feuille Listes et double-cliquer sur A5.
eric
Regarde si ça te va :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim data As Variant, i As Long If Intersect(Target, [$A$5]) Is Nothing Then Exit Sub If MsgBox("RAZ de la feuille. Confirmez-vous ?", vbQuestion + vbYesNo, "RAZ") = vbYes Then data = [Listes!A2].Resize([Listes!A65000].End(xlUp).Row - 1, 2) For i = 1 To UBound(data) Range(data(i, 1)) = data(i, 2) Next i End If Cancel = True End Subhttps://www.cjoint.com/c/CCgwp0p3bcZ
Compléter la liste des références à réinitialiser en feuille Listes et double-cliquer sur A5.
eric
Bonsoir Eriic,
J'ai mis en place le RAZ. Super : cà marche !! Il reste un dernier détail, dans l'exemple que j'ai mis hier soir, je souhaiterai par exemple que le RAZ provoque le vidage des cellules B8 et B9, mais qu'il ramène également non pas à vide mais à la valeur "NR" les cases B10 à B31.
https://www.cjoint.com/?3CgupcsvAP0
Connais-tu aussi l'extension ?
Merci d'avance
J'ai mis en place le RAZ. Super : cà marche !! Il reste un dernier détail, dans l'exemple que j'ai mis hier soir, je souhaiterai par exemple que le RAZ provoque le vidage des cellules B8 et B9, mais qu'il ramène également non pas à vide mais à la valeur "NR" les cases B10 à B31.
https://www.cjoint.com/?3CgupcsvAP0
Connais-tu aussi l'extension ?
Merci d'avance