sobeit1
Messages postés32Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention29 avril 2005
-
27 janv. 2005 à 15:50
sobeit1
Messages postés32Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention29 avril 2005
-
28 janv. 2005 à 10:29
salut j'ai un probléme dans VBA excel, j'ai créé un petit programme qui permet à un utilisateur de demander une date, toutes les dates de la semaine (du lundi au vendredi) sont prise en compte dans la copie des lignes où elles apparaissent.
ex: l'utilisateur demande le 27 janvier 05
le programme traduit la date est donne le jour (jeudi)
il raméne la semaine au lundi (pour facilité le calcul, ou pour moi, je pense que c'est le plus simple)
et pour chaque jour de la semaine, il verifie si la date est inscrite dans le tableau et il copie la ligne.
Voici le programme, si vous pouvez m'aider, je vous remercie grandement.
Dim i As Integer
Dim j As Integer
Dim varD1, varD2, varD3 As Date
varD1 = TextBox1.Value
Dim jour As String
jour = Format$(varD1, "dddd")
If jour = "lundi" Then
varD2 = varD1
Else
If jour = "mardi" Then
varD2 = DateAdd("d", -1, varD1)
Else
If jour = "mercredi" Then
varD2 = DateAdd("d", -2, varD1)
Else
If jour = "jeudi" Then
varD2 = DateAdd("d", -3, varD1)
Else
If jour = "vendredi" Then
varD2 = DateAdd("d", -4, varD1)
Else
MsgBox "La date indiquée tombe un Week-end" & Chr(10) & "veuillez modifier" & Chr(10) & "Merci"
Exit Sub
End If
End If
End If
End If
End If
For i = 2 To 100
If ComboBox1 = Range("f" & i) Then
For j = 0 To 4
varD3 = Format$(varD2, j, "d")
If varD3 = Range("b" & i) Then
Sheets("feuil1").Select
Rows(i).Select
Selection.Copy
Sheets("feuil2").Select
Rows(i).Select
ActiveSheet.Paste
Sheets("feuil1").Select
End If
Next j
End If
i = i
Next i
PS: j'utilise un userform pour la saissie des données.
les 2 progs mis indépendament sont OK
Merci, @+.
A voir également:
Un probléme de variable et de programme en cascade
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 27 janv. 2005 à 19:32
varD1 = TextBox1.Value
j = Weekday(varD1)If j 7 Or j 1 Then
MsgBox "La date indiquée tombe un Week-end" & Chr(10) & "veuillez modifier" & Chr(10) & "Merci"
Exit Sub
Else
varD2 = DateAdd("d", 2 - j, varD1)
End If
sobeit1
Messages postés32Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention29 avril 2005 28 janv. 2005 à 09:15
j'ai tjrs un probléme dans la seconde partie du code en effet, les cellules dont je fais références sont du style dd/mm/aa, et ça ne marche pas.... Je ne sais pas quoi faire...
S'il vous plait, un dernier petit coup de main...
Merci
sobeit1
Messages postés32Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention29 avril 2005 28 janv. 2005 à 10:29
En faite c'est bon, grace à vous merci.
mon probléme se trouvait surtout dans 2 partie, la premiere était dans l'expression:
varD3 = Format$(varD2, j, "d")
que j'ai transformé en varD3=DateAdd("d",j,varD2)
La seconde consistée dans la reconnaissance des valeurs dans les cellules de mon tableau
plutot que combobox1=range("f" & i)
il fallait me.combobox=range("f" & i)