Microsoft 365 2ème Combox n'affiche que les IMEI disponible

Piment

XLDnaute Occasionnel
Bonjour à tous
Je reviens une fois de plus vers vous afin de m'aider à résoudre une difficulté.
J'ai un tableau qui est constitué de deux zones: 1 zone Entrée stock et une zone sortie stock.
J'ai 2 comboBox en cascades.
Après un choix dans la 1ère comboBox, je voudrais que la 2ème combobox n'affiche que les IMEI qui ne sont pas sortis, qui sont donc disponibles.
Je joins un fichier minimaliste (compliqué pour anonymiser le fichier de base).
Avec Tous mes remerciements.
 

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie,
Comme il n'est pas question de transformer le tableau en plage, j'ai essayé de transposer le code du bouton "Valider" de la feuille "RecensementMatériel".
J'ai tenté d'adapter comme suit:
VB:
With Worksheets("NouvelleAffectation").Select
    Set WsL = Sheets("NouvelleAffectation")
    Set Tbl = WsL.ListObjects("t_Nouvelle_Affect")         'ou se trouve tbl qui est l'objet appelé tableau1
         L = Tbl.ListRows.Count + 1
    End With
              
    With Worksheets("QRCodes_NouvAffect").Select
        Set Wsa = Sheets("QRCodes_NouvAffect")
           Set Tbl_QRCodes_NouvAffect = Wsa.ListObjects("Tbl_QRCodes_NouvAffect") 'ou se trouve tbl qui est l'objet appelé tableau1
                Tbl_QRCodes_NouvAffect.ListRows.Add                               'ici on rajoute une ligne au Tableau Tbl_QRCode
                Ligne = Tbl_QRCodes_NouvAffect.ListRows.Count + 1    'pour positionner le nouvel enregistrement après la dernière ligne du tableau
                
       [COLOR=rgb(0, 0, 0)] Range("A" & Ligne).Value = Sheets("NouvelleAffectation").Range("A" & L).Value & .Range("D" & L).Value & .Range("E" & L).Value _
        & .Range("G" & L).Value & .Range("H" & L).Value & .Range("I" & L).Value & .Range("J" & L).Value & .Range("L" & L).Value _
        & .Range("M" & L).Value & .Range("N" & L).Value & .Range("O" & L).Value & .Range("P" & L).Value & .Range("Q" & L).Value & .Range("R" & L).Value[/COLOR]
    End With
              
    Range("A2").Select
    Dligne = Selection.End(xlDown).Select
    Range("DLigne").Activate
    
   Application.ScreenUpdating = False
   Call QR_LigneActiveNA 'Active le module 4 qui permet de générer le QRCode
        
   MsgBox ("Nouveau QR Code Généré")   'Informe qu'un QR Code a été généré dans le tableau sur la feuille QRCodes
mais il beug: "Objet requis" , et il surligne la ligne Range("A" & Ligne).Value=etc...
Je ne peux pas me contenter de la situation.
J'ai vidé le tableau des QR Codes, et à ma grande surprise, il garde en mémoire les données avant suppression des lignes.
Cela n'est pas viable.
Si tu voulais bien réfléchir au problème et m'apporter une solution?
Grand merci à toi.
Claude
 

ChTi160

XLDnaute Barbatruc
Re
Autre chose a ne pas faire
Tu appelles le Tableau temporaire qui doit recevoir les Données, comme ton Tableau Structuré
VB:
Set Tbl_QRCodes_NouvAffect = Wsa.ListObjects("Tbl_QRCodes_NouvAffect")
je suis sur le Fichier Lol
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
Autre Constatation
tu as mis un seul ""
VB:
Range("A" & Ligne).Value = Sheets("NouvelleAffectation").Range("A" & L).Value & _
                                                        .Range("D" & L).Value & _ 'Ici Manque Sheets("NouvelleAffectation")
                                                        .Range("E" & L).Value & _ 'Idem
                                                        .Range("G" & L).Value & _ 'Idem
                                                        .Range("H" & L).Value & _ 'Idem
                                                        .Range("I" & L).Value & _ 'Idem
                                                        .Range("J" & L).Value & _ 'Idem
                                                        .Range("L" & L).Value & _ 'Idem
                                                        .Range("M" & L).Value & _ 'Idem
                                                        .Range("N" & L).Value & _ 'Idem
                                                        .Range("O" & L).Value & _ 'Idem
                                                        .Range("P" & L).Value & _ 'Idem
                                                        .Range("Q" & L).Value & _ 'Idem
                                                        .Range("R" & L).Value     'Idem
Jean marie
 

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie,
J'espère que tu as passé un bon Weekend?
Pour répondre à ta question: je pense que "kr" est la dernière ligne non_vide du tableau de la feuille active et 1 la colonne "A" et 2 la colonne "B" de cette ligne.
Mais je n'ai aucune certitude sur ce que j'avance. Ce code, je l'ai récupéré sur le Forum et je l'ai intégré à mes codes.
Je t'informe que ça y est, tout fonctionne apparemment correctement.
J'ai appliqué les modifications que tu m'as transmises au post 35. J'avais toujours un problème puisqu'il ne me générait pas le QRCode. Le problème se situait au niveau de la désignation de la ligne où il devait récupérer les données pour générer le QRCode. La définition de la dernière ligne n'était pas bonne: il se plaçait sur la dernière ligne vide du tableau: donc il ne pouvait générer un QRCodes puisque la ligne était vide.
Concernant le mal que tu as à suivre les procédures, je le comprends. J'ai parfois du mal, moi aussi, à me suivre.
Alors si tu veux me proposer quelque chose de plus sain, je suis preneur, et plutôt 2 fois qu'une!
Bonne journée à toi.
Claude.
 

ChTi160

XLDnaute Barbatruc
Bonjour Claude

Je regarde ce que je peux améliorer Lol
Question:
Pourquoi mets-tu comme Nom de tes QRcode , L'ensemble des Données de la Colonne A de tes Feuille ou tu génères ces QRCodes? Pourquoi pas le Code de Référence seul ? (il est Normalement Unique
Exemple : "QR_M-2023-100"
Bonne fin de Journée
Jean marie
 

Piment

XLDnaute Occasionnel
Re:
Si j'ai bien compris ta question: lorsqu'on lit le QRcode, je dois avoir l'ensemble des données concernant le matériel : Réf/Nom de l'agent/La Direction.
Le QRCode me dit où se trouve le Matériel et à qui est affecté le Matériel.
Mon propos ici concerne la feuille "RecensMatériel". C'est le point de départ de tout le process.
Les QrCodes de la feuille "QRCode_NouvAffect" est généré à partir de la feuille "NouvelleAffectation". il me donne tous les mouvements du Matériel. On sait au départ où il était, quand il a changé de destination.
Cela permet donc la traçabilité des différents matériels.
J'espère avoir apporté un éclairage plus précis. Si ce n'est pas le cas, n'hésite pas à demander.
Merci à toi.
Bonne fin d'après-midi.
 

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie.
Je n'avais pas compris ta question.
Alors, pour te répondre, je n'en sais rien!
Je n'avais même pas vu!
Lorsque le QRCode est généré, il prend apparemment comme nom le contenu de la cellule. La ligne de code qui le défini se trouve dans les modules 4 et 5. Comme je te l'ai dit, ce code je l'ai récupéré sur un Forum. Je ne maîtrise pas son contenu. Je le découvre au fur et à mesure des difficultés rencontrées.
Je n'ai pas encore testé, mais je vais modifier cette ligne de code, et voir ce qui se passe.
Merci encore de ton aide.
Bonne journée à toi.
 

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie,
Tu vas Bien?
J'ai rectifié le nom des QRCodes. Il affiche maintenant la Réf du matériel (M-2023-098). Ce code, que j'ai récupéré sur le Forum, est de "HASCO". Je vais le citer dans le programme. En passant, je le remercie pour le partage.
Dans l'attente, je te souhaite une bonne journée.
Claude.
 

Piment

XLDnaute Occasionnel
Re:
Pour renommer le QRcode, au moment où il est généré, vas dans module 4, et

VB:
Sub QRCODENA(kr As Long)
Dim t As Variant, oldCell As Range, CelV, L
Dim WsL As Worksheet
Dim sID As String, sLink As String, sPict As Object
Dim Tbl_QRCode As Object
Dim t_Nouvelle_Affect As Object

With Sheets("NouvelleAffectation")
Set WsL = Sheets("NouvelleAffectation")
    Set t_Nouvelle_Affect = WsL.ListObjects("t_Nouvelle_Affect")         'ou se trouve tbl qui est l'objet appelé tableau1
         L = t_Nouvelle_Affect.ListRows.Count + 1
    End With


'retenir la cellule avant changement
Set oldCell = ActiveCell

    With Sheets("QRCodes_NouvAffect")
        t = Application.Transpose(Application.Transpose(.Cells(kr, 1).Resize(, 1).Value))
       CelV = t
       sLink = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" & CelV
       .Cells(kr, 2).Activate
       Set sPict = .Pictures.Insert(sLink)
    With sPict
            [B][COLOR=rgb(184, 49, 47)].Name = "Ref_" & Sheets("NouvelleAffectation").Range("A" & L)[/COLOR][/B]
            '--- change la taille
            .Width = 100
            .Height = 100
            '--- change la position
            .Left = .Left + 5
            .Top = .Top + 5
            '--- pour info
            Debug.Print .Name & " ajouté", , .Left, .Top
        End With

    oldCell.Activate
    '.Cells(kr, 1).RowHeight = 66
    Set sPict = Nothing
End With
End Sub
La ligne de couleur rouge permet d'affecter un un nom au QRCode.
 

Statistiques des forums

Discussions
311 720
Messages
2 081 912
Membres
101 837
dernier inscrit
Ugo