Excel_vba_selection tableau en fonction de 2 valeurs saisie par l'utilisateur.
3 réponses
corinneverhulst
Bonjour,
Voici ma Question : comment programmer en VBA une selection en
focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C
01/05/07 1 111 12
02/05/07 3 221 52
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
EXEMPLE :
date debut = 05/05/2007
date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
Merci d'avance pour vos conseils,
Bien cordialement,
Corinne
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonjour,
ligne = 1 For Each c In Range("A1", [A65000].End(xlUp)) If c >= [G1] And c <= [G2] Then Cells(ligne, 13).Resize(, 3).Value = c.Resize(, 3).Value ligne = ligne + 1 End If Next c
http://cjoint.com/?fnszlBpmc2
JB
On 13 mai, 17:42, wrote:
Bonjour, Voici ma Question : comment programmer en VBA une selection en focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C 01/05/07 1 111 12 02/05/07 3 221 52 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21
EXEMPLE : date debut = 05/05/2007 date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21 Merci d'avance pour vos conseils, Bien cordialement, Corinne
Bonjour,
ligne = 1
For Each c In Range("A1", [A65000].End(xlUp))
If c >= [G1] And c <= [G2] Then
Cells(ligne, 13).Resize(, 3).Value = c.Resize(, 3).Value
ligne = ligne + 1
End If
Next c
http://cjoint.com/?fnszlBpmc2
JB
On 13 mai, 17:42, corinneverhu...@aol.com wrote:
Bonjour,
Voici ma Question : comment programmer en VBA une selection en
focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C
01/05/07 1 111 12
02/05/07 3 221 52
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
EXEMPLE :
date debut = 05/05/2007
date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
Merci d'avance pour vos conseils,
Bien cordialement,
Corinne
ligne = 1 For Each c In Range("A1", [A65000].End(xlUp)) If c >= [G1] And c <= [G2] Then Cells(ligne, 13).Resize(, 3).Value = c.Resize(, 3).Value ligne = ligne + 1 End If Next c
http://cjoint.com/?fnszlBpmc2
JB
On 13 mai, 17:42, wrote:
Bonjour, Voici ma Question : comment programmer en VBA une selection en focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C 01/05/07 1 111 12 02/05/07 3 221 52 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21
EXEMPLE : date debut = 05/05/2007 date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21 Merci d'avance pour vos conseils, Bien cordialement, Corinne
hasco
Bonjour,
Si c'est une sélection qui est recherchée et en supposant que les date sont en colonne 1 :
Sub SelPlageDates(DateDebut As Date, DateFin As Date) Dim c As Range, c1 As Range, c2 As Range, plage As Range Dim DerLigne As Long
' Permuter les dates si la date de débute est supérieure à la date de fin If DateDebut > DateFin Then Dim dateTemp As Date dateTemp = DateFin DateFin = DateDebut DateDebut = DateFin End If
' Trouver la dernière ligne de la plage de valeurs DerLigne = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
' Sortir s'il n'existe qu'une ligne de valeur If DerLigne < 2 Then Exit Sub
' Determine la plage de recherche de dates Set plage = Range("A1:A" & DerLigne)
' Trouve la première date = ou > à DateDebut For Each c In plage If c.Value >= DateDebut Then Set c1 = c Exit For ' sortie de la boucle End If Next c
' Si on est pas à la fin de la plage on cherche une date <= à la date de fin
If c.Row < DerLigne Then Set plage = Range("A" & c.Row & ":A" & DerLigne) Do While c.Row <= DerLigne Set c = c.Offset(1) If c.Value = DateFin Then Set c2 = c Loop End If
' Si on a obtenu deux date on créer la selection If Not c1 Is Nothing And Not c2 Is Nothing Then Range(c1.Address & ":" & c2.Address).Resize(, 4).Select End If
End Sub
Sub test() SelPlageDates DateValue("03/02/07"), DateValue("05/05/07")
End Sub
Bonjour, Voici ma Question : comment programmer en VBA une selection en focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C 01/05/07 1 111 12 02/05/07 3 221 52 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21
EXEMPLE : date debut = 05/05/2007 date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21 Merci d'avance pour vos conseils, Bien cordialement, Corinne
Bonjour,
Si c'est une sélection qui est recherchée et en supposant que les date sont
en colonne 1 :
Sub SelPlageDates(DateDebut As Date, DateFin As Date)
Dim c As Range, c1 As Range, c2 As Range, plage As Range
Dim DerLigne As Long
' Permuter les dates si la date de débute est supérieure à la date de fin
If DateDebut > DateFin Then
Dim dateTemp As Date
dateTemp = DateFin
DateFin = DateDebut
DateDebut = DateFin
End If
' Trouver la dernière ligne de la plage de valeurs
DerLigne = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
' Sortir s'il n'existe qu'une ligne de valeur
If DerLigne < 2 Then Exit Sub
' Determine la plage de recherche de dates
Set plage = Range("A1:A" & DerLigne)
' Trouve la première date = ou > à DateDebut
For Each c In plage
If c.Value >= DateDebut Then
Set c1 = c
Exit For ' sortie de la boucle
End If
Next c
' Si on est pas à la fin de la plage on cherche une date <= à la date de fin
If c.Row < DerLigne Then
Set plage = Range("A" & c.Row & ":A" & DerLigne)
Do While c.Row <= DerLigne
Set c = c.Offset(1)
If c.Value = DateFin Then Set c2 = c
Loop
End If
' Si on a obtenu deux date on créer la selection
If Not c1 Is Nothing And Not c2 Is Nothing Then
Range(c1.Address & ":" & c2.Address).Resize(, 4).Select
End If
End Sub
Sub test()
SelPlageDates DateValue("03/02/07"), DateValue("05/05/07")
End Sub
Bonjour,
Voici ma Question : comment programmer en VBA une selection en
focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C
01/05/07 1 111 12
02/05/07 3 221 52
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
EXEMPLE :
date debut = 05/05/2007
date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
Merci d'avance pour vos conseils,
Bien cordialement,
Corinne
Si c'est une sélection qui est recherchée et en supposant que les date sont en colonne 1 :
Sub SelPlageDates(DateDebut As Date, DateFin As Date) Dim c As Range, c1 As Range, c2 As Range, plage As Range Dim DerLigne As Long
' Permuter les dates si la date de débute est supérieure à la date de fin If DateDebut > DateFin Then Dim dateTemp As Date dateTemp = DateFin DateFin = DateDebut DateDebut = DateFin End If
' Trouver la dernière ligne de la plage de valeurs DerLigne = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
' Sortir s'il n'existe qu'une ligne de valeur If DerLigne < 2 Then Exit Sub
' Determine la plage de recherche de dates Set plage = Range("A1:A" & DerLigne)
' Trouve la première date = ou > à DateDebut For Each c In plage If c.Value >= DateDebut Then Set c1 = c Exit For ' sortie de la boucle End If Next c
' Si on est pas à la fin de la plage on cherche une date <= à la date de fin
If c.Row < DerLigne Then Set plage = Range("A" & c.Row & ":A" & DerLigne) Do While c.Row <= DerLigne Set c = c.Offset(1) If c.Value = DateFin Then Set c2 = c Loop End If
' Si on a obtenu deux date on créer la selection If Not c1 Is Nothing And Not c2 Is Nothing Then Range(c1.Address & ":" & c2.Address).Resize(, 4).Select End If
End Sub
Sub test() SelPlageDates DateValue("03/02/07"), DateValue("05/05/07")
End Sub
Bonjour, Voici ma Question : comment programmer en VBA une selection en focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C 01/05/07 1 111 12 02/05/07 3 221 52 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21
EXEMPLE : date debut = 05/05/2007 date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21 Merci d'avance pour vos conseils, Bien cordialement, Corinne
hasco
Oups!!!!!!!!! corriger la ligne : If c.Value >= DateDebut then par If isDate(c) and c.Value>ÚteDebut then
Et la ligne If c.Value = DateFin Then Set c2 = c par If isDate(c) and c.Value<ÚteFin then Set c2=c
bon courage
Bonjour,
Si c'est une sélection qui est recherchée et en supposant que les date sont en colonne 1 :
Sub SelPlageDates(DateDebut As Date, DateFin As Date) Dim c As Range, c1 As Range, c2 As Range, plage As Range Dim DerLigne As Long
' Permuter les dates si la date de débute est supérieure à la date de fin If DateDebut > DateFin Then Dim dateTemp As Date dateTemp = DateFin DateFin = DateDebut DateDebut = DateFin End If
' Trouver la dernière ligne de la plage de valeurs DerLigne = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
' Sortir s'il n'existe qu'une ligne de valeur If DerLigne < 2 Then Exit Sub
' Determine la plage de recherche de dates Set plage = Range("A1:A" & DerLigne)
' Trouve la première date = ou > à DateDebut For Each c In plage If c.Value >= DateDebut Then Set c1 = c Exit For ' sortie de la boucle End If Next c
' Si on est pas à la fin de la plage on cherche une date <= à la date de fin
If c.Row < DerLigne Then Set plage = Range("A" & c.Row & ":A" & DerLigne) Do While c.Row <= DerLigne Set c = c.Offset(1) If c.Value = DateFin Then Set c2 = c Loop End If
' Si on a obtenu deux date on créer la selection If Not c1 Is Nothing And Not c2 Is Nothing Then Range(c1.Address & ":" & c2.Address).Resize(, 4).Select End If
End Sub
Sub test() SelPlageDates DateValue("03/02/07"), DateValue("05/05/07")
End Sub
Bonjour, Voici ma Question : comment programmer en VBA une selection en focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C 01/05/07 1 111 12 02/05/07 3 221 52 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21
EXEMPLE : date debut = 05/05/2007 date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21 Merci d'avance pour vos conseils, Bien cordialement, Corinne
Oups!!!!!!!!!
corriger la ligne :
If c.Value >= DateDebut then
par
If isDate(c) and c.Value>ÚteDebut then
Et la ligne
If c.Value = DateFin Then Set c2 = c
par
If isDate(c) and c.Value<ÚteFin then Set c2=c
bon courage
Bonjour,
Si c'est une sélection qui est recherchée et en supposant que les date sont
en colonne 1 :
Sub SelPlageDates(DateDebut As Date, DateFin As Date)
Dim c As Range, c1 As Range, c2 As Range, plage As Range
Dim DerLigne As Long
' Permuter les dates si la date de débute est supérieure à la date de fin
If DateDebut > DateFin Then
Dim dateTemp As Date
dateTemp = DateFin
DateFin = DateDebut
DateDebut = DateFin
End If
' Trouver la dernière ligne de la plage de valeurs
DerLigne = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
' Sortir s'il n'existe qu'une ligne de valeur
If DerLigne < 2 Then Exit Sub
' Determine la plage de recherche de dates
Set plage = Range("A1:A" & DerLigne)
' Trouve la première date = ou > à DateDebut
For Each c In plage
If c.Value >= DateDebut Then
Set c1 = c
Exit For ' sortie de la boucle
End If
Next c
' Si on est pas à la fin de la plage on cherche une date <= à la date de fin
If c.Row < DerLigne Then
Set plage = Range("A" & c.Row & ":A" & DerLigne)
Do While c.Row <= DerLigne
Set c = c.Offset(1)
If c.Value = DateFin Then Set c2 = c
Loop
End If
' Si on a obtenu deux date on créer la selection
If Not c1 Is Nothing And Not c2 Is Nothing Then
Range(c1.Address & ":" & c2.Address).Resize(, 4).Select
End If
End Sub
Sub test()
SelPlageDates DateValue("03/02/07"), DateValue("05/05/07")
End Sub
Bonjour,
Voici ma Question : comment programmer en VBA une selection en
focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C
01/05/07 1 111 12
02/05/07 3 221 52
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
EXEMPLE :
date debut = 05/05/2007
date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C
10/05/07 2 212 42
12/05/07 6 152 32
14/05/07 5 134 21
Merci d'avance pour vos conseils,
Bien cordialement,
Corinne
Oups!!!!!!!!! corriger la ligne : If c.Value >= DateDebut then par If isDate(c) and c.Value>ÚteDebut then
Et la ligne If c.Value = DateFin Then Set c2 = c par If isDate(c) and c.Value<ÚteFin then Set c2=c
bon courage
Bonjour,
Si c'est une sélection qui est recherchée et en supposant que les date sont en colonne 1 :
Sub SelPlageDates(DateDebut As Date, DateFin As Date) Dim c As Range, c1 As Range, c2 As Range, plage As Range Dim DerLigne As Long
' Permuter les dates si la date de débute est supérieure à la date de fin If DateDebut > DateFin Then Dim dateTemp As Date dateTemp = DateFin DateFin = DateDebut DateDebut = DateFin End If
' Trouver la dernière ligne de la plage de valeurs DerLigne = Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
' Sortir s'il n'existe qu'une ligne de valeur If DerLigne < 2 Then Exit Sub
' Determine la plage de recherche de dates Set plage = Range("A1:A" & DerLigne)
' Trouve la première date = ou > à DateDebut For Each c In plage If c.Value >= DateDebut Then Set c1 = c Exit For ' sortie de la boucle End If Next c
' Si on est pas à la fin de la plage on cherche une date <= à la date de fin
If c.Row < DerLigne Then Set plage = Range("A" & c.Row & ":A" & DerLigne) Do While c.Row <= DerLigne Set c = c.Offset(1) If c.Value = DateFin Then Set c2 = c Loop End If
' Si on a obtenu deux date on créer la selection If Not c1 Is Nothing And Not c2 Is Nothing Then Range(c1.Address & ":" & c2.Address).Resize(, 4).Select End If
End Sub
Sub test() SelPlageDates DateValue("03/02/07"), DateValue("05/05/07")
End Sub
Bonjour, Voici ma Question : comment programmer en VBA une selection en focntion de 2 valeurs choisie par l'utilisateur ? ( ici 2 dates )
DATE VARIABLE A VARIABLE B VARIABLE C 01/05/07 1 111 12 02/05/07 3 221 52 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21
EXEMPLE : date debut = 05/05/2007 date fin = 15/05/2007
Resultat de la selection : DATE VARIABLE A VARIABLE B VARIABLE C 10/05/07 2 212 42 12/05/07 6 152 32 14/05/07 5 134 21 Merci d'avance pour vos conseils, Bien cordialement, Corinne