> Tous les forums > Forum Bureautique
 Effacer cellule par rapport a la valeur d'une autre
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
aiglon61
  Posté le 27/05/2015 @ 22:47 
Aller en bas de la page 

bonsoir a tous

je voudrais effacer la cellule colonne B de la feuille liste "qui contient libre"

si en feuille nouvelle ref la cellule J8 correspond a la même valeur que la cellule de la colonne A de la feuille liste

EN INCORPORANT AU CODE valider_nouvelle_donnée

Je joins un fichier exemple

http://cjoint.com/?0EBwUEqURxG

A+

AIGLON74

Publicité
ferrand
 Posté le 28/05/2015 à 00:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Dans l'immédiat, tu as supprimé un End With avant la ligne fin = ... qu'il faut rétablir avant d'exécuter cette procédure si tu ne veux pas avoir quelque surprise désagréable lors du tri qui suit ! [parce que la référence de la plage à trier va se définir en décalage par rapport à B7 comme s'il s'agissait de A1 et le tri s'effectuerait sur C13:H...]

Le fait que tu en aies rajouté un en fin de procédure empêche sans doute une erreur d'exécution mais il vaudrait mieux une erreur qui ne fait pas de dégât puisqu'elle arrête tout...

Note également que les déclarations de variables doivent être systématiquement faites en début de procédure, avant toute autre instruction, cela évite des problèmes ultérieurs.

Pourquoi ne pas chercher dès le départ un emplacement libre dans la Liste ?

Maintenir la liste à jour en effaçant les "Libre" lors d'une insertion et en les rajoutant lors d'une suppression peut être fait, soit dans chacune des procédures, soit par une procédure auxiliaire (ce qui éviterait de surcharger les procédures d'actions principales avec des actions annexes). Il serait boon également de savoir si dans le cas où un emplacement est ajouté ou supprimé dans la base, si ce dernier n'est pas trouvé dans la feuille Liste, s'il convient de le rajouter automatiquement ou de seulement le signaler pour que tu le fasses manuellement.

Trop tard pour voir ça maintenant, je regarde demain.



Modifié par ferrand le 28/05/2015 00:56
ferrand
 Posté le 28/05/2015 à 13:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Une suggestion pour contrôler de plus près les emplacements : http://cjoint.com/?EECmTpuWKJa

La sélection de la cellule J8 affiche un ComboBox dont la liste déroulante permet de faire défiler la liste des emplacements consignés dans la feuille Liste. On voit donc ceux qui sont libres, et on peut sélectionner (ou taper si on le souhaite) l'emplacement libre voulu.

Lorsqu'un emplacement libre a été sélectionné (ou tapé), le ComboBox est masqué automatiquement. Un clic droit sur la cellule J8 permet également à l'utilisateur d'afficher et masquer alternativement le ComboBox (ce qui permet de le masquer dans les cas ou il ne se masque pas automatiquement, et de l'afficher sans avoir à déplacer la sélection).

Si l'utilisateur sélectionne (ou tape) un emplacement non libre, un message l'en avise et l'inscription en J8 est effacée. S'il tape un emplacement non répertorié dans la liste, un message lui demande s'il souhaite que cet emplacement soit ajouté à la liste : en cas de réponse positive, l'emplacement est ajouté à la liste, mentionné libre, et la liste est retriée.

On a donc ainsi l'assurance de ne lancer la procédure de nouvelle référence dans la base qu'avec un emplacement libre.

La procédure continue cependant de vérifier si le nouvel emplacement à enregistrer est bien absent de la base. Dans le cas où il ne l'est pas (erreur fortuite ayant maintenu ou rétabli la mention libre dans la liste pour un emplacement qui ne l'était plus), un message le signale, la liste est mise à jour en effaçant la mention libre en regard de l'emplacement concerné, et la cellule J8 est effacée pour permettre à l'utilisateur de choisir un autre emplacement.

Lorsque l'enregistrement est réussi, la liste est mise à jour (mention libre effacée).

Si la méthode convient, il restera à opérer une petite modif dans la précédure de suppression pour l'opération inverse (rétablir la mention libre pour l'emplacement supprimé de la base). La même procédure de mise à jour est prévue pour opérer cette opération...

Les procédures de gestion du ComboBox se trouvent dans le module de la feuille de calcul concernée. Des procédures auxiliaires sont ajoutées pour opérer un ajout dans la liste, mettre à jour la liste, et forcer le masquage du ComboBox (qui dans le cas d'un ajout se réaffiche, alors que l'emplacement inscrit en J8 étant valide, il devrait se masquer). La liste est par ailleurs nommée, en plage dynamique (nom qui s'adapte aux variations du nombre d'éléments de la liste), à voir dans le gestionnaire de noms.



Modifié par ferrand le 28/05/2015 13:26
ferrand
 Posté le 06/06/2015 à 13:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Je vois que ma suggestion t'a rendu coi !

Bref ! il y manque toujours le complément (rapide à faire toutefois, mais je ne me souviens plus si je l'ai fait sur le modèle précédemment traité...)

Peu importe, ta problématique m'a lancé sur un exercice : ne conserver que les feuilles Accueil, Base et Liste, et procéder aux opérations au moyen d'un Userform (un seul Userform pour tout). Pour illustrer :

(Les TextBox s'affichent au survol des boutons.)

Je n'ai pas testé en détail encore, mais le Userform est conforme au lancement de chacune des opérations.

NB- Les images sont réduites par rapport aux dimensions réelles.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
interdire une valeur dans une cellule en fonction d'une autre cellu
rechercher une valeur de cellule suivant une autre
EXCEL MAJImpacter valeur cellule sur autre cellule
Récupérer 1 valeur d'1 cellule à 1 autre
Recopie cellule dans un autre classeur
afficher une cellule en fonction d'une autre cellule
modification automatique valeur cellule
valeur par défaut d'une cellule
Excel: valeur cellule impliquée dans calcul ailleurs -> connexions
transfert d'une cellule vers une autre
Plus de sujets relatifs à Effacer cellule par rapport a la valeur d''une autre
 > Tous les forums > Forum Bureautique