Récupération de valeur - Base de donnée

Bonjour,

Je travaille sur un petit "logiciel" comprenant plusieurs base de donnée et j'ai un soucis concernant la récupération de certaines valeur.

Je joint un fichier pour que mon explication soit plus claire...

J'ai donc une base de donnée correspondant à des relevés de compteurs qui est remplie grâce à un userform comprenant une comboBox, quelques checkbox et textbox.

Jusque là tout va bien, mon userform permet de créer une nouvelle ligne correspondant à un nouveau relevé.

Cependant c'est là que je bloque :

La ComboBox me permet de sélectionner l'armoire.

J'aimerais que lorsque je sélectionne l'armoire, le programme détecte si un relevé à déjà été réalisé sur cette armoire et qu'il m'inscrive dans deux textbox, pour l'un, la date du dernier relevé et dans l'autre la consommation de ce dernier.

J'espère avoir été clair dans mes explication, le fichier joint permet juste de voir comment est organiser la base de donnée, il n'y a pas le code, ça ne me semblait pas nécessaire mais s'il le faut je pourrais le mettre dans un second fichier.

Je vous remercie d'avance !

Bonjour,

Malheureusement, ton fichier ne contient aucun code, ni userform, ni textbox, combobox.

Il n'y que quelques données en feuil1.

Gelinotte

Bonjour,

Désolé, je pensais que le code ne serais pas utile pour comprendre mon objectif.

Voici un second fichier avec le code qui me permet d'entrer un nouveau relevé.

Bonjour,

Désolé du délais, mais quand j'ai téléchargé le fichier ce matin, il n'y avait pas de macro. Peut-être que ma machine est trop mêlée

Pour mes tests, car j'apprends en même temps, j'ai renommé la combobox.

Voir si ça convient ...

Private Sub CBox_Armoire_Change()
Dim DerLig As Integer
Dim X As Integer

With Sheets("Feuil1")   'sélection de al feuille
DerLig = .[A1048576].End(xlUp).Row   'détermine la dernière ligne

For X = DerLig To 4 Step -1
   If .Cells(X, 1).Value = Me.CBox_Armoire.Value Then
      Me.TxtB_DerReleve = .Cells(X, 2).Value
      Me.TxtB_Compteur = .Cells(X, 3).Value
      Me.TxtB_Type = .Cells(X, 4).Value
      Me.TxtB_PointsHS = .Cells(X, 6).Value
      Me.TxtB_Consom = .Cells(X, 7).Value
      Me.TxtB_Date = ""
   End If
Next X
End With
End Sub

Gelinotte

Bonjour Gelinotte et désolé de répondre un mois après..

Je me suis concentré sur d'autres problèmes et parties de mon logiciel et j'en ai complètement délaissé cette partie

Aujourd'hui je reviens dessus, ayant toujours le même problème.

J'ai donc testé ton code, je récupère bien les données cependant je ne récupère pas les données correspondant au dernier relevé en date.

Bonjour,

C'est bon, Je regarde cela ..... à force de relire, j'ai fini par comprendre...

Gelinotte

Bonjour,

Si j'ai bien compris la demande ...

Voici une version où je dois trier la Feuil1 (via macro dans le module1), car, je ne sais pas faire autrement.

En attendant qu'un meilleur passe par derrière pour proposer quelque chose de mieux ... Je trouve cela très instructif.

Gelinotte

Bonjour Gelinotte, Merci pour ta réponse !

J'ai bien essayé ton code, il fonctionne très bien sur le fichier joint mais lorsque j'essai de l'inclure dans mon projet de logiciel, ça ne fonctionne pas, je recherche encore le problème afin d'essayer de trouver une solution.

Cependant, j'ai peut être trouvé une solution de contournement à l'aide d'identifiant, que tu pourra retrouver dans la pièce que je joint, colonne H.

Je me demande s'il est possible de retrouver le dernier relevés à l'aide de ces identifiants. Par exemple, on choisit dans la comboBox "Armoire1" et la macro recherche le dernier identifiant soit "Armoire1#3" pour recupérer ensuite dans les textbox la date et le nombre de pointHS.

Si tu as une idée ? Je te remercie d'avance

Bonjour,

Rechercher sur la colonne A et lire en B ou sur la colonne A et lire en H revient passablement au même.

Si le code ne fonctionne pas sur le fichier de travail ... est-ce que le nom de la feuille et le même ?

Sinon, il faut corriger le nom en :

module1 > LeTrie

Uf > UserForm_Initialize

Uf > ComboBox1_Change

Si ce n'est pas cela ... as-tu tenté un pas à pas (touche F8) dans le code du UF ?

Ou encore est-ce que le fichier test, présenté sur ce forum, représente bien la structure du fichier de travail ? Sinon, il faut évidement l'adapter.

Aussi, dans l'Uf, les noms du Combobox, des textbox et des boutons de commande sont-ils identiques? Sinon, il faut évidement les adapter.

Bon courage

Gelinotte

Merci pour toutes tes informations !

J'ai bien fait attention à toute ces étapes mais je ne sais pas pourquoi le code ne fonctionne pas sur mon fichier de travail.

Cependant, j'ai réussi à contourner mon problème et j'ai trouvé une solution qui fonctionne, notamment grâce à ton aide.

Je te remercie encore !

Bonjour,

Si ça fonctionne ... Good.

Dans l'autre version, est-ce que tu as bien copié le module1 (avec sa macro) dans le fichier de travail ?

A+

Gelinotte

Rechercher des sujets similaires à "recuperation valeur base donnee"