[VBA] triple combobox

ced30l

XLDnaute Nouveau
Bonjour,

je suis en train de faire une base de donnée.
j'ai trouvé un modèle sur le site que je modifie, maintenant je bloque.

Explication : je veut gérer des compte rendus d'entretien sur différents appareils.
via une boite de dialogue je rentre toutes mes données je valide, et ça copie dans un tableau, pour ça c'est ok.
maintenant quand je veut voir ses données j'ouvre une boite de dialogue, une combobox pour la référence, puis une combobox pour le numero de serie (en fonction de la ref art choisi) et mes données apparaissent dans les textbox.

probleme, sur le modèle trouvé j'ai ça qui fonctionne très bien mais pour une combobox seulement:

Private Sub REFART_Change()
Dim Lgn&
Lgn = REFART.ListIndex + 1

With Tableau
NNO.Value = .Cells(Lgn, 4)
DT.Value = .Cells(Lgn, 2)

DSN.Value = .Cells(Lgn, 5)
AR.Value = .Cells(Lgn, 6)
MDP.Value = .Cells(Lgn, 7)
FS.Value = .Cells(Lgn, 8)
HH.Value = .Cells(Lgn, 9)
IC.Value = .Cells(Lgn, 10)

End With
End Sub

comment puis-je intégrer le numéro de série, et aussi j'aurais vite un soucis quand un même équipement apparaitra deux fois dans mon tableau donc j'aimerais rajouter une autre combox qui en fonction de la ref art et du numero de serie, me propose les date de passage de cette article et une fois la date choisie mes données apparaissent.

j'espère que vous avez compris ce que j'aimerais car moi là je suis dépassé.

Merci
 
Dernière édition:

roro69

XLDnaute Impliqué
Re : [VBA] triple combobox

Bonjour ced;
Pour la modif essaye ceci:
Private Sub CommandButton2_Click()
Dim Cel As Range
DT.Value = Format(DT.Value, "m/d/yyyy")
Set Cel = Ligne2.Find(DT)
If Cel Is Nothing Then MsgBox "rien": Exit Sub
With Cel
.Offset(0, 1) = NNO
.Offset(0, 2) = DSN
.Offset(0, 3) = MDP
.Offset(0, 4) = AR
.Offset(0, 5) = HH
.Offset(0, 6) = FS
.Offset(0, 7) = IC
End With
Sheets("Accueil").Select
Range("A3").Select
Unload Me
End Sub


PS:
En fait le code complet fonctionne bien, maintenant si on décide de chercher un nouvel article , ça coince, je suis obligé de quitter le programme (le fichier excel en lui-même) et de le redémarrer.
c'est bizarre çà ce bloque à quel moment?
Chez moi pas eu encore ce souci......Avoir
A++
 

ced30l

XLDnaute Nouveau
Re : [VBA] triple combobox

Salut roro69, c'est bon, pour les modifs c'est ok, et avec ton fichier, je n'ai plus de soucis, je ne sais pas trop pourquoi, j'ai peut être supprimer une ligne ou un caractère dans le code, je ne sais pas.

mais maintenant c'est bon.

Merci beaucoup pour ton aide, encore une fois.
 

ced30l

XLDnaute Nouveau
Re : [VBA] triple combobox

Bonjour à tous,

Le fichier que j'ai fait avec énormement d'aide du forum, à un soucis.
Il fonctionne à peu près bien sur Excel 2007, mise à part une actualisation.

En revanche au boulot, je suis sous excel 2003, et malheuresement, là, la fonction des triple combobox, soit ne m'affichent rien, soit me lance le VBA, userform2 et DT_Change.

Problème, mes connaissances en VBA sont très limités et la je ne sais pas quoi faire du tout. Je vous joint mon fichier avec un complément d'information de mon soucis.

Merci d'avance.
 

Pièces jointes

  • base de donnée Banc ECLAT - Copie.xls
    197.5 KB · Affichages: 76

ced30l

XLDnaute Nouveau
Re : [VBA] triple combobox

Je viens d'installer un Excel 2003 sur un de mes PC de manière à faire des tests, et donc je peut affiner mon problème principale.
Voici mon code et en Rouge les lignes qui bug avec le message "Erreur de compilation : Projet ou Bibliothèque introuvable" :

Dim F As Worksheet
Dim c, Mondico
Dim Ligne1, Ligne2 As Range
Dim recherche As String

Private Sub CommandButton4_Click()
Unload Me
End Sub
Private Sub SN_Click()
Dim Cel As Range
DT.Clear
For Each Cel In Ligne1
If Cel Is Nothing Then Exit Sub
If Cel = Ligne1.Find(SN) Then
DT.AddItem Cel.Offset(0, 1)
End If
Next Cel
End Sub
Private Sub Userform_Initialize()
Set F = Worksheets("UUT")
Set Ligne1 = F.Range("b3", F.Range("b65536").End(xlUp))
Set Ligne2 = F.Range("c3", F.Range("c65536").End(xlUp))

Set Mondico = CreateObject("Scripting.Dictionary")
For Each c In Range(F.[A3], F.[A800].End(xlUp))
If c.Value <> "" Then Mondico.Item(c.Value) = c.Value
Next c

Me.PN.List = Mondico.items

End Sub
Private Sub DT_Change()

Dim Cel As Range
recherche = Format(DT.Value, "m/d/yyyy")
Set Cel = Ligne2.Find(recherche)
If Cel Is Nothing Then Exit Su
With Cel
NNO = .Offset(0, 1)
DSN = .Offset(0, 2)
MDP = .Offset(0, 3)
AR = .Offset(0, 4)
HH = .Offset(0, 5)
FS = .Offset(0, 6)
IC = .Offset(0, 7)
End With


End Sub

Private Sub PN_Change()
If Me.PN <> "" Then
Me.SN.Clear
Me.DT.Clear
'Me.TextBox1 = ""
Set Mondico = CreateObject("Scripting.Dictionary")

For Each c In Range(F.[A3], F.[A800].End(xlUp))
If c = Me.PN And c.Offset(, 1).Value <> "" Then
Mondico.Item(c.Offset(, 1).Value) = c.Offset(, 1).Value
End If
Next c
Me.SN.List = Mondico.items
End If
End Sub



'Modifier les données des Textboxs
Private Sub CommandButton2_Click()
Dim Cel As Range
DT.Value = Format(DT.Value, "m/d/yyyy")
Set Cel = Ligne2.Find(DT)
If Cel Is Nothing Then MsgBox "rien": Exit Sub
With Cel
.Offset(0, 1) = NNO
.Offset(0, 2) = DSN
.Offset(0, 3) = MDP
.Offset(0, 4) = AR
.Offset(0, 5) = HH
.Offset(0, 6) = FS
.Offset(0, 7) = IC
End With
Sheets("Accueil").Select
Range("A3").Select
Unload Me
End Sub

Si celà peut aider quelqu'un à me dépanner, ou bien changer complétement le code. je cherche sur le forum des exemples mais pour le moment, je ne trouve pas grand chose, je trouve bien des combobox en série, mais pas d'affichage de données dans les textbox en fonction de la recherche des combobox.
 

roro69

XLDnaute Impliqué
Re : [VBA] triple combobox

Bonjour
Normalement
dans la barre d'outils vba tu ouvres outils/Références/Dans la fenetre qui s'ouvre tu décoches "Manque:Ref editcontrol"
A++
PS: Par contre n'oublie pas que lorsque tu modifies ou ajoute des dates de les formater au bon format date;sinon le programme en filtrage ne les reconnait plus.
 
Dernière édition:

roro69

XLDnaute Impliqué
Re : [VBA] triple combobox

Bonjour
voici "REF EDIT" est une dll liées aux traitements des chaines de caractères.comme ceLLE ci: Format();donc l'application fait appel à la références REFEDIT.DLL et quelquefois cette dll; si on commence à programmer une appli avec excel 2007 et dans un répertoire differents que excel 2003 ;donc quand on retravailles l'appli avec excel2003 l'appli ne retrouve donc pas cette dll ;donc quand on décoches le manquant l'appli va automatiquement se référer à cette dll mais maintenant dans le repertoire excel2003
A++
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] triple combobox

Bonjour
Ce dernier problème vient d'une référence manquante
Il suffit de la décocher sous VBE dans Outils, Références.
À part ça, si ça peut vous intéresser, j'ai un module capable de fabriquer des listes sans doublons emboîtées avec conservation des numéros de lignes sources à partir de plusieurs colonnes d'une plage.
À +

Bonjour Roro, je m'étais arrêté à la 1ère page de la discussion !
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : [VBA] triple combobox

Bonsoir.
Alors voilà un exemple d'application de mes poupées russes sans doublon.

Je n'ai pas fait le ménage, il y a aussi ma fonction Récap moins bien documentée dans la feuille, mais ce n'est pas l'objet ce soir.
Cordialement
 

Pièces jointes

  • TableauRécap.xls
    340.5 KB · Affichages: 71
  • TableauRécap.xls
    340.5 KB · Affichages: 61
  • TableauRécap.xls
    340.5 KB · Affichages: 69

Discussions similaires

  • Question
Microsoft 365 XLOOKUP
Réponses
8
Affichages
408

Statistiques des forums

Discussions
312 185
Messages
2 086 011
Membres
103 093
dernier inscrit
Molinari