Zone combinée A vider lors de la fermeture

  • Initiateur de la discussion Initiateur de la discussion Tophe2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tophe2

XLDnaute Impliqué
Bonjour le forum,

J'ai un fichier ou se trouve sur une feuille excel, une zone combinée qui fait appel à une liste se trouvant sur un autre onglet grace à une formule en fonction du nom se trouvant dans la Zone combinée il s'affiche dans des lignes en dessous l'adresse et d'autres éléments lié au nom pour cela pas de problème. Je n'arrive pas à trouver comment "vider" ou effacer (automatique) le contenu de cette zone combinée lors de la fermeture.

Merci pour votre
Cordialement
Christophe.
 
Re : Zone combinée A vider lors de la fermeture

Bonjour Excel-lent et Bonjour le forum,

J'ai bien compris cependant je ne dois pas avoir la bonne écriture j'ai noté cela Shapes ("Drop Down 110")="" dans le ThisWorkBook comme indiqué ci dessus.

Je viens également de tester cela mais ça ne fonctionne pas.

Private Sub Workbook_before_close()

Shapes ("Drop Down 110")
With Selection
.ShapeRange.Value = False

End Sub

As tu une écriture précise pour vider ou effacer la zone lors de la fermeture ?

Merci et bonne journée
Christophe.
 
Dernière édition:
Re : Zone combinée A vider lors de la fermeture

Bonsoir Tophe2,

Sans un petit extrait de ton fichier, je ne peux te dire autre chose que :

-> comment as-tu trouvé la partie centrale de ta macro?
Shapes ("Drop Down 110")
With Selection
.ShapeRange.Value = False

-> a priori tu n'as pas utilisé l'enregistreur de macro, ou tu as oublié de recopier une ligne de code sur le forum. Ben oui, tu parle de ... avec l'élément sélectionné, mais dans la macro ci-dessus, tu n'as rien sélectionné au préalable. Bizarre!

Comme on a du déjà te dire : "si tu veux une réponse précise et détaillée, n'hésite pas à un mettre un petit exemple à l'aide d'un fichier dépersonnalisé et nettoyé de tous les gadgets inutiles à la compréhension du problème"

A te lire
Cordialement
 
Re : Zone combinée A vider lors de la fermeture

Bonjour Excel-ment, Bof et le forum,

Effectivement j'ai obtenu cela : Shapes ("Drop Down 110") à l'aide de l'enregistreur de macro et en cherchant sur le forum, j'avais besoin de le masquer avant l'impression de la feuille.

Maintenant j'aurai besoin de la mise à blanc ou de vider la zone combinée au moment de la fermeture.

J'ai glissé une feuille pour exemple j'ai supprimé tout le reste du devis et j'ai laissé que la zone combinée.

Merci pour votre aide.

Bonne Journée
Christophe.
 

Pièces jointes

Re : Zone combinée A vider lors de la fermeture

Bonjour le forum,

Pouvez vous me donner une réponse ou de l'aide sur la possibilité de vider la zone combinée au moment de la fermeture du fichier.

Merci

Bonne Journée

Cordialement
Christophe.
 
Dernière édition:
Re : Zone combinée A vider lors de la fermeture

Bonsoir Christophe,

J'ai essayé plusieurs solutions, mais aucune ne fonctionne 🙁

Par contre, j'ai profité de l'occasion pour améliorer ton fichier : plus précisément ta liste déroulante.

Dans ton fichier d'origine : les premières lignes de la liste déroulante contiennent la liste des clients (jusque là : parfait), mais en dessous il y a des tonnes de lignes vides 😡

Dans le fichier ci-joint, la liste déroulante ne contiendras QUE tes clients (aucune ligne vide à la fin) 🙂
La taille de la liste s'adapte automatiquement, au fur et à mesure de la modification de ta base de donnée : "liste des clients".

Bonne continuation
 

Pièces jointes

Re : Zone combinée A vider lors de la fermeture

Bonjour Excel-lent et Bonjour le forum,

Tout d'abord merci pour ton aide.

Je souhaiterai vider la liste déroulante car je fais les devis sur cette onglet puis j'ai fait une macro qui crée ce devis sur un nouveau fichier et je souhaite tout simplement avoir mon devis vide après chaque utilisation donc effacer tout le contenu saisi dans cet onglet avant de pouvoir re faire un nouveau devis.

Peux tu me dire comment faire pour inclure ta proposition dans mon fichier.

Bonne Journée
Christophe.
 
Dernière édition:
Re : Zone combinée A vider lors de la fermeture

Bonjour Christophe
Bonjour le fil Excel-Lent
Bonjour le Forum
Content de pouvoir vous croiser et de vous saluer à travers ce post
donc pour ne pas venir pour rien
peut être une idée
pourquoi pas introduire une ligne Vide en tête de Liste et rajouter dans les formules Si("","" ,formule)
puis à la fermeture du fichier mettre la Liste sur vide "" ,ce qui devrait vider le Devis
Enfin ce n'est qu'une idée les formules ne sont pas mon fort Lol

Ps : une question j'ai depuis deux jours un problème pour ouvrir les Fichiers que je télécharge
j'ai un message du genre
Le fichier que vous essayez d'ouvrir 'name.ext', est dans un format différent de celui spécifié par l'extension de fichier. Vérifiez que le fichier n'est pas endommagé et qu'il précède d'une source fiable avant d'ouvrir le fichier. Vous souhaitez ouvrir le fichier maintenant ?
avez vous rencontrez un tel Problème?
avez vous une solution ?
Merci par avance
Bonne Journée
Amicalement
Jean Marie
 
Dernière édition:
Re : Zone combinée A vider lors de la fermeture

Bonjour Cthi160,

Content de lire ce jour

Concernant le problème d'ouverture du fichier je n'ai pas de solution à t'apporter je n'ai jamais eu ce genre de probléme.

J'ai compris ta proposition pour la liste déroulante j'aurai souhaité automatiser cela lors de la fermeture à priori cela ne semble pas possible.

Bonne Journée
Christophe.
 
Re : Zone combinée A vider lors de la fermeture

Bonjour Tophe2, ChTi160, le fil,

Regarde le fichier ci-joint, à mon avis il répond parfaitement à tes besoins.

Pour cela, j'ai apporté plusieurs modifications à ton fichier :
-> je n'ai plus besoin de la cellule A1 onglet "Client"

-> dans ta colonne code, comme dans ta version, j'ai mis un numéro incrémenté auquel j'ai rajouté le nom du client.
(permettra ainsi de gérer les risques de doublons : deux clients ayant le même nom). La formule est conçu pour pouvoir être recopié vers le bas et pouvoir gérer les insertions de lignes au milieu de la base de donnée.

-> onglet "Feuil1", au lieu d'utiliser ta liste, j'ai mis une liste type : "validation" qui se trouve dans la cellule H1. J'ai profité de l'occasion pour te rajouter un message d'erreur pour le cas où l'utilisateur écrive le nom d'un client inexistant.

-> au lieu de vider la cellule H1 à la fermeture du fichier, je la vide à l'ouverture du fichier. C'est plus pratique et plus fiable. Car lorsque tu vide la cellule à la fermeture du fichier il se passe ceci :
----> tu ferme ton fichier
----> la macro se déclenche et efface la valeur
----> la macro ayant modifié le fichier, avant de se fermer définitivement Excel demande si l'on veut enregistrer la modification
----> donc si l'utilisateur sélectionne "non", la macro n'aura servi à rien.

Pour éviter cela, j'effectue donc le "vidage" de la cellule H1 à l'ouverture du fichier.

Je te laisse regarder le fichier, faire différentes simulation et nous dire si cela te convient.

Si oui et si tu as besoin de plus d'explication sur un point précis pour pouvoir l'adapter à ton fichier, n'hésite pas.

Bonne fin d'après midi
 

Pièces jointes

Re : Zone combinée A vider lors de la fermeture

Bonjour Excel-lent et Bonjour le forum,

C'est exactement ce que je voulais faire merci pour ton aide j'ai fait des essais et cela fonctionne comme il faut.

Peux tu m'expliquer le fonctionnement de la formule pour afficher l'adresse.

Je vais pouvoir finaliser le fichier avec les devis et factures (en fonction de mes connaissances), en espérant ne pas rencontrer de problème.

Bonne Journée et encore merci
Christophe
 
Re : Zone combinée A vider lors de la fermeture

Bonjour Tophe2,

Tophe2 à dit:
Peux tu m'expliquer le fonctionnement de la formule pour afficher l'adresse


Onglet "Client"
Pour que tes formules soient plus facile à comprendre j'ai donné un nom à tes différentes colonnes onglet "client".

Pour la colonne A : "CODE", j'ai créer le nom "ListeCodeClient" :
-> "insertion" / "nom" / "définir"
-> dans la zone "fait référence à", j'ai mis :
=DECALER(Client!$A$3;0;;NBVAL(Client!$A:$A)-1)

Il s'agit du même type de fonction que celui mis dans les fichiers précédent (je suppose donc que tu la connais et comprend?). Cela permet que la zone "ListeCodeClient" s'adapte automatiquement à la taille de ton tableau.

J'ai fais de même pour toutes les autres colonnes :
-> "NOM" : appelé "ListeClient"
-> "ADRESSE" : appelé "ListeAdresse"
-> "ADRESSE2" : appelé "ListeAdresse2"
-> ...

Pour l'onglet "Feuil1
Cellule M9, je me suis borné à ré-utiliser les fonctions que tu avais utilisé : INDEX et EQUIV.
Idem pour les cellules M10, M11, M12, M13, O13, M14

J'ai juste rajouté au début : =SI($H$1="";""; ...) comme conseillé très justement par ChTi160 pour gérer le cas de figure : "lorsqu'il n'y a aucun client de sélectionné en H1. Permettant ainsi de mettre la zone ligne 8 à 14 à blanc.

Voici plus en détail la formule écrite en M9
=SI($H$1="";"";INDEX(ListeClient;EQUIV($H$1;ListeCodeClient;0);1))

Si la cellule H1 ne contient rien :
-> si vrai : ne rien écrire
-> si faux : ta fameuse formule INDEX, EQUIV réadaptée

INDEX(ListeClient;EQUIV($H$1;ListeCodeClient;0);1)

Pour information il existe deux formes de la fonction INDEX : la matricielle et la référentielle.
Ici on utilise la forme référentielle

INDEX( la zone où trouver la donnée à récupérer : le Nom du client ; le numéro de la ligne où se trouve la donnée à récupérer ; le numéro de la colonne )

Pour entrer plus en profondeur dans la fonction, explication de la fonction EQUIV :
EQUIV($H$1;ListeCodeClient;0)

Elle permet de trouver le numéro de la ligne où se trouve la donnée cherché.
-> valeur à chercher : $H$1
-> l'endroit où chercher la valeur situé en H1 : ListeCodeClient. Il s'agit de la colonne CODE situé sur ton onglet "Client"
-> 0 : la valeur situé ici est très importante, elle indique comment doit réagir la fonction EQUIV.

Les valeurs possible sont : - 1 ou 0 ou 1

Lorsque tu met : "0" cela signifie que tu cherche la valeur exacte. Pour les autres valeurs et savoir à quoi elles servent, je te laisse utiliser l'aide Excel 😉

Si tu as besoin de plus de précision sur un point, n'hésite pas.

Bonne après midi
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour