CreateObject("Scripting.Dictionary") avec 2 conditions

Chris401

XLDnaute Accro
Bonsoir à tous

Je n'arrive pas à faire tourner un code si j'indique 2 conditions au lieu d'une

Merci de votre aide
Cordialement
Chris
 

Pièces jointes

  • TRACABILITE_v02.xlsm
    185.8 KB · Affichages: 44

Chris401

XLDnaute Accro
Re : CreateObject("Scripting.Dictionary") avec 2 conditions

Bonsoir

Merci de m'aider mais ce n'est pas ça.

Actuellement, la partie du code qui fonctionne est :
Code:
If d.Offset(0, -1) = c Then Mondico(d.Value) = d.Value

Mais je veux ajouter une condition du genre :
Code:
If d.Offset(0, -1) = c And d.Offset(0, 6) = "" Then Mondico(d.Value) = d.Value

Mais là, ça bug

Chris
 

Grand Chaman Excel

XLDnaute Impliqué
Re : CreateObject("Scripting.Dictionary") avec 2 conditions

Oups, je n'avais pas regardé la bonne macro.

Rapidement, j'ai fait ceci... à essayer :
VB:
'2ème liste - Fournisseur_Produit et dessous les numéros de lot
     ligne = 2
    
    For Each c In Range(Sheets("LISTE").Cells(2, 12), Sheets("LISTE").Cells(65000, 12).End(xlUp))
     If c <> "" Then
      Set Mondico = CreateObject("Scripting.Dictionary")
      
      For Each d In Range(Sheets("ARRIVAGE").Cells(2, 5), Sheets("ARRIVAGE").Cells(65000, 5).End(xlUp))
      
        'Avec une seule condition c'est OK
        'If d.Offset(0, -1) = c Then Mondico(d.Value) = d.Value
        
         '*** Avec 2 conditons - Cette façon d'écrire ne fonctionne pas
        If d.Offset(0, -1) = c And d.Offset(0, 5) = "" Then Mondico(d.Value) = d.Value
        
      Next d
     
      Sheets("LISTE").Cells(ligne, 14) = c
      Sheets("LISTE").Cells(ligne, 14).Font.Bold = True
      
      If Mondico.Count Then
         Sheets("LISTE").Cells(ligne + 1, 14).Resize(Mondico.Count) = Application.Transpose(Mondico.items)
         ActiveWorkbook.Names.Add Name:=Replace(c, " ", "_"), RefersTo:=Sheets("LISTE").Cells(ligne + 1, 14).Resize(Mondico.Count)
         ligne = ligne + Mondico.Count + 1
      End If
     End If
    Next c
    Sheets("LISTE").Columns("N:N").NumberFormat = "@"
    Sheets("LISTE").Columns("N:N").Copy Sheets("LISTE").Cells(1, 14)
 

Discussions similaires

Réponses
2
Affichages
127

Statistiques des forums

Discussions
312 166
Messages
2 085 889
Membres
103 019
dernier inscrit
Eliot_1