Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Obtention d'un array à partir de 2 autres (VBA)

  • Initiateur de la discussion Initiateur de la discussion chatounet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chatounet

Guest
Bonjour à vous,

Mon problème est le suivant :
  • J'ai une liste de dates array w() contenant toutes les dates d'un mois,
  • une autre liste de dates array y() contenant certaines dates du même mois
Je souhaite obtenir un array formé des dates de ce mois différentes de y() (Pour faire court : w() - y())

Merci pour votre attention
 
essaie ceci :
Code:
Private Function TABLP1()
  TABLP1 = w
End Function

Private Function TABLP2()
  TABLP2 = y
End Function

  Tabl = Evaluate("TABLP1() - TABLP2()")
  'on aurait pu aussi écrire :
  Tabl = [TABLP1() - TABLP2()]

Eric
 
Bonjour,

ce que j'ai compris

Code:
Sub essai()
  '-- simulation w() et y()
  Dim w(1 To 31), y(1 To 3)
  m = 1: an = 2018
  For j = 1 To 31
    w(j) = DateSerial(an, m, j)
  Next j
  y(1) = DateSerial(2018, 1, 2)
  y(2) = DateSerial(2018, 1, 5)
  y(3) = DateSerial(2018, 1, 8)
  '--- différence z=w()-y()
  Set d1 = CreateObject("scripting.dictionary")
  For Each c In y(): d1(c) = "": Next c
   Set d2 = CreateObject("scripting.dictionary")
   For Each c In w
     If Not d1.exists(c) Then d2(c) = ""
   Next c
   Z = d2.keys
   [A1].Resize(, UBound(Z)) = Z
End Sub

Boisgontier
 

Pièces jointes

Merci encore J. Boisgontier
Le résultat de votre proposition n'est pas ce que j'attendais : des 31 jour de janvier (dans mon cas W) il faudrait ôter les éléments de Y :
09/01/2017
11/01/2017
12/01/2017
13/01/2017
16/01/2017
17/01/2017
18/01/2017
19/01/2017
26/01/2017
27/01/2017
30/01/2017
31/01/2017
ainsi j'obtiendrais :
01/01/17
02/01/17
03/01/17
04/01/17
05/01/17
06/01/17
07/01/17
08/01/17
10/01/17
14/01/17
15/01/17
20/01/17
21/01/17
22/01/17
23/01/17
24/01/17
25/01/17
28/01/17
29/01/17
 
Bonjour,

Sous forme de fonction

Code:
Function ComplementArray(a, b)
  Set d1 = CreateObject("scripting.dictionary")
  For Each c In b: d1(c) = "": Next c
   Set d2 = CreateObject("scripting.dictionary")
   For Each c In a
     If Not d1.exists(c) Then d2(c) = ""
   Next c
   ComplementArray = d2.keys
End Function

Boisgontier
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…