Pb pour enregistrer au fure et à mesure les données rentrés

Patrick.L

XLDnaute Nouveau
Bonjour, Je viens mettre vos compétences à contribution encore une fois.
Alors je suis actuellement stagiaire au sein d'une association et souhaiterais créer une interface sympa pour la saisie de consommation d'eau d'un individus.
Alors j'ai créer le fichier -ci joint avec un questionnaire et à la fin du questionnaire , la personne a un graphique qui présente ses consommation à la fin mais je bloque car je n'arrive pas à écrire les lignes pour que lorsque l'on click sur la commande "Enregistrer" , cela enregistre les réponses entrés dans une feuille "Base de données". et ré-initialize le questionnaire. pour une nouvelle saisie.

Je fait appelle a votre bonté TT

Je vous envoie le fichier joint.

Merci,
Cdl
 

Pièces jointes

  • Empreinte eau logiciel1.xlsm
    180.6 KB · Affichages: 90

Vorens

XLDnaute Occasionnel
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Salutation Patrick,


Pourquoi ne pas stocker dans des variables les réponses saisie puis la fin lorsque tu clic sur enregistrer cela attribue la valeur des variable au cellule de ton tableau base de données ? sans oublier aussi d’attribuer le bon numéro de ligne afin de ne pas écraser des données existantes.

Pour le resete du formulaire tu remet a 0 tout tes textbox lorsque tu clic sur le bouton de fin

Montextbox.text = ""

Tu devra contrôler la fin du tableau de base de données et écrire directement la valeur dans les différentes cellules (tu les garde en mémoire car tu ne le fait qu'a la fin en cas de modif c'est plus simple.

Mavariable = montextblox.texxt

Sheets("base de données").range("A" & Derniereligne).value = Mavariable

tu vois un peux comment ?

Meilleures salutations

Vorens
 

Patrick.L

XLDnaute Nouveau
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Salut Vorens,
Je te remercie pour ta réponse , mais je ne vois pas trop comment faire ce que tu m'a décris précédemment (TT)
Dsl , je suis novice dans la programmation.
Est ce que sa serait possible que tu envoie en fichier joint un exemple de ton modèle ? Sachant que , en réalité , je souhaiterais que mon table base de donnés se remplissent automatiquement une fois que le calcul de l'empreinte hydrique de la personne sera terminer . Je sais pas si c'est possible ?
 

Vorens

XLDnaute Occasionnel
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Hello,


Il faut bien comprendre qu'on ne va pas réaliser ton travail de stage à ta place. Mais te guider sur des solutions ou te réaliser quelque fonction plus complexe en VBA.

Je t'ai mis une ébauche de code au endroit que tu devrais compléter. Tu peux sans problème réaliser ton fichier. Esite pas a demander si quelque chose est pas claire.

Le premier exemple est dans le code du USF première partie questionnaire et consiste a l'enregistrement de la valeur attribuée au nombre de personne dans le foyé.

Code:
Private Sub TxtCbPersonne_Change()
    'Déclarer le nombre de personnes (non nul)qui vivent dans le foyer
 If Me.TxtCbPersonne.Value = "0" Then
    MsgBox "Veuillez saisir un nombre non nul"

  Exit Sub
 End If
   Public NombrePersonne As String
    NombrePersonne = Me.TxtCbPersonne.Text
    Sheets("Logiciel").Range("D25").Value = TxtCbPersonne.Value
    
End Sub


Si non, le comment enregistrer dans la base de donnée se trouve dans le module nommé SaveDataBase


Look ton fichier en annexe.


J’espère qu'a partir de ces exemple tu pourra terminer ton fichier Oublie pas d'y ajouter des sécurité de mauvaise saisie car pour le moment elles ne sont pas toutes présentes.


A te relire

VOrens
 

Pièces jointes

  • Empreinte eau logiciel1 (1).xlsm
    169.8 KB · Affichages: 72
  • Empreinte eau logiciel1 (1).xlsm
    169.8 KB · Affichages: 73
  • Empreinte eau logiciel1 (1).xlsm
    169.8 KB · Affichages: 73

Patrick.L

XLDnaute Nouveau
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Salut Vorens,

Encore une fois , merci pour ton aide. Je suis tout a fait d'accord avec toi , loin de moi l'idée de vous demander de réaliser pour moi mon sujet de stage , mais bien de m'orienter face à un problème que j'ai rencontré lors de la réalisation de mon "interface". Et je tiens à m'excuser si cela à donner l'impression que je demander à une autre personne de le faire pour moi.

Je réalise au cours de mon apprentissage de l'outils et du langage que Excel est vraiment un outils intéressant mais très complexe pour un novice comme moi et suis très admiratif des personnes qui se sont approprié l'outil.
En tout cas, je te suis très reconnaissant pour tes conseil et j'en prend note.
Merci encore et bonne journée ^^

Cdl,
Patrick L.
 

Vorens

XLDnaute Occasionnel
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Re,


Au contraire, VBA est très simple comme langage de programmation. Ne te gène surtout pas à nous redire si t'es bloqué quelque part ou si ton programme bug.

Dans l'exemple que je t'ai donné, il y a seulement de quoi enregistrer une seul information, Il faudra coder toutes les autres sur le même modèle.

Meilleures salutations
 

Patrick.L

XLDnaute Nouveau
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Salut , Valoren

Je suis désolé de vous déranger encore une fois , mais je ne comprends pas pourquoi sa ne fonctionne pas (TT)
Alors j'ai suivit le modèle que vous m'avez suggérer précédemment , cependant j'ai changer l'attribut "Public" par "Dim" car s'a m'affichait un message de compilation avec un message qui me disait que "l'attribut était incorrecte dans une procédure sub ou function"
J'ai suivit l'exemple pour mon Usfpremierepartie mais cela n'enregistre pas dans ma feuille base de données (TT)

Je suis vraiment dsl , je suis vraiment novice en Vba.

Est ce que c'est parce que j'ai fait une mauvaise manipulation ?
 

Pièces jointes

  • Empreinte eau logiciel1 (1).xlsm
    175.6 KB · Affichages: 66
  • Empreinte eau logiciel1 (1).xlsm
    175.6 KB · Affichages: 70
  • Empreinte eau logiciel1 (1).xlsm
    175.6 KB · Affichages: 71

Vorens

XLDnaute Occasionnel
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Salutation Patrik,


Ton problème est très simple. Sa n'enregistre rien car tes variables ne sont pas public donc dans ton sub qui save les data, les variables sont égalent a rien.

Pour remédier: déclarer les variables en public MAIS il ne faut pas le faire n'importe ou.

Les variables public doivent être déclarée "au dessus" d'un sub

Exemple:

Code:
Sub test()


Public toto As String


'Reste du code....

End Sub

Cet exemple est FAUX et lors de la compilation, tu va avoir une erreur. Donc pour que ton code fonctionne, tu déclare tes public comme ci-dessous.


Code:
Public toto As String
Public titi As String

Sub test()


Public toto As String


'reste du code

End Sub

en modifiant cela tu devrais plus avoir de problème


Meilleures salutations

Vorens
 

Patrick.L

XLDnaute Nouveau
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Salut Vorens ,
Encore une fois , je te remercie pour ton aide , en faite si j'ai bien compris ,il faut que dans un premier temps , je déclare toutes mes variables public puis que par la suite , et enlever tout mes Private devant les opération sur les variables que j'ai déclarer public ?
J'ai fait cela , mais je ne vois toujours pas les données apparaître sur ma feuille Base de données ?
Est ce que c'est parce que sa apparaît à la dernière ligne de ma feuille ?

Je te remercie encore pour le temps que tu m'as accordé pour ton aide et suis sincèrement désolé pour le dérangement .

Patrick L.
 

Vorens

XLDnaute Occasionnel
Re : Pb pour enregistrer au fure et à mesure les données rentrés

Re,


Il te faut déclarer en public et les variables et les procédure qui partage des informations. Toutes tes variables qui sont utilisées dans pluseurs sub doivent être déclarée public au tout début de ton module ou de ta feuille.

Après, il faut égallement déclarer ton sub en public.


Pour l'enregistrement j'avais pas vu de suite mais y'a une grosse cacouille.

Code:
Sheets("Base de données").Range("K2" & Lastrow).Value = Douchette

Sa va pas fonctionné, c'est déjà surprenant qu'il ai pas gnousser avant.

Code:
Sheets("Base de données").Range("K" & Lastrow).Value = Douchette

Comme sa c'est mieux.

A te relire

Cordialement

Vorens
 

Discussions similaires

Statistiques des forums

Discussions
311 707
Messages
2 081 734
Membres
101 809
dernier inscrit
HADER2024