Comment locker une cellule selection ?

jul51

XLDnaute Junior
Hello à tous,

J'utilise des UserForms en mode non modal afin que l'utilisateur puisse faire défiler une autre feuille afin de remplir un formulaire de saisie excel. Tout fonctionne parfaitement en mode modale puisqu'il n'est pas possible de modifier la selection de cellule faite en VBA via un code derriere un bouton de commande.

Néanmoins il est impossible de remplir mon formulaire sans faire défiler une feuille de calcul d'ou l'utilisation du mode non modale. MAIS j'ai besoin que la cellule selectionnée en vba ne puisse etre modifiée par une selection involontaire de l'utilisateur d'un autre cellule et qu'il ne puisse selectionner une autre feuille excel durant l'utilisation des UserForms. J'ai essayer plusieurs fontion sans succes, j'espere que l'un d'entre vous aura une idée pour solutionner mon probleme.

Merci par avance de votre aide :p
 

wilfried_42

XLDnaute Barbatruc
Re : Comment locker une cellule selection ?

bonjour jul

je ne sais pas si j'ai compris m'enfin voila mon idée

dans un module : tout en haut

Public cellule as string

dans worksheet

sub worksheet_selectionchage(byva ........)
if target.address <> cellule then range(cellule).select

dans ton userform

cellule = l'adresse ou il faut saisir sous la forme $C$1
C= colonne, 1 = ligne
 

jul51

XLDnaute Junior
Re : Comment locker une cellule selection ?

Je n'ai peut etre pas été assez claire, dsl.


En clair, j'utilise des userforms pour interger dans une base financier une opération supplémentaire. Les informations nécessairent pour remplir les infos dans l'userform (textebox et combobox) sont disponibles sur une autre feuille excel (d'ou l'affichage non modale pour acceder à cette 2eme feuille). J'ai, avec mes userforms, une fonction qui selectionne la premiere cellule de la ligne qui va etre renseigner par mes userforms. J'utilise donc un offset(0.1) pour la cellule de droite et (0.2) pour la suivante,... et ainsi de suite.

Exemple:

ActiveCell.Offset(0, 1) = UserForm12.ComboBox2

Comme les infos sont intégrer dans la ligne via un offset lié à ma cellule selectionné et que je suis en mode modale, si l'utilisateur va par mégarde me selectionner une autre cellule ou feuille, les infos de l'userforms sont insérés au mauvaise endroit.

Il existe peut etre une synthaxe du style:

feuille1.ActiveCell.ActiveCell.Offset(0, 1) = UserForm12.ComboBox2

pour au moins limiter la selection à la feuille ou la saisie à lieu. Mais apres, je veux que la cellule selectionner par vba ne puisse plus etre modifier pour que le offset insere au bonne endroit. A savoir que la ligne de saisie n'est pas la meme en fontion du produit financier et que tous les produits sont ensemble dans la base, il est donc impossible de définir une adresse fixe de type "A2", ce qui explique le offset. La cellule est trouvé via une fonction de recherche du produit financié.
Par contre, il faut que les cellules restent modifiables apres la fin de l'utilisation des userforms de saisie.

Ton code ne me parait pas répondre à mon besoin wilfried_42 mais c'est mon manque de clareté qui en est la cause, dsl.

J'espere avoir été claire?

merci à tous ;)

Jul
 

Discussions similaires

Statistiques des forums

Discussions
312 753
Messages
2 091 673
Membres
105 043
dernier inscrit
Gum110