Un probléme de variable et de programme en cascade

Résolu
Signaler
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2005
-
Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2005
-
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

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Ce que j'aime c le & Chr(10) & "Merci"

madbob
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2005

Merci beaucoup
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2005

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
32
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2005

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci