Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[vba] recherche une plage de date dans une colonne

271 views
Skip to first unread message

Baton .rouge

unread,
Apr 15, 2013, 12:17:12 PM4/15/13
to
bonjour

est il possible dans une colonne de connaitre la plage correspondant au
mois de janvier 2013 ? ou semaine 02, ou du 10/01/2013 au 23/01/2013 ?

Les dates se suivent (une par ligne)

Par contre elles sont format� au format jj/mm/aaaa, je ne sais pas si la
recherche se fait au format cellule ou entier.

MErci de vos lumi�res.








MichD

unread,
Apr 15, 2013, 1:40:55 PM4/15/13
to
Bonjour,

Voici un exemple si tes dates sont en colonne A
de la feuil1.

Il n'y a pas de gestion d'erreur � la proc�dure. Si
la date saisie n'est pas bonne, c'est �vident que cela
va g�n�rer une erreur!

'------------------------------------
Sub test1()

Dim Rg As Range
Dim DateD�but As Date
Dim DateFin As Date
'10/01/2013 au 23/01/2013
'Dateserial(ann�e,mois,jour)
DateD�but = DateSerial(2013, 1, 10)
DateFin = DateSerial(2013, 1, 23)

With Worksheets("Feuil1") 'Nom feuille � adapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
x = Application.Match(CLng(DateD�but), Rg, 0)
y = Application.Match(CLng(DateFin), Rg, 0)
Set Plg = .Range("A" & x & ":A" & y)
End With
MsgBox "L'adresse de la plage recherch�e est : " & Plg.Address

End Sub
'------------------------------------


MichD
---------------------------------------------------------------

Baton .rouge

unread,
Apr 15, 2013, 2:22:31 PM4/15/13
to
On Mon, 15 Apr 2013 13:40:55 -0400, "MichD" <mich...@hotmail.com>
wrote:
Perfect/adapte, je teste �a demain
Merci.

Baton .rouge

unread,
Apr 15, 2013, 2:52:47 PM4/15/13
to
On Mon, 15 Apr 2013 20:22:31 +0200, Baton .rouge <nos...@trash.nul>
wrote:

>On Mon, 15 Apr 2013 13:40:55 -0400, "MichD" <mich...@hotmail.com>
>wrote:
>
>>Bonjour,
>>
>>Voici un exemple si tes dates sont en colonne A
>>de la feuil1.
>>
>>Il n'y a pas de gestion d'erreur à la procédure. Si
>>la date saisie n'est pas bonne, c'est évident que cela
>>va générer une erreur!
>>
>>'------------------------------------
>>Sub test1()
>>
>>Dim Rg As Range
>>Dim DateDébut As Date
>>Dim DateFin As Date
>>'10/01/2013 au 23/01/2013
>>'Dateserial(année,mois,jour)
>>DateDébut = DateSerial(2013, 1, 10)
>>DateFin = DateSerial(2013, 1, 23)
>>
>>With Worksheets("Feuil1") 'Nom feuille à adapter
>> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
>> x = Application.Match(CLng(DateDébut), Rg, 0)
>> y = Application.Match(CLng(DateFin), Rg, 0)
>> Set Plg = .Range("A" & x & ":A" & y)
>>End With
>>MsgBox "L'adresse de la plage recherchée est : " & Plg.Address
>>
>>End Sub
>>'------------------------------------
>>
>>
>>MichD
>>---------------------------------------------------------------
>
>Perfect/adapte, je teste ça demain
>Merci.


Pour le lundi du numéro de semaine demandé :

http://groupes.codes-sources.com/article-date-lundi-fonction-semaine-153599.aspx
Function LUNDI(annee As Integer, NumSemaine As Integer) As Double
'mpfe B Mazas
'retourne la date du lundi de la semaine n° "NumSemaine" (ISO) de l
'année
"Annee"

Dim PremierJour As Date

PremierJour = DateSerial(annee, 1, 1)
If Weekday(PremierJour) = 6 Or Weekday(PremierJour) = 7 Then
'si le 1er janvier tombe un vendredi ou un samedi

PremierJour = PremierJour - Weekday(PremierJour) + 2
Else

PremierJour = PremierJour - Weekday(PremierJour) - 5
End If
LUNDI = PremierJour + 7 * NumSemaine
End Function

















Baton .rouge

unread,
Apr 15, 2013, 2:53:21 PM4/15/13
to
On Mon, 15 Apr 2013 20:22:31 +0200, Baton .rouge <nos...@trash.nul>
wrote:

Pour le nombre de jour du mois demand� :

http://www.excel-pratique.com/fr/astuces_vba/nb_jours_dans_mois.php
Sub nb_jours_mois()

'Une date quelconque pour cet exemple
date_test = CDate("6/2/2012")

'Mois / ann�e de la date
mois = Month(date_test)
annee = Year(date_test)

'Calcul du premier jour du mois suivant
date_mois_suivant = DateSerial(annee, mois + 1, 1)

'Date du dernier jour
dernier_jour_mois = date_mois_suivant - 1

'Nombre de jour dans le mois (= dernier jour)
nb_jours = Day(dernier_jour_mois)

End Sub

MichD

unread,
Apr 15, 2013, 3:22:14 PM4/15/13
to
Pour conna�tre le nombre de jours du mois de janvier
En fait l'ann�e importe peu... et le jour est toujours 0
Il suffit d'ajouter 1 au mois d�sir�.

MsgBox Day(DateSerial(2013, 1 + 1, 0))


MichD
---------------------------------------------------------------

Baton .rouge

unread,
Apr 16, 2013, 4:14:30 PM4/16/13
to
Merci de ton aide, tes exemples m'ont beaucoup �t� utile.
0 new messages