Gestion base de donnée - enregistrement cellule a la suite de cellules vides

jcsev

XLDnaute Nouveau
Bonjour,

Voici mon interrogation. J'ai beau retourner le problème dans tous les sens je ne vois pas comment procéder.

J'ai un fichier qui va me servir de petite "base de donnée" de contrats, les données sont alimentées par l'export d'une application externe (un autre fichier excel). A chaque contrat, je souhaite pouvoir ajouter des "contacts" qui contiennent 3 informations (date, type, commentaire) et qui me permettrons de suivre les actions réalisées au fur et à mesure.

J'ai donc crée le fichier de base, j'ai incrémenté les données "en dur", et donc pas de soucis pour afficher tout ça dans une "fiche de synthèse".

Maintenant je souhaite ajouter des nouveaux contacts au fur et à mesure de la vie du contrat et permettre un suivi de l'activité. Dans l'absolu, j'aimerai que les contacts apparaissent du plus récent au plus ancien.

Enregistrer une cellule dans une autre, je sais faire, mais enregistrer 3 cellules à la suite des autres sur la ligne d'un n° de contrat précis... je bloque. Je vous joints mon fichier de départ.

Je vous remercie par avance de votre aide.

JC.
 

Pièces jointes

  • suivi_portefeuille.xls
    40.5 KB · Affichages: 44
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonsoir jcsev et bienvenu sur XLD,

Voici ton fichier remanié, avec ce que j'ai pu comprendre :

1 - Redéfinition de "choix_contrat" avec une plage dynamique =DECALER(BD!$A$3:$A$3;;;NBVAL(BD!$A:$A)-2) cela permet de n'avoir que des données existantes.

2 - Suppression des RechercheV, remplacés par une macro événementielle. Voir dans le fichier ci-joint. (faire Alt+F11 pour ouvrir VBE et voir la macro)

A te relire

Martial
 

Pièces jointes

  • suivi_portefeuille V1.xls
    60 KB · Affichages: 50

jcsev

XLDnaute Nouveau
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonjour,

et merci déjà pour votre interet à ma question.

J'ai bien compris le remplacement de mes formules par une macro, ça évite bien sur le risque que cette formule soit modifiée. Par contre, dans mon exemple, lorsque j'appelle le contrat 71652, rien n'apparait car il n'y a encore aucun commentaire de renseigné. J'ai ensuite ajouté un nouveau contrat dans l'onglet BD avec un 1er commentaire et se contrat apparait bien. En ajoutant dans l'onglet BD un 1er commentaire au contrat 71652, il apparait.

Ce que je souhaite in fine, c'est avoir une fiche de synthèse (je devrait dailleur renommer l'onglet en "fiche" au lieu de "formulaire") qui affiches les données du contrat demandées dans la cellule C3 avec les données de l'onglet DB (celles qui sont demandées en A7 à A13, et ça se sont des données qui sont entrées en dur dans l'onglet BD, elles ne doivent pas pouvoir être modifiées dans l'onglet formulaire).
Dans cet onglet "Formulaire" à renomer donc en "Fiche", j'aurais une partie formulaire à remplir avec les champs "date", "type" et "commentaire" et par action d'un bouton "enregistrer" associé à une macro, ajouter ce nouveau contact aux précédents dans l'onglet "BD" du contrat affiché et le voir apparaitre avec les autres commentaires du plus récent au plus ancien dans l'onglet "Fiche".

Voilà je me sui permis de préciser ma problématique. j'ai modifié un peu ton fichier que j'ai nommé V2, uniquement visuellement car le bouton n'a aucune action, c'est uniquement pour représenter le final souhaité. J'ai essayé de bricoler ta macro mais sans grand succes.

merci d'avance.

Jean-Charles.
 

Pièces jointes

  • suivi_portefeuille V2.xls
    74 KB · Affichages: 37

Yaloo

XLDnaute Barbatruc
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonjour Jean-Charles, le forum,

Voici ton fichier modifié je n'ai pas enlevé le bouton mais il ne sert à rien.

Un pe pris par le temps, je n'ai pas mis les lignes d'explications dans la macro, si tu as besoin, demandes.

A te relire

Martial
 

Pièces jointes

  • suivi_portefeuille V2.1.xls
    76.5 KB · Affichages: 35

jcsev

XLDnaute Nouveau
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Quelle rapidité, quelle efficacité, on s'approche de la solution.

Je vais être insistant et pénible peut être, mais j'aurai souhaité en fait passer par un bouton pour valider l'enregistrement du contact (il m'arrive trop "machinalement" de faire entrée), ce bouton permettrai également le rafraichissement de l'affichage pour que le contact qui vient d'être saisi apparaisse avec les autres dans les cellules B14 à DXXXXX (XXXXX car je ne veux pas imposer de limite au nombre de contact)

autrement, et là j'ai j'espère ne pas en demander trop (faut pas hesitez à le dire), mais peux t'on ajouter la possibiliter de modifier ou supprimer un contact qui apparait dans la fiche de synthèse ?

Autre soucis que j'avais évoqué dans mon post précédent, les éléments d'un contrat n'apparaissent pas dans les cellules B7 à B11 si un 1er contrat n'a pas encore été enregistré (dans mon fichier exemple le contrat 71652).

Concernant les lignes d'explication de ta macro, en effet si tu as un moment je suis preneur, car je ne veux pas jouer le profiteur de connaisseurs qui sévissent sur ce forum, je suis plus dans un esprit de comprendre pour permettre d'adapter, d'appliquer plus tard dans d'autres fichiers , et pourquoi pas un jour aider les autres (c'est comme ça que j'ai appris le HTML et les bases SQL, que malheureusement je ne peux pas utiliser au boulot, les PC sont bridés).

Toujours merci.

Jean-Charles.
 

Yaloo

XLDnaute Barbatruc
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonsoir Jean-Charles,

J'ai changé le bouton en bouton ActiveX et mis la macro directement dans la feuille Private Sub CommandButton1_Click() (C'est plus facile à s'y retrouver quand il y a beaucoup de macro)

J'ai modifié Worksheet_Change, de façon à séparer le "choix" de la cellule C3 avec le reste de la macro (que j'ai appelé Envoi).

J'ai crée Envoi pour pouvoir la réutiliser dans d'autres macro comme par exemple Private Sub CommandButton1_Click(), cela permet de réactualiser ta feuille "Formulaire" après l'envoi des données dans BD.

J'ai rajouté le bouton "Modifier", il suffit de modifier des données dans ton tableau ou dans les cellules de B7 à B11, cliquer sur "Modifier" et le tour est joué.

A te relire

Martial

PS : En y réfléchissant, tu n'es pas obligé d'avoir le bouton "Enregistrer", il suffit de modifier dans ton tableau et de faire "Modifier".
 

Pièces jointes

  • suivi_portefeuille V2.11.xls
    71 KB · Affichages: 48
  • suivi_portefeuille V2.11.xls
    71 KB · Affichages: 47
  • suivi_portefeuille V2.11.xls
    71 KB · Affichages: 44
Dernière édition:

jcsev

XLDnaute Nouveau
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonjour,

désolé pour cette réponse tardive, mais week-end chargé en déplacement.

après quelques tests, je relève 2 petits "HIC" :

1- je suis obligé de cliquer en dehors des cellules de saisie pour pouvoir ensuite cliquer les boutons
2- sur le contrat 71652 (et apparemment uniquement sur celui ci), en utilisant le bouton "Modifier", j'ai un petit bug "erreur d'execution "1004" : ligne 19 surlignée en jaune de la macro "Modifier" => Ws.Cells(i, k + 1) = Cells(j, 3). En fait le bouton fonctionne quand même car les données modifiées sont enregistrée mais j'ai une pop up d'erreur qui apparait, je clique sur "fin", et rien d'autre, je peux reprendre le cours normal des choses. je m'apperçoit en écrivant que ça le fait uniquement si c'est le 1er commentaire, pour les suivants, ça semble fonctionner sans message d'erreur.

Je vais également encore être très pénible, mais je ne peux pas supprimer un commentaire, car en mettant les cellules à blanc dans la liste des contacts et en cliquant "modifier", seule la colonne "commentaire" est effacée, et à l'ajout d'un nouveau commantaire, comme il cherche la 1ere cellule vide suivante, il mets la date dans la colonne commentaire, le type dans la colonne date du commentaire suivant, le commentaire dans la colonne type, etc... Il faudrait en fait pouvoir supprimer une ligne entière.
Mais ne t'arrache pas les cheveux la dessus, j'ai juste à modifier la date et le commentaire en indiquant "neant" pour indiquer que ce commentaire n'est pas valide.

Mais en tout cas, tu as cerné mes idées, cela correspond exactement au type de fichier que je souhaitais au final, je te remercie énormement pour cette petite appli qui va me faciliter la vie. Il me reste à comprendre ta macro pour pouvoir d'une part modifier l'ergonomie, ensuite comprendre le fonctionnement pour pouvoir me servir de ces fonctions pour d'autres applications ultérieures.

Merci encore.

Cordialement.

Jean-Charles.
 

Yaloo

XLDnaute Barbatruc
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonjour Jean-Charles, le forum,

Voici ton fichier modifié :

- Il n'y a plus de "plantade" lorsque tu n'as pas de commentaire dans ta ligne.

- Gestion des suppressions de lignes, il faut faire un double-clic sur la ligne à supprimer (de B à D), répondre à la question OUI, cela supprime la ligne puis met à jour la feuille BD.

Je n'ai pas compris ton problème N° 1 ....

A te relire

Martial
 

Pièces jointes

  • suivi_portefeuille V2.11.xls
    86.5 KB · Affichages: 31
  • suivi_portefeuille V2.11.xls
    86.5 KB · Affichages: 35
  • suivi_portefeuille V2.11.xls
    86.5 KB · Affichages: 36

jcsev

XLDnaute Nouveau
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

en fait le probléme n° 1 est le suivant (je rassure c'est pas un problème grave), mais lorsque je suis dans la cellule de saisie (n'importe laquelle), je ne peux pas cliquer directement sur le bouton, aucune action ne se déclanche. Je dois faire ENTREE pour changer de cellule ou cliquer sur une autre cellule en dehors des cellules de saisie, pour ensuite cliquer sur le bouton.
C'est peut-être tout simplement un fonctionnement normal ?

Dernière petite chose que j'avais évoqué plus haut, mais là je cale car je ne vois pas comment faire : je souhaiterai que les contacts s'affichent du plus récent au plus ancien.
Ma réflexion est que le tableau de visualisation sert à afficher les données de l'onglet BD, alors comment faire pour afficher, et appliquer un tri ???

J'ai une idée, que je pense farfelue, si j'affiche les données des contacts de l'onglet BD ailleurs (dans une autre feuille par exemple, et que je les copies dans la feuille "Formulaire", est-ce que je peux appliquer un tri ? mais dans ce Quid de la possibilité de modifier ou supprimer un commentaire? Tordu, non ?

Je suis déjà je suis déjà hyper sasisfait de ce que tu as fait, et je suis stupefais de la rapidité, moi qui mets 3 jours à écrire une macro toute simple. Bon je vais m'atteler à décortiquer ta macro pour comprendre son fonctionnement.

Cordialement.

Jean-Charles.
 

Yaloo

XLDnaute Barbatruc
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Re,

Pour le point 1 : c'est normal, tu n'as la main que lorsque ta cellule est validée, si tu es encore dans ta cellule cela ne fonctionne pas.

Pour l'ordre chronologique décroissant, vois le fichier ci-joint. Normalement cela répond à ta demande, s'il faut mettre les données dans l'ordre croissant, il suffit de changer dans la macro Tri : xlDescending par xlAscending

A+

Martial
 

Pièces jointes

  • suivi_portefeuille V2.2.xls
    93.5 KB · Affichages: 37

jcsev

XLDnaute Nouveau
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonjour,

Là je dis respect, j'ai hâte de maitriser aussi bien VBA et faire ce que je veux quand je veux... C'est parfait ! Pour moi c'est encore comme du chinois que j'arriverai à commencer à comprendre et pas encore à écrire.

Mais il y a un "mais", ce sera le dernier, je le promets. tout est parfait , et le classement par odre chronologique est topissime, mais j'ai perdu la fonction "Modifier". Quand je double clic dans une cellule à modifier, j'ai un popup qui me demande si je veux supprimer la ligne. En cliquant "OUI" la ligne est supprimée, j'aimerai garder cette fonction très pratique avec un nouveau bouton par exemple, mais pour modifier je suis obligé de le faire dans la barre de formule et ensuite cliquer sur le bouton "Modifier", je ne peux pas le faire directement dans la cellule.

Or le but au final est d'afficher le fichier en plein écran sans barre de formule, ni de titre de ligne et colonne, ni quadrillage (ça je sais faire en VB). Si je fais ainsi, je n'ai plus de barre de formule et donc la seule possibilité c'est de supprimer la ligne et la recréer avec la modification.

En tout cas bravo pour le reste. Je me permettrai de revenir vers toi ulterieurement si j'ai besoin d'explications sur tes macros, car je souhaite modifier la présentation, et le fait de déplacer, ajouter, supprimer des lignes ou colonnes impliquent une modif des macros. Donc je souhaite me débrouiller tout seul, c'est une première étape, mais si je bloque, malgré tous les commentaires que tu as indiqué dans ton code VB... je risque de t'embeter à nouveau.

Je te joint le fichier que j'ai légèrement modifié côté "ergonomie".

encore et toujours merci.

Jean-Charles.
 

Pièces jointes

  • suivi_portefeuille V2.21.xls
    211.5 KB · Affichages: 29
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Bonsoir Jean-Charles,

Dans ce cas-là, peut-on faire un clic-droit pour supprimer et un double-clic pour modifier les valeurs ?

Si la réponse est oui, tu n'as qu'à changer :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

par
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

A+

Martial
 

Pièces jointes

  • suivi_portefeuille V2.3.xls
    198 KB · Affichages: 56

jcsev

XLDnaute Nouveau
Re : Gestion base de donnée - enregistrement cellule a la suite de cellules vides

Salut,

Et bien voilà, c'est exactement que que j'avais en tête. Tu as sus le retranscrire.

Je vais donc m'atteler à décortiquer tout ça pour comprendre le fonctionnement, de façon à pouvoir l'adapter si besoin ulterieurement. Comme je te l'ai dis precedemment, je reviendrai peut être vers toi si j'ai des questions.

Et encore merci (y'en a jamais trop ).

Cordialement.

Jean-Charles.
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 010
dernier inscrit
Sys974