Un probléme de variable et de programme en cascade

Résolu
sobeit1 Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 29 avril 2005 - 27 janv. 2005 à 15:50
sobeit1 Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 29 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, @+.

6 réponses

madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
27 janv. 2005 à 16:48
Salut

concernant la première partie de ton code le select case est plus pertinant (il me semble) mais ta solution marche aussi...


Select Case jour

Case "lundi"

varD2 = varD1

Case "mardi"

varD2 = DateAdd("d", -1, varD1)

Case "mercredi"

varD2 = DateAdd("d", -2, varD1)

Case "jeudi"

varD2 = DateAdd("d", -3, varD1)

Case "vendredi"

varD2 = DateAdd("d", -4, varD1)

Case Else


MsgBox "La date indiquée tombe un Week-end" & Chr(10) &
"veuillez modifier" &
Chr(10) & "Merci"

Exit Sub

End Select





Sur la 2 eme partie, j'ai bien une idée de ce que tu veux faire, mais ça :

varD3 = Format$(varD2, j, "d")


Ca ne doit pas marcher terrible



C'est pas plutôt un truc comme ça que tu veux :

varD3 = Format$(DateAdd("d", j, varD2), "dddd") ?




madbob
3
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
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

Daniel
3
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
27 janv. 2005 à 20:06
Ce que j'aime c le & Chr(10) & "Merci"

madbob
3
sobeit1 Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 29 avril 2005
28 janv. 2005 à 08:43
Merci beaucoup
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sobeit1 Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 29 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
3
sobeit1 Messages postés 32 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 29 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)

Merci infiniment pour votre aide, à plus.
Cédric
3
Rejoignez-nous