XL 2016 Erreur dans code VBA

piga25

XLDnaute Barbatruc
Bonjour,
Dans le fichier joint, en cliquant dans une cellule du tableau cela ouvre un Userform. C'est là que j'ai un problème, après avoir renseigné les 3 combobox de l'EPI concerné, le code suivant devrait normalement me renseigner les 2 label (dernière vérification) - Je n'arrive pas a afficher la ligne qui correspond au critères des 3 combobox.
VB:
Private Sub RenseignerLabels()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim rowNum As Long

    ' Boucle à partir de la ligne 6 jusqu'à la dernière ligne non vide de la colonne A
    For rowNum = 6 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        ' Vérifie si les valeurs des cellules correspondent aux ComboBox 1, 3 et 4
        If ws.Cells(rowNum, 1).Value = Me.ComboBox1.Value And _
           ws.Cells(rowNum, 3).Value = Me.ComboBox3.Value And _
           ws.Cells(rowNum, 4).Value = Me.ComboBox4.Value Then
          
            ' Remplir Label10 avec la valeur de la colonne 11 (date de vérification)
            Me.Label10.Caption = ws.Cells(rowNum, 11).Value ' Date de vérification

            ' Remplir Label11 avec la valeur de la colonne 5 (statut)
            Me.Label11.Caption = ws.Cells(rowNum, 5).Value ' Statut

            ' Afficher le numéro de la ligne dans un label (par exemple Label12)
            'Me.Label12.Caption = "Ligne correspondante : " & rowNum

            ' Quitter la boucle une fois la ligne correspondante trouvée
            Exit For
        End If
    Next rowNum
End Sub
 

Pièces jointes

  • Registre EPI V01pour forum.xlsm
    245.9 KB · Affichages: 10
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonsoir @Jeannette
le forum est ouvert à tous

je ne vois pas ce qui est blessant
mais si tu lis les posts en entier ou je monte un peu la tension tu t’apercevra que j'en subit tout autant a peine masqué par un pseudo humour
tu t'en apercevra quand tu aura un peu de bouteille

oui on peut se tromper ; faut il encore en retenir les leçons

oui on peut très bien avoir une approche différente
a condition de la comprendre et savoir l'expliquer

ici depuis une dizaine de posts on débat sur l'utilisation de range ou listobject alors que ce que j'ai démontré ,n'en est pas le sujet

avant de s'exprimer en commençant par
"ceci ou cela ne se fait pas comme ça "
faut il en maitriser tout les aspects dans leur contexte
sinon tu enfonce le demandeur dans le brouillard

pour conclure si on regarde le dernier fichier du demandeur
c'est ma méthode qu'il a choisi je ne pense pas que c'est pour mes beaux yeux ;)

j’espère avoir répondu a ta question
 

piga25

XLDnaute Barbatruc
pour conclure si on regarde le dernier fichier du demandeur
c'est ma méthode qu'il a choisi je ne pense pas que c'est pour mes beaux yeux ;)
Bonjour le forum,
Oui en effet cette solution me conviens parfaitement car je suis toujours à la recherche des simplifications.

En effet mes premiers codes sont plus du domaine de l'apprentissage du VBA ou l'on déclare tout et nomme tout. C'est pour cela qu'il faut être ouvert dans nos démarches ce qui permets de s'améliorer et d'apprendre de nouvelles façons de coder. Je rassure tout le monde j'en suis encore très loin.
Patrick t'a méthode pour expliquer ta démarche avec l'aide de vidéo en vraiment très génial et pédagogique.

Je regarde les dernières versions apportées et vous tiens informé.
Merci à tous.
 

TooFatBoy

XLDnaute Barbatruc
En effet mes premiers codes sont plus du domaine de l'apprentissage du VBA ou l'on déclare tout et nomme tout.
C'est exactement ce qu'il faut faire pour être sûr, par exemple, de travailler sur la bonne feuille du bon classeur. 👍


C'est pour cela qu'il faut être ouvert dans nos démarches ce qui permets de s'améliorer et d'apprendre de nouvelles façons de coder.
Tout à fait !
Si seulement tout le monde pouvait être aussi raisonné. 🙏
 

ChTi160

XLDnaute Barbatruc
Bonsoir,
je me rends compte que rien ne vaut la vidéo Lol
Pour imager ce que je disais :
il faut aussi penser a effacer le "ComboBox4" !
j'ai enlevé le Lol pour plus de sérieux !
voir ce que j'ai maladroitement tenté de dire .(j'en apprends tout les Jours)
j'espère que ce sera plus compréhensible !
Cordialement
Jean marie
 

Pièces jointes

  • Cbx_Clear.gif
    Cbx_Clear.gif
    239.2 KB · Affichages: 6

ChTi160

XLDnaute Barbatruc
Re
j'ai beaucoup cherché et j'ai trouvé
j'ai mis ça !
VB:
Sub filterlist(combo, comboprime, c, cx, Optional ligne As Boolean)
    Set collect = New Collection
                    ComboBox4.Clear 'Ici
    For i = 1 To UBound(tbl)
        If tbl(i, cx) = comboprime Then
            On Error Resume Next
            collect.Add tbl(i, c), CStr(tbl(i, c))
            If Err.Number = 0 Then
                combo.AddItem tbl(i, c)
                If ligne Then combo.List(combo.ListCount - 1, 1) = i
            End If
            Err.Clear
        End If
    Next
End Sub
et chance ça marche !
j'avais aussi vu :
VB:
Private Sub CommandButton1_Click() 'Bouton de remise à blanc
    ComboBox1 = ""
    ComboBox3.Clear
    ComboBox4.Clear
    ComboBox5 = ""
    ComboBox6 = ""
End Sub
mais ça ne vidait pas le ComboBox4.Clear quand je le voulais !
en passant .
Bonne fin de Soirée
Jean marie
 

piga25

XLDnaute Barbatruc
j'ai mis ça !
VB:
Sub filterlist(combo, comboprime, c, cx, Optional ligne As Boolean)
Set collect = New Collection
ComboBox4.Clear 'Ici
For i = 1 To UBound(tbl)
If tbl(i, cx) = comboprime Then
On Error Resume Next
collect.Add tbl(i, c), CStr(tbl(i, c))
If Err.Number = 0 Then
combo.AddItem tbl(i, c)
If ligne Then combo.List(combo.ListCount - 1, 1) = i
End If
Err.Clear
End If
Next
End Sub
et chance ça marche !

Oui bien vu, car en cas d'ajout, on voit toujours les n° de série qui sont déjà pris.
 

piga25

XLDnaute Barbatruc
Bonjour le forum,
J'ai complété l'userform pour l'ajout de matériel, (marque, date de fabrication et date mise en service).
Par contre je ne saisie pas bien pourquoi les dates de fabrication et mise en service ne se renseignent pas bien.

Edit: c'est sur je vais me faire gronder 😁 par Patricktoulon car j'ai codé le module 1 à ma façon et non comme il le fait lui. Pas encore assez doué.
 

Pièces jointes

  • Registre EPI version 2-1.xlsm
    314 KB · Affichages: 3

piga25

XLDnaute Barbatruc
Elles sont cachées sous l'image
1726682972291.png
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonsoir piga25, TooFatBoy, Patrick ,le Fil
j'ai aussi remarqué que tu remplis ton Combobox1 via la propriété "Rowsource"( avec la liste description que j'ai nommée "t_Materiel") plutôt que Tableau3.
et qu'ensuite tu veux le remplir lors de l'activate du Userform.
c'est pas bon , tu n'as pas d'erreur , car tu as mis une gestion d'erreur .
VB:
'les deux fonction de remplissage
Sub RemplirComboBox1()
    Set collect = New Collection
    For i = 1 To UBound(TabTemp)
        If TabTemp(i, 1) <> "" Then
            On Error Resume Next   'ici
                       collect.Add tbl(i, 1), CStr(tbl(i, 1))
            If Err.Number = 0 Then ComboBox1.AddItem tbl(i, 1)
                        Err.Clear  'ici
        End If
    Next
End Sub
Si tu supprimes ces deux Lignes marquées Ici ,tu verras le résultat et le Message d'erreur !
j'espère ne pas avoir dis de bêtise ?
Bonne fin de Soirée
Jean marie
 

piga25

XLDnaute Barbatruc
De quoi as tu besoin dans ton Combobox1 : la Liste complète de tous tes Matériels , ou la Liste des seuls Matèriels présents dans ta Base de Données
Au début j'avais pensé que seul les matériels présents étaient suffisant, car je pensais faire un multipage. Une page pour les vérifications des matériels présents et une seconde pour les matériels ajoutés. Pour ces derniers j'ai besoin de toutes la liste des matériels (liste dynamique).
Comme la proposition de Patrick me convenait en utilisant uniquement la même façon de saisir (simplement choix du bouton masqué en fonction d'un ajout ou pas) , j'ai également ajouter un combobox et 2 textbox pour les données qui me manquaient pour les ajouts
Donc pour plus de simplicité j'ai mis en rowsource pour la combobox1 la liste dynamique des matériels.

elle est ou cette nouvelle version de l'userform?
Elle dans le post #39 le fichier joint.
 

Discussions similaires

Statistiques des forums

Discussions
315 130
Messages
2 116 569
Membres
112 787
dernier inscrit
said.souhassou