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

XL pour MAC Extraction de données entre 2 dates

  • Initiateur de la discussion Initiateur de la discussion Nono1835
  • 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 !

Nono1835

XLDnaute Occasionnel
Bonjour à tous
je souhaite effectuer une extraction de données d'après un tableau, cette extraction je souhaite la faire avec un critère de date de début et de fin de periode.
j'ai essayé en suivant des tuto mais à chaque fois il s'agit de la fonction filtre que je n'ai pas dans ma version d'excel
merci de votre aide
cordialement
 

Pièces jointes

Bonjour à tous,

A essayer cette formule matricielle en "G9"
VB:
=SIERREUR(INDEX(B$5:B$30;PETITE.VALEUR(SI(($D$5:$D$30>=$G$6)*($D$5:$D$30<=$H$6);LIGNE($D$5:$D$30)-4);LIGNES($1:1)));"")
copier vers la droite et le bas

JHA
 

Pièces jointes

Bonjour Nono1835, djidji59430, JHA,

L'inconvénient des formules matricielles c'est qu'elles prennent beaucoup de temps.

Pour tester j'ai recopié le tableau B5:E30 sur 26 000 lignes.

Le recalcul des résultats en G9:J7008 se fait en 60 secondes, c'est rédhibitoire.

Pour aller vite il faut utilise Power Query ou VBA.

A+
 
re
est il possible de m'aider a insérer un calendrier dans les cellules date
je ne trouve pas l'insertion car il me manque des le bouton insérer dans développeur .
je pense que j'ai un soucis avec ma version excel .........
si quelqu'un a par la meme occasion la possibilite de me conseiller une version excel ...
merci de vos retours
 
Une solution VBA très rapide est d'utiliser un tableau VBA, la macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim deb, fin, tablo, ub%, dat, i&, n&, j%
deb = [G6]: fin = [H6]
tablo = [Tableau1] 'matrice, plus rapide
ub = UBound(tablo, 2)
For i = 1 To UBound(tablo)
    dat = tablo(i, 3)
    If dat >= deb And dat <= fin Then
        n = n + 1
        For j = 1 To ub
            tablo(n, j) = tablo(i, j)
        Next j
    End If
Next i
'---restitution---
Application.EnableEvents = False
With [Tableau2]
    If n Then .Resize(n) = tablo
    If n < .Rows.Count Then .Rows(n + 1).Resize(.Rows.Count - n).Delete xlUp
End With
Application.EnableEvents = True
End Sub
Elle se déclenche quand on modifie ou valide une cellule quelconque.

Testée avec Tableau1 recopié sur 26 000 lignes elle s'exécute chez moi en 0,09 seconde.

Notez que Tableau2 peut être dans une autre feuille, le code ne change pas.

Bonne nuit.
 

Pièces jointes

bonjour
merci pour l'astuce
je viens de me rendre compte que lorsque j’améliore mon tableau ( ajout de colonne la programmation bug )
du coup il faut que je me penche sur le langage VBA pour faire des modifications
cordialement
 
Voici une solution toute simple avec l'instruction "Filtre"
 

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

Discussions similaires

Réponses
0
Affichages
235
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…