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:

piga25

XLDnaute Barbatruc
Re,
Y a t'il un moyen de ne pas retaper entièrement le n° de serie lors de l'ajout d'un nouveau materiel.
En effet lorsque je vais devoir entrer 200 à 300 mousquetons avec des N° de série qui se suivent le plus souvent.
Exemple d'un n° de série :
1726696593553.png

exemple : pour le premier je mets : 152472753A , 152472754A et 152472755A
il se peut que des n° ne suivent pas parfaitement : 152472758A, 152472759A, 152472823A etc

Donc ma question est : lorsque je clique sur le bouton ajouter, je rentre bien les données dans le tableau, par contre si je change le n° pour un second article, cela me modifie le précédent article rentrée.
Est-il possible d'ajouter une commande pour cela dans combobox4-change()
 

ChTi160

XLDnaute Barbatruc
Bonjour le fil
piga25
tu dis :
Y a t'il un moyen de ne pas retaper entièrement le n° de serie lors de l'ajout d'un nouveau materiel.
En effet lorsque je vais devoir entrer 200 à 300 mousquetons avec des N° de série qui se suivent le plus souvent.
pour quels matériels as tu des Numéros de série?
quel format ont ils
lorsque tu entres un un nouveau matériel qui a -t'il comme données a rentrer a la suite du Numéro de série ?
ne peut on imaginer un Masque (multiple choix selon matériel) pour entrer les Données ?
ne peux tu pas entrer une Ligne pour l'ensemble de tes N° de série .
une Ligne avec :
matériel : xxxxxxx | 152472753A | 152472900A | xxxxx | yyyyyyy | xxxxxx etc ? (désignation du matériel)
matériel : yyyyyyy | 152472758A | 152472759A | aaaaa | cccccccc |vvvvvvv etc ? (idem)
Bonne Journée
Jean marie
 
Dernière édition:

piga25

XLDnaute Barbatruc
pour quels matériels as tu des Numéros de série?
quel format ont ils
lorsque tu entres un un nouveau matériel qui a -t'il comme données a rentrer a la suite du Numéro de série
1 - Tous les EPI ont un numéro de série unique. Chaque matériel doit avoir un n° différent.
2 - Le format de ces n° de série varie en fonction des marques. Généralement il est situé à la fin des série de chiffre (généralement les 4 à 6 derniers)
3 - J'avais pensé qu'en cliquant sur bouton ajouter cela me rentre bien le matériel, comme cela garde en mémoire dans l'USERFORM les référence du matériel entré, il faudrait que la variable ligne s'incrémente de 1 et ainsi de suite. Ce qui permet de changer uniquement la partie du n° de série qui change.
 

ChTi160

XLDnaute Barbatruc
Re
pas tout compris mais bon ! lol
et pour cela je ne sais pas si je me fais bien comprendre !
ne peut on imaginer un Masque (multiple choix selon matériel) pour entrer les Données ?
ne peux tu pas entrer une Ligne pour l'ensemble de tes N° de série .
une Ligne avec :
matériel : xxxxxxx | 152472753A | 152472900A | xxxxx | yyyyyyy | xxxxxx etc ? (désignation du matériel)
matériel : yyyyyyy | 152472758A | 152472759A | aaaaa | cccccccc |vvvvvvv etc ? (idem)
exemple :
CordeBEAL10,5 blanche liseret bleu-vert - 100m24-230-j456 - 224-230-j456 - 3Sûr à l'emploi12:00:00 AM31/12/190912:00:00 AM15/11/2023
15/11/2024​
CordeBEAL10,5 blanche liseret bleu-vert - 50m24-230-j456 - 124-230-j456 - 4Sûr à l'emploi12:00:00 AM31/12/190912:00:00 AM16/09/2024
16/09/2025​
pas évident lol
jean marie
 

piga25

XLDnaute Barbatruc
Re
La nouvelle réglementation européenne qui doit entrer en vigueur cette année, nous oblige à avoir un registre ou chaque matériel est identifié par un n° de série unique pour les contrôles de vérification.

Auparavant nous avions la possibilité d'avoir des lots, exemple: 150 mousquetons de tel type, donc 01 seule ligne sur le registre.
Avec cette nouvelle réglementation, il me faut 150 lignes pour ce lot de mousquetons. (Merci l'Europe)

Donc quand je vais entrer ces matériels dans le fichier, je fais le faire lot par lot, ce qui me permettra d'avoir des n° de série similaire pour le lot.

En espérant avoir plus clair.
Merci
 

piga25

XLDnaute Barbatruc
juste pour imager mon idée #52 !
Re
Oui l'idée est bonne mais cela ne va pas mettre utile car dans les lots que j'ai je ne sais pas si les numéros de série se suivent ou pas. Cela serait bien si c'était moi qui gravais ces numéros, mais ce n'est pas le cas.

Je voyais plus faire une boucle pour réinitialiser la procédure boutonAjouter_Click, avec un invit dans une msgbox. Si oui, alors le nmr de ligne s'incrémente de 1, et je change manuellement la partie du n° de série dans la combobox4.
Mais il faudrait auparavant réactualisé les filtres afin que la dernière donnée soit prise en compte dans la liste de la combobox4.
 

piga25

XLDnaute Barbatruc
Re,
Un début de piste:
VB:
Private Sub boutonAjouter_Click()
    Dim lig As Integer
    lig = UBound(tbl) + 1

    If tbl(lig - 1, 1) <> "" Then
        On Error Resume Next
        With [A6].ListObject.DataBodyRange
            .Cells(lig, 1) = ComboBox1 'Description
            .Cells(lig, 2) = ComboBox2 'Marque
            .Cells(lig, 3) = ComboBox3 'Modèle
            .Cells(lig, 4) = ComboBox4 'N° de série
            .Cells(lig, 6) = CDate(TextBox4) 'Date de fabrication
            .Cells(lig, 9) = CDate(TextBox5) 'Date de mise en service
        End With
    End If
    ' Demander le nombre de lignes à ajouter
    Dim nbLignes As Integer
    nbLignes = InputBox("Veuillez saisir le nombre de lignes à ajouter :")

    ' Vérifier si l'utilisateur a saisi un nombre valide
    If IsNumeric(nbLignes) Then
        ' Boucle pour ajouter le nombre de lignes demandé
        For i = lig + 1 To lig + nbLignes
            With [A6].ListObject.DataBodyRange
                ' Copie des lignes précédentes, sauf pour la ComboBox4 qui est incrémentée
                .Cells(i, 1) = .Cells(i - 1, 1) 'Description
                .Cells(i, 2) = .Cells(i - 1, 2) 'Marque
                .Cells(i, 3) = .Cells(i - 1, 3) 'Modèle
                .Cells(i, 4) = .Cells(i - 1, 4) + 1 ' Incrémentation de la ComboBox4
                .Cells(i, 6) = .Cells(i - 1, 6) 'Date de fabrication
                .Cells(i, 9) = .Cells(i - 1, 9) 'Date de mise en service
            End With
        Next i
    Else
        MsgBox "Veuillez saisir un nombre valide.", vbExclamation
    End If
End Sub
 

ChTi160

XLDnaute Barbatruc
Re
J'ai encore rien compris lol
Je pensais que tu avais les limites des séries .... Apparemment pas lol
Oupsss mais comment fais tu pour savoir ça ?
Demander le nombre de lignes à ajouter
autre question :
tu dis :
Donc quand je vais entrer ces matériels dans le fichier, je fais le faire lot par lot, ce qui me permettra d'avoir des n° de série similaire pour le lot.
aurais tu des exemple de ce que tu as et de ce que tu veux ,
tu parles : de Lot et d'avoir des n° de série similaire pour le lot.
merci par avance
Bonne continuation
Jean marie
 
Dernière édition:

piga25

XLDnaute Barbatruc
Re,
J'ai encore rien compris lol
Je pensais que tu avais les limites des séries .... Apparemment pas lol
Oupsss mais comment fais tu pour savoir ça ?
Pour mettre à jour notre nouveau registre, nous seront obligé de lire les n° de série sur chaque matériel. En le faisant par lot, nous auront plus de change pour avoir des n° de série se rapprochant.
Dans le code que j'ai joins, c'est vrai que j'ai mis :
' Demander le nombre de lignes à ajouter Dim nbLignes As Integer nbLignes = InputBox("Veuillez saisir le nombre de lignes à ajouter :")
Je pense qu'une ligne à la fois suffit, car à la prochaine entrée, on modifie uniquement une partie du n° de série et ainsi de suite.
Cela n'est pas simple à réaliser car en plus je pense qu'il faudra faire une vérification si c'est un doublon.

Pour certains produits (genre textile cela sera simple car on va pouvoir écrire un n° de serie dessus et qui se suivent).
Par contre pour tout ce qui est métallique on ne peut pas car si on le fait on modifie les caractéristiques du produit à moins d'être équipé comme dans l'usine de fabrication d'un laser (merci aux bureaucrates de l'Europe)
 

Discussions similaires

Statistiques des forums

Discussions
315 083
Messages
2 116 041
Membres
112 641
dernier inscrit
chab77