Déplacer la copie de données d'un UserForm en fonction d'une Combobox

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
b
body71
Nouveau venu
Nouveau venu
Messages : 1
Inscrit le : 2 mars 2020
Version d'Excel : 2010 FR

Message par body71 » 2 mars 2020, 11:36

Bonjour à tous,

Je viens de rejoindre la communauté afin de me former sur la programmation VBA sous excel.

Voilà mon problème.

- J'ai créer un UserForm ou je rentre des données sur la gestion de 3 locataires (date de loyer, mois du loyer, montant, mode de paiement…)
- J'ai mis une combobox avec 3 choix (locataire 1, locataire 2, locataire 3).

Et pour finir un bouton "valider".

Je voudrais qu'en fonction du choix de la Combobox, le bouton "valider" renvoie les données du UserForm sur une autre page excel, par exemple "loyers", mais en déplaçant ces données suivant la réponse.

Par exemple du style de résultat voulut,
sur la feuille "loyers"

Locataire 1:
Départ des données à partir de la cellule A5
Incrémenter les lignes suivantes jusqu'à A17 à chaque validation du UserForm et avec le choix Locataire 1 de la combobox.

Locataire 2:
Départ des données à partir de la cellule A20
Incrémenter les lignes suivantes jusqu'à A32 à chaque validation du UserForm et avec le choix Locataire 2 de la combobox.

Locataire 3:
Départ des données à partir de la cellule A35
Incrémenter les lignes suivantes jusqu'à A47 à chaque validation du UserForm et avec le choix Locataire 3 de la combobox.

Résultat final:

Locataire 1:
02/01/2020 Loyer JANVIER "nom du locataire 1" la somme de: 300€ payé par virement
05/02/2020 Loyer FEVRIER "nom du locataire 1" la somme de: 300€ payé par virement
03/03/2020 Loyer MARS "nom du locataire 1" la somme de: 300€ payé par virement


Locataire 2:
10/01/2020 Loyer JANVIER "nom du locataire 2" la somme de: 400€ payé par chèque
15/02/2020 Loyer FEVRIER "nom du locataire 2" la somme de: 400€ payé par chèque
13/03/2020 Loyer MARS "nom du locataire 2" la somme de: 400€ payé par chèque


Locataire 3:
10/01/2020 Loyer JANVIER "nom du locataire 3" la somme de: 250€ payé par chèque
15/02/2020 Loyer FEVRIER "nom du locataire 3" la somme de: 250€ payé par chèque
13/03/2020 Loyer MARS "nom du locataire 3" la somme de: 250€ payé par chèque


J'espère avoir été suffisamment explicite.
En attente d'une réponse.

Cordialement.
B
Benead
Membre fidèle
Membre fidèle
Messages : 478
Appréciations reçues : 2
Inscrit le : 15 octobre 2011
Version d'Excel : 2007 FR 32bits- 2013 FR 64bits

Message par Benead » 2 mars 2020, 18:40

Bonjour,

Avant que tu n'ailles trop loin dans le développement, approfondi bien le besoin et surtout évite de conditionner les locataires sur une plage de cellules.
Quand tu dis : Locataire 1 de A5 à A17, c'est pour les mois de l'année ? 13 mois ???
Prévois une gestion type BDD avec une feuille Locataire, une ligne par locataire avec ses données de base (adresse, téléphone, mail, date de loyer..., l’identification du locataire ne doit pas de faire sur son nom, mais sur un ID (code numérique ou alphanumérique court, moins de 10 caractères, type code client). Il faut une autre feuille pour les appels de loyer et peut-être une autre pour les règlements. Si beaucoup de données, il serait certainement préférable d'avoir deux feuilles, une pour les loyers et une pour les règlements. Sur ces feuilles, l'ID doit obligatoirement s'y trouver, c'est ce code qui fera le lien entre le locataire, les loyers et les règlements.
A chaque appel de loyer, quelque soit le locataire on met en dernière ligne l'ID, la date, le montant du loyer. Idem pour le règlement.

Pour savoir qui doit combien, il faut faire du reporting genre TCD ou charger un Userform avec un ListBox ou ListView (plus performant).
A+
Benoît Marchand
[Benead]
Avatar du membre
Xmenpl
Membre impliqué
Membre impliqué
Messages : 2'780
Appréciations reçues : 196
Inscrit le : 16 mai 2018
Version d'Excel : 2003 à 2013

Message par Xmenpl » 3 mars 2020, 13:31

Bonjour,
Tout a fait d'accord pour éviter des plages différentes sur un même onglet.

Le plus simple : le Userform saisie toutes les données dans un même onglet et l'ajout un tableau croisé dynamique permet le résumé ou le trie par locataire.

Le plus spécifique : Puisque tu as déjà une combobox avec le nom des locataires alors très facile de nommé 3 onglets avec
le nom de ces trois locataires.
Ensuite dans ton code de saisie tu actives l'onglet concerné en fonction de combobox.value
Ainsi chaque saisie sera attribuée au locataire concerné.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message