Bloque sur un projet: Array multidimensionnel ou Directory? Comment Faire?

tweedi

XLDnaute Nouveau
Hello le Forum!

j'ai une base de données avec les dossiers ouverts et l'étape à laquelle ils se trouvent.
Il y a des centaines de dossiers chaque jour donc le fichier fait des milliers de lignes (un exemple de la base de données et attaché, vous pouvez voir comment c'est fait, chaque jour tous les dossiers ouverts sont ajoutes et ils restent ouvert parfois 80 jours).

Le but est de voir si un dossier atteint une certaine etape et est rejeté à l'étape précédente.

En faisant cela je peux ensuite creer une nouvelle feuille avec les dossiers qui ont ete rejete, et idealement la date a laquelle ils sont repasses a l'etape precedente.

Je ne sais comment faire, je ne peux pas faire de boucle (trop long), j'ai pensé à l'array mais ici il faudrait que je stoque des paires je pense (le numero du dossier + la phase).

Avez vous une idée de la maniere dont il faut s'y prendre ici?

Merci beaucoup!
 

Pièces jointes

  • example.xlsx
    8.8 KB · Affichages: 28
  • example.xlsx
    8.8 KB · Affichages: 28

ROGER2327

XLDnaute Barbatruc
Re : Bloque sur un projet: Array multidimensionnel ou Directory? Comment Faire?

Bonjour tweedi.


Un essai, sans être sûr de répondre au problème : francophone indécrottable, je n'ai rien compris aux «_explications_» contenues dans le classeur...​


Bonne journée.


ℝOGER2327
#8029


Jeudi 19 Phalle 142 (Saint Prélote, capucin - fête Suprême Quarte)
12 Fructidor An CCXXIII, 0,7108h - fenouil
2015-W35-6T01:42:21Z
 

Pièces jointes

  • Items rétrogradés.xlsm
    22.9 KB · Affichages: 27
  • Items rétrogradés.xlsm
    22.9 KB · Affichages: 28
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Bloque sur un projet: Array multidimensionnel ou Directory? Comment Faire?

Bonjour tweedi, ROGER2327,

Un autre essai sans array multidimensionnel ni dictionary (vraisemblablement bien plus lente que ce que propose ROGER2327 que je salue)
VB:
Sub BackFrom4to3()
Dim lastrow, myArea As Range, errorArea As Range
  Application.ScreenUpdating = False
  Application.Goto Sheets("4to3").Range("a1")
  Columns("a:f").ClearContents
  Sheets("Sheet1").Columns("a:e").Copy Range("a1")
  lastrow = Cells(Rows.Count, "c").End(xlUp).Row
  If lastrow = 1 Then Exit Sub
  Set myArea = Range(Cells(2, "a"), Cells(lastrow, "e"))
  myArea.Sort key1:=[c1], order1:=xlAscending, key2:=[b1], order2:=xlAscending, Header:=xlNo
  myArea.Columns(1).Offset(, 5).FormulaR1C1 = _
      "=IF(AND(RC[-3]=R[1]C[-3],RC[-1]=""phase 4"",R[1]C[-1]=""phase 3""),R[1]C[-4],NA())"
  myArea.Columns(1).Offset(, 5).NumberFormat = Range("b2").NumberFormat
  myArea.Columns(1).Offset(, 5) = myArea.Columns(1).Offset(, 5).Value
  On Error Resume Next
  myArea.Columns(1).Offset(, 5).SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  On Error GoTo 0
  [f1] = "Back to phase 3"
End Sub
 

Pièces jointes

  • tweedi-43-v1.xlsm
    20.8 KB · Affichages: 27
Dernière édition:

tweedi

XLDnaute Nouveau
Re : Bloque sur un projet: Array multidimensionnel ou Directory? Comment Faire?

Bonjour Mapomme et Roger2327.

Mes excuses pour les commentaires en anglais dans le fichier. Les explications sont similaires a ce que j'ai décrit dans mon premier poste donc vous n'avez rien manqué.

Les deux programmes fonctionnent, celui de Mapomme permet de voir combien de fois le dossier a ete rejeté, c'est un plus, en revanche effectivement c'est beaucoup plus lent.

Roger2327 je souhaiterai comprendre comment ton code fonctionne, les Directory c'est tout nouveau pour moi, je vais faire des recherches la dessus cet aprem mais si tu as le temps et que tu peux ajouter des commentaires dans ton code (a part pour l'intersect ca j'ai compris :D) ce serait génial.

Merci a vous deux!!

Tweedi
 

ROGER2327

XLDnaute Barbatruc
Re : Bloque sur un projet: Array multidimensionnel ou Directory? Comment Faire?

Re...


En pièce jointe, une autre version peut-être plus convenable.

Pour les commentaires, je n'ai pas le temps maintenant.

L'aide fournie avec Excel (rubrique Dictionary) donne quelques renseignements.
Bien plus intéressant est le travail de M. Jacques BOISGONTIER. Allez-y sans hésiter : son site est un trésor.

Bien entendu, si vous avez besoin d'un éclaircissement sur un point précis du code, j'y répondrai dans la mesure du possible.​


Bonne soirée.


ℝOGER2327
#8030


Jeudi 19 Phalle 142 (Saint Prélote, capucin - fête Suprême Quarte)
12 Fructidor An CCXXIII, 6,2196h - fenouil
2015-W35-6T14:55:37Z
 

Pièces jointes

  • Items rétrogradés.xlsm
    29.5 KB · Affichages: 27
  • Items rétrogradés.xlsm
    29.5 KB · Affichages: 27

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson