Selection selon date

baptbapt

XLDnaute Occasionnel
Bonjour,

mon problème est le suivant

je dois prendre en compte les éléments par année de façon totalement automatique

comment récuperer l'année d'une cellule ecrite: 12/03/2005

sachant que je vai avoir plusieur fois l'année 2005, 2006 .....

merci
 

Gorfael

XLDnaute Barbatruc
Re : Selection selon date

baptbapt à dit:
Bonjour,

mon problème est le suivant

je dois prendre en compte les éléments par année de façon totalement automatique

comment récuperer l'année d'une cellule ecrite: 12/03/2005

sachant que je vai avoir plusieur fois l'année 2005, 2006 .....

merci
Salut
Date en A1
=annee(A1)
Pffft, c'était dur :D
A+
 

baptbapt

XLDnaute Occasionnel
Re : Selection selon date

je ne te comprend pas la

Code:
27/10/2004
21/12/2004
24/01/2005
27/07/2005
16/09/2005
22/09/2005
04/10/2005
16/09/2005
05/01/2006
16/03/2006
16/03/2006
11/12/2006

Comment prendre en compte chaque année en VBA
soit écrire
Année Nb Réf
2004 2
2005 6
2006 4

Sachant qu'il est possible d'avoir 2 date identique( on comptabilise toujours les doublons)

Code:
Cells(derligne + 6, 4).Value = annee(Cells(1, 13).Value)
 

baptbapt

XLDnaute Occasionnel
Re : Selection selon date

merci ninbihan

mais, je n'arrive pas à l'adapter a ma macro

Code:
Range("D&derligne+7:D").ClearContents
For Each cellule In Range("b&derligne+7 :b" & Range("b&derligne+7").End(xlDown).Row)
i = 0
For Each cell In Range("m1:m" & Range("m1").End(xlDown).Row)
If Year(cell) = cellule.Value Then i = i + 1
Next cell
cellule.Offset(0, 2).Value = i
Next cellule

Mes dates sont sur la colonne M
et j'écris mes réponses a partir de la derligne +7
l'année dans la colonne B
et le nombre de référence en D
 

ninbihan

XLDnaute Impliqué
Re : Selection selon date

Essaie comme cela

Code:
Range("D" & derligne+7 & ":D" & Range("b" & derligne+7).End(xlDown).Row).ClearContents
For Each cellule In Range("b" & derligne+7  & ":b" & Range("b" & derligne+7).End(xlDown).Row)
i = 0
For Each cell In Range("m1:m" & Range("m1").End(xlDown).Row)
If Year(cell) = cellule.Value Then i = i + 1
Next cell
cellule.Offset(0, 2).Value = i
Next cellule

Si cela ne veut pas fonctionner, essaie de joindre ton fichier
 

baptbapt

XLDnaute Occasionnel
Re : Selection selon date

Non les dates sont celle de la colonne M
et oui, si la macro peut déterminer d'elle meme les années et les inscrire


La colonne M correspond au date d'expedition
la colonne N au date de réception
la colonne B au date de commande

Pour l'instant, j'ai besoin de déterminer le nombre de ligne pour chaque année correspondant au date d'expedition

après je referai le meme principe pour les dates de réception

puis de commande
 

baptbapt

XLDnaute Occasionnel
Re : Selection selon date

Code:
Date commande	Date Envoi	Date Reception
20/09/2004	15/03/2007	
20/09/2004	15/03/2007	
20/09/2004	15/03/2007	
20/09/2004	15/03/2007	
18/05/2006	10/08/2006	28/11/2006
18/05/2006	10/08/2006	28/11/2006
18/05/2006	30/11/2006	
18/05/2006	30/11/2006	
18/05/2006	10/08/2006	
18/05/2006	28/02/2007	
18/05/2006	28/02/2007

Je recommance mes explications, mais en plus logique, du moins, je le pense

Alors, voila les dates pour l'un des mes clients

la première colonne Date de commande (colonne B dans mon programme)
correspond au date de passage de commande, elles me servent de référence.

Il faudrait donc, je pense que je les utilise en premier lieu et mettre à la fin de mes lignes de donnés

2004
2005
2006
2007 car dernier élément devant etre réceptionné

donc pour récuperer 2004, pas de problème
Code:
Cells(derligne + 7, 2).Value = Year(Cells(1, 2).Value)
PAr contre, pour implémenter les dates pour allé jusqu'a la date de livraison la plus élevé, (je sais pas faire).

Ensuite, compter les nombre de référence (date d'envoi par année)
Je sai pas faire non plus, du moins j'essaye d'adapter le code que l'on ma donnée précédement, mais sa bloque toujours)


dans le but d'avoir en final

Année Nb Réf Envoi NB ref reçu
2004 0 0
2005 0 0
2006 5 2
2007 6 0
 

baptbapt

XLDnaute Occasionnel
Re : Selection selon date

J'arrive a obtenir la premier année de commande et la dernière année d'envoi

Code:
Cells(derligne + 7, 2).Value = Year(Cells(1, 2).Value)

x = Year(Cells(1, 2).Value)
For l = 1 To derligne
        If x < Year(Cells(l, 13).Value) Then
            x = Year(Cells(l, 13).Value)
        End If
Next l

xx = x - Year(Cells(1, 2).Value)
Cells(derligne + 7 + xx, 2).Value = x

Mais comment faire pour avoir les années entre les 2
j'ai 2004 et 2007
 

baptbapt

XLDnaute Occasionnel
Re : Selection selon date

Résolu, enfin la mise en place des dates de référence

Code:
Cells(derligne + 7, 2).Value = Year(Cells(1, 2).Value)

x = Year(Cells(1, 2).Value)
For l = 1 To derligne
        If x < Year(Cells(l, 13).Value) Then
            x = Year(Cells(l, 13).Value)
        End If
Next l

xx = x - Year(Cells(1, 2).Value)
Cells(derligne + 7 + xx, 2).Value = x

For y = 1 To xx
    If Cells(derligne + 7, 2).Value + y <> Cells(derligne + 7 + xx, 2).Value Then
    Cells(derligne + 7 + y, 2).Value = Cells(derligne + 7, 2).Value + y
    End If
Next y
 

baptbapt

XLDnaute Occasionnel
Re : [Résolu]Selection selon date

Ton code est bien plus simple que celui que je viens d'utiliser

Mais j'ai réussi a obtenir se que je voulai, (Enfin!!!!)

Problème résolu

Enfin , celui la


Maintenant, je doit prendre en compte, suivant, le retard de livraison, soit prendre en compte le mois et les années

Mais, ce sera dans une autre discussion, si je ni arrive pas


Merci de ton aide
 

Gorfael

XLDnaute Barbatruc
Re : Selection selon date

baptbapt à dit:
merci ninbihan

mais, je n'arrive pas à l'adapter a ma macro

Code:
Range("D&derligne+7:D").ClearContents
For Each cellule In Range("b&derligne+7 :b" & Range("b&derligne+7").End(xlDown).Row)
i = 0
For Each cell In Range("m1:m" & Range("m1").End(xlDown).Row)
If Year(cell) = cellule.Value Then i = i + 1
Next cell
cellule.Offset(0, 2).Value = i
Next cellule

Mes dates sont sur la colonne M
et j'écris mes réponses a partir de la derligne +7
l'année dans la colonne B
et le nombre de référence en D
Salut
p'vez répéter la question ?!?:eek:

Range("D&derligne+7: D").ClearContents :
effacer le contenu de la plage nommée "D&derligne+7: D"
en admettant que derligne soit une variable entier long fixée précédemment, fait une macro du style :
Code:
Sub Test()
dim derligne as long
derligne = 5 'par exemple
range("D" & derligne & ":D" & range("D65536).end(xlup).row).select
end sub
et tu regardes si c'est ce que tu veux avoir : là, c'est une sélection, donc tu peux visualiser, dans le cas où il n'y a pas d'erreur, la plage résultant de ta formule
A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz