VBA UserForm de Recherche + Mise à Jour de base de donnée

avekash

XLDnaute Nouveau
Bonsoir Chers Amis

Je viens vers vous de nouveau pour soumettre une autre difficulté que je rencontre dans le développement de mon projet qui a assez avancé grâce à vous. De quoi s'agit-il ?

En effet je suis à un stade ou il me faut rechercher dans une feuille ("CLIENTS") du classeur qui fait office de base donnée des clients dont les factures ne sont pas réglées (Référence à la colonne N "Facture réglée?" ).
L'objectif c'est d'arriver à faire ressortir à partir d'un UserForm de recherche dans une Listview (de préférence) Les résultats concernant l'objet de la recherche qui est le Nom du Client(dans un TextBox) ou l'Interlocuteur (dans un TextBox). Les résultats devront être uniquement les factures non réglées.

Aussi, il devrait être possible en double-cliquant sur un résultat dans la listview d'ouvrir un autre UserForm (Dont je n'ai pas encore mis de code) qui permette de mettre à jour la base de donnée dans la colonne L "Règlement/Acompte" en rapport avec le client.

PS : Je fais remarquer que le fichier que je vous fais parvenir contient un UserForm (Avec une ListBox que j'utilise par contrainte de ne pas savoir manipuler la Listview) de recherche avec du code pris sur le forum que j'ai essayé d'adapter. Mais malheureusement le fonctionnement n'est pas correct (Bug).

Merci d'avance pour l'aide que vous m'avez apporté et que vous continuez de m'apporté.

A vous lire très rapidement
 

Pièces jointes

  • Brouillon recherche.xlsm
    27.7 KB · Affichages: 144

fredl

XLDnaute Impliqué
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bon...
Je viens de faire un essai (joint) avec une listview (une premiere pour moi!)
Je te laisse tester :
faire CTRL+m ou lancer macro "facture" : le userform s'ouvrira.
Renseigner la societe (respecter la casse)
Cliquer sur la ligne de ton choix dans la list view créée(factures non honorées).
Le 2eme userform s'ouvre. Renseigner le montant.Valider et le tour est joué(tableau renseigné!)

Dis moi
A+
Fred
 

Pièces jointes

  • listview.xls
    67 KB · Affichages: 144
  • listview.xls
    67 KB · Affichages: 152
  • listview.xls
    67 KB · Affichages: 169

avekash

XLDnaute Nouveau
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bon...
Je viens de faire un essai (joint) avec une listview (une premiere pour moi!)
Je te laisse tester :
faire CTRL+m ou lancer macro "facture" : le userform s'ouvrira.
Renseigner la societe (respecter la casse)
Cliquer sur la ligne de ton choix dans la list view créée(factures non honorées).
Le 2eme userform s'ouvre. Renseigner le montant.Valider et le tour est joué(tableau renseigné!)

Dis moi
A+
Fred

Salut Fredl

Merci pour ton aide je teste et je te fais un retour.:)

A+
 

Papou-net

XLDnaute Barbatruc
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonjour avekash,

Ci-joint une copie de ton fichier avec une ListView fonctionnelle.

La recherche fonctionne quels que soient les noms renseignés ou pas.

Le UserForm de mise à jour affiche les n° de facture et le solde restant à régler, mais le bouton Mettre à jour n'a pas encore de code. Comme je n'ai pas encore trouvé le moyen de reconnaître la ligne concernée par le double-clic, un simple clic dans la liste affiche un message de confirmation pour enregistrer le paiement.

Espérant cette solution à ta convenace.

Cordialement.

Oups, pas rafraîchi. Salut Fred.

PS: dans ma solution, peu importe la casse dans les textbox.
 

Pièces jointes

  • Copie de Brouillon recherche.xlsm
    32.5 KB · Affichages: 143

avekash

XLDnaute Nouveau
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonjour avekash,

Ci-joint une copie de ton fichier avec une ListView fonctionnelle.

La recherche fonctionne quels que soient les noms renseignés ou pas.

Le UserForm de mise à jour affiche les n° de facture et le solde restant à régler, mais le bouton Mettre à jour n'a pas encore de code. Comme je n'ai pas encore trouvé le moyen de reconnaître la ligne concernée par le double-clic, un simple clic dans la liste affiche un message de confirmation pour enregistrer le paiement.

Espérant cette solution à ta convenace.

Cordialement.

Oups, pas rafraîchi. Salut Fred.

PS: dans ma solution, peu importe la casse dans les textbox.

Slt Papou-net

Merci pour ta contribution je vais aussi essayer ta solution et te faire un retour .:)

A+
 

avekash

XLDnaute Nouveau
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonsoir Chers Amis

J'ai testé vos différentes méthodes (fredl & Papou net).
Fredl j'aurai souhaité avoir toutes les entêtes de colonne de la listviewRecouvr comme dans la Feuil ("CLIENTS"). Aussi ajouté un Textbox pour le cellulaire sur la UserformRecherche. Le bouton modifier de l'userform bug. A part ça ton code marche super bien.

Par ailleurs, mon choix c'est porté sur la solution de Papou net mais le souci je n'arrive pas à transférer la donnée Paiement ou montant pour la mise à jour de la base de donnée. Chose qui fonctionne parfaitement avec le code de Fredl.

Ce qui m'a emmené a essayé d'adapter le code de Fredl pour le module mise à jour de la base de donnée mais cela ne marche pas; surement parce que vous n'avez pas utilisé la même méthode de codage. J'ai donc essayé par moi même un code mais celui ci ne marche pas non plus.

Je sollicite donc votre expertise pour cette dernière étape. Ci-dessous le fichier.

PS: Attention au niveau de la mise à jour de la BD si possible comment faire pour additionner les paiements qui se font successivement de sorte à ne pas remplacer systématiquement la valeur présente dans la cellule concernée de la Colonne L "Règlement/Acompte" . Si cette solution n'est pas trouvée cela fausse le solde.

Au plaisir de vous relire très rapidement.:)

Merci A+
 

Pièces jointes

  • Copie de Brouillon recherche2.xlsm
    33.9 KB · Affichages: 103

Papou-net

XLDnaute Barbatruc
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonjour,

Ci-joint copie modifiée du fichier tenant compte des dernières demandes.

Le problème se situait au niveau du Tag de TextBoxNfacture qui recevait le contenu de la colonne N au lieu du numéro de ligne. Pour y remédier, j'ai créé la variable publique FacLgn (Module1) dont je recherche la ligne sur Feuil1, colonne B.

A +

Cordialement.
 

Pièces jointes

  • Copie de Brouillon recherche3.xlsm
    32.2 KB · Affichages: 270

avekash

XLDnaute Nouveau
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonjour,

Ci-joint copie modifiée du fichier tenant compte des dernières demandes.

Le problème se situait au niveau du Tag de TextBoxNfacture qui recevait le contenu de la colonne N au lieu du numéro de ligne. Pour y remédier, j'ai créé la variable publique FacLgn (Module1) dont je recherche la ligne sur Feuil1, colonne B.

A +

Cordialement.

Bonjour Papou net

Merci pour ta réactivité et ton aide. Tout marche parfaitement bien.
Merci aussi à Fredl.

Je compte sur vous et le forum pour d'autre défis( lol en tout cas pour moi :)). Grâce à vous j'apprends beaucoup.

A+
 

vanin

XLDnaute Occasionnel
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonjour,

Ci-joint copie modifiée du fichier tenant compte des dernières demandes.

Le problème se situait au niveau du Tag de TextBoxNfacture qui recevait le contenu de la colonne N au lieu du numéro de ligne. Pour y remédier, j'ai créé la variable publique FacLgn (Module1) dont je recherche la ligne sur Feuil1, colonne B.

A +

Cordialement.
 

vanin

XLDnaute Occasionnel
Re : VBA UserForm de Recherche + Mise à Jour de base de donnée

Bonjour,

Ci-joint copie modifiée du fichier tenant compte des dernières demandes.

Le problème se situait au niveau du Tag de TextBoxNfacture qui recevait le contenu de la colonne N au lieu du numéro de ligne. Pour y remédier, j'ai créé la variable publique FacLgn (Module1) dont je recherche la ligne sur Feuil1, colonne B.

A +

Cordialement.
Bonjour, je souhaite adapter le code du fichier excel (recherche) à la base de donnée de mon fichier (BUG) mais je rencontre des difficultés, pouvez vous m'aider. l'idée c'est de pouvoir selectionner une facture en fonction du nom du client ou du commercial dans la base de donnée puis de la mettre à jour. j'ai donc trouvé interressant le fichier excel ( recherche) dont je souhaite adapter le code à ma base de données.
 

Pièces jointes

  • RECHERCHE.xlsm
    32.2 KB · Affichages: 5
  • BUG.xlsm
    944.8 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Bonjour.
Il manque déjà une référence à la bibliothèque MSComctlLib.
Je propose d'adapter mon système à un seul UserForm à vos données.
Remarque: Une ListBox à la place de la Listview risquerait moins de poser de problème de portabilité un jour ou l'autre.
Il y a d'abord un nom d'objet Worksheet Feuil1 qui n'existe pas. Celui qui assume la représentation en VBA de la feuille "baseRecouv" s'appelle Feuil13. Mais perso je le renommerais WshRecouv.
Je joins aussi un autre exemple récent avec une ListBox
 

Pièces jointes

  • CLsCAsContacts.xlsm
    210.6 KB · Affichages: 13
  • CLsCAsCedelec.xlsm
    165.2 KB · Affichages: 8
Dernière édition:

vanin

XLDnaute Occasionnel
Bonjour.
Il manque déjà une référence à la bibliothèque MSComctlLib.
Je propose d'adapter mon système à un seul UserForm à vos données.
Remarque: Une ListBox à la place de la Listview risquerait moins de poser de problème de portabilité un jour ou l'autre.
Il y a d'abord un nom d'objet Worksheet Feuil1 qui n'existe pas. Celui qui assume la représentation en VBA de la feuille "baseRecouv" s'appelle Feuil13. Mais perso je le renommerais WshRecouv.
Je joins aussi un autre exemple récent avec une ListBox
Bonjour, merci beaucoup pour vos conseils, grace à cela j'ai pu regler le problème. jai installé la bibliothèque et ca marche. je prefère garder ce fichier car il s'adapte parfaitement à ce que je recherche. ce que je souhaite faire maintenant c'est d'enregistrer les informations de chaque textbox ( N° FACTURE, MONTANT TTC, SOLDE, PAIEMENT ) du userform "UserFormMiseajrRegle" dans le tableau de la feuille "Detail recouvrement". la date à inserer dans le tableau de la feuille "Detail recouvrement" est la date du jour (date du jour d'enregistrement du paiement). Donc chaque fois que l'utilisateur clique sur le bouton "mettre à jour", les informations de chaque textbox ( N° FACTURE, MONTANT TTC, SOLDE, PAIEMENT ) du userform "UserFormMiseajrRegle" s'enregistrent dans le tableau de la feuille "Detail recouvrement" avec la date en cours pas la date de la facture. merci pour votre aide.
 

Pièces jointes

  • BUG.xlsm
    955.7 KB · Affichages: 21

Dranreb

XLDnaute Barbatruc
L'avantage de mes objetcs ComboBoxLiées et ControlsAssociés c'est que grâce à leur méthode ValeursVers il se chargent automatiquement de ventiler les valeurs des contrôles dont on leur a confié la charge dans un tableau dynamique d'une ligne à destination de la plage voulue.
 

vanin

XLDnaute Occasionnel
L'avantage de mes objetcs ComboBoxLiées et ControlsAssociés c'est que grâce à leur méthode ValeursVers il se chargent automatiquement de ventiler les valeurs des contrôles dont on leur a confié la charge dans un tableau dynamique d'une ligne à destination de la plage voulue.
Bonjour votre reponse est beaucoup technique pour moi je suis un débutant , j'ai pas compris grand choses. mais est il possible de m'aider comme expliqué plus haut?
 

Dranreb

XLDnaute Barbatruc
Qu'est ce que vous ne comprenez pas dans les deux exemples fournis. Qu'est-ce que vous aimeriez pouvoir écrire comme programmation plus simple à vos yeux dans l'UserForm ? Sait-on jamais, peut être serait-il possible d'écrire les modules de service en conséquence de ça, mais j'en doute …
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 107
Messages
2 085 354
Membres
102 873
dernier inscrit
yayo