XL 2019 Problème de transfert de données d'un textbox vers une cellule.

donpopo

XLDnaute Occasionnel
Bonjour le forum,

Grâce à votre aide, je progresse assez dans la conception de mon petit programme.
Cependant, je suis confronté un léger problème.

Lorsque je clique sur le bouton 'création d'un bail', j'encode tous les renseignements utiles.

Lorsque, sur le userform en question, je clique sur 'encoder', toute mes données sont transférées correctement dans plusieurs feuilles (feuilles BAUX, Biens, Locataires, Indexations); mais lorsque je recommence l'opération avec un autre locataire, tout va aussi bien, sauf une seule donnée n'apparait pas dans a feuille Biens.

Dans la feuille biens, doit s'encoder le n° de bail contenu dans la variable Lien_Bail. Pour vérifier, j'ai placé une msgbox qui me donne la valeur de la cellule de destination et c'est correct. Mais lorsque je visionne ma feuille Biens, il n'y apparait pas la valeur dans la ligne 'Loué O/N'.
Je ne comprends pas le problème.

J'ai joint mon programme, car ce n'est pas facile à comprendre sans lui.

Si quelqu'un a une solution à ce petit problème, je l'en remercie d'avance.
 

Pièces jointes

  • ESSAI.xlsm
    367.9 KB · Affichages: 31

donpopo

XLDnaute Occasionnel
En fait, comme j'ai déjà créé des biens et des locataires, il suffit de cliquer sur le bouton 'Création d'un bail'; là, une combobox permet de sélectionner le bien et une autre le locataire. Il est nécessaire de remplir les données relatives au bail (dates, index, année index, loyer initial et charges initiales).
Pour encoder le bail, il suffit de cliquer sur 'Encoder'. Cela encode différentes données dans 4 feuilles.

Mais à la création du second bail, le problème se pose: tout fonctionne comme prévu, mais dans la feuille 'Biens', la colonne J ne fait pas apparaitre le numéro de bail (Lien_Bail)

Dans la procédure Private Sub Bout_Enc_Bail_Click() de l'userform 'Form_Nouv_Bail', ces deux lignes m'interpellent:

VB:
            Sheets("Biens").Cells(Nr_Lign_Bien, 10).Value = Lien_Bail
            MsgBox Sheets("Biens").Cells(Nr_Lign_Bien, 10).Value

La feuille 'Biens', d'après la msgbox que j'ai intercalée reçoit bien la donnée Lien_Bail.
Or, si on consulte la feuille 'Biens', cette donnée est absente.

J'insiste bien que la première fois que l'on encode un bail, cela fonctionne.

J'espère avoir été assez clair.

Merci.
 

donpopo

XLDnaute Occasionnel
Bonjour le forum,

J'ai testé comme il faut ma procédure. J'ai su encoder les deux premiers baux, mais lorsqu'il ne me reste qu'un bien à louer, j'ai remarqué que, dans la feuille "Biens", le numéro de bail s'inscrit mais pas sur la bonne ligne. Il se met en lieu et place d'un n° de bail déjà encodé.
Il y a donc, à un moment donné, une erreur dans mes sélections de ligne avec mes variables (public) "Nr_Lign_Bien". (et aussi Nr_Lign_Locat par moment)
Lorsque je met mes variables en Public, elles gardent bien leur valeur dans toutes les procédures de mon userform ?
Je ne comprend pas.

Merci de m'aider
 

donpopo

XLDnaute Occasionnel
Je joins mon fichier où j'ai mis une msgbox me renvoyant l'adresse de la cellule sélectionnée pour encoder le numéro de bail; et cela m'affiche effectivement une mauvaise adresse.
 

Pièces jointes

  • ESSAI.xlsm
    371.4 KB · Affichages: 5

donpopo

XLDnaute Occasionnel
Bonjour Yeahou,
C’est étrange, car je viens d’essayer, et ici, n’apparaît que le 2ème étage .
Par contre, je remarque que, lorsque je sélectionne le dernier locataire encore libre, la combobox2 montre bien Ghaye comme nom MAIS reprend la civilité et le prénom de mon premier locataire dans la feuille Locataires.
C’est de là que vient mon problème décrit au début de la discussion. Lorsque j’encode le bail suivant, le numéro de bail (Lien_Bail) écrase le premier numéro de bail.
Il y a un problème de sélection de ligne avec la variable Nr_Lign_Locat, mais je me mélange les pinceaux et ne sait que corriger.

Merci de m’aider si tu le peux,
 
Bonjour Donpopo, le forum

Le problème vient apparemment de la façon dont tu gères tes références.
Tu te sers des index de liste pour déterminer la ligne à modifier hors, comme tu établis la liste de ta combobox Biens d'après des cellules non remplies, après le premier enregistrement, les lignes à modifier et les index ne correspondent plus. Il faut que tu établisses une référence fixe soit par un tableau soit par une valeur non dépendante des index (numéro de ligne ajouté avec le bien avec un caractère de séparation ou une combox multicolonne).

Cordialement
 

donpopo

XLDnaute Occasionnel
Bonjour Yeahou et le forum,
Je te remercie pour ton analyse.
Bien que je vois pas trop ce que vais entreprendre, je vais étudier le problème.
Le plus simple serait, peut-être, de laisser tous mes biens et tous les locataires dans leur propre combobox. Un message m’avertirait que lien est loué.
Ou alors, une combobox deux colonnes avec nom et nr de bail.
Je saurai au moins quels sont les biens déjà loués ?
Je ne vois pas trop. Je vais essayer.
Merci
A +
 

donpopo

XLDnaute Occasionnel
Donc, si je comprends bien, je crée une colonne reprenant le n° de ligne?

Biens
Nom n°ligne divers
pascal 2
pierre 3
paul 4

Si je sélectionne pierre, je connaitrai le n° de sa ligne (3).
Mais si je suis amené à supprimer un nom définitivement en deletant la ligne, exemple pascal, le n° dans la deuxième colonne ne correspondra pas aux n° réels de lignes.
 

Discussions similaires

Statistiques des forums

Discussions
315 146
Messages
2 116 758
Membres
112 852
dernier inscrit
Professeur 7