Sélection d'un onglet

Bonjour,

Je possède un fichier excel avec 5 onglet nommés "LUNDI MARDI MERCREDI JEUDI ET VENDREDI."

j'ai un fichier par semaine.

j'ai créé un userform avec des cases à remplir dont une avec le choix d'une date.

dans la case A4 de chaque onglet se trouve la date (donc par exemple du lundi 8 juillet 2019 au vendredi 12 juillet)

Je voudrais faire la chose suivante:

Dans mon user forme la personne sélectionne une date.

1 - vérification que la date fais partie d'un des 5 onglets (afin de vérifier que la personne a pris le bon fichier car il y a un fichier par semaine.)

2 - sélectionner le bon onglet pour écrire les infos remplie dans le userform.(si par exemple je met le 3 juillet 2019 il doit me sélectionner l'onglet "mercredi").

à l'avance un grand merci.

Je vous joint mon fichier

22base-roulage.xlsm (490.54 Ko)

Bonjour,

Désolé de ne pas consacrer assez de temps à ce sujet, classiquement pour le choix de l'onglet :

Function day(d As Date)
dd = DatePart("w", d)
Select Case dd
Case 0: day = "DIMANCHE"
Case 1: day = "LUNDI"
Case 2: day = "MARDI"
Case 3: day = "MERCREDI"
Case 4: day = "JEUDI"
Case 5: day = "VENDREDI"
Case 6: day = "SAMEDI"
End Select
End Function

Sub test()
  Call Feuille (day("01/07/2019"))
End Sub

Sub Feuille(Sh As String)
On Error Resume Next
Sheets(Sh).Select
End Sub

Si cela peut t'aider...

Pour la première question, il faut juste faire un test SI cdate(TaDateSaisie) est comprise entre [lundi!A4] et [lundi!A4]+4

Merci je regarde si je peux me débrouiller avec cela

bon je n'y arrive pas grrrrrrrrrrrrrrr

Bonjour à tous,

je sais pas ou tu déclenches ton userform dans ton fichier mais essayes çà:

Private Sub TextBox_DATE_Change()

'format date (xx/xx/20)
        If CDate(TextBox_DATE_Change.Value) <> Sheets("LUNDI").Range("A4") + 50 Then
        MsgBox "Le format de la date doit être xx/xx/xx"
        Exit Sub
        End If

'si date pas dans la semaine des 5 jours
        If CDate(TextBox_DATE_Change.Value) <> Sheets("LUNDI").Range("A4") Or CDate(TextBox_DATE_Change.Value) <> Sheets("MARDI").Range("A4") Or CDate(TextBox_DATE_Change.Value) <> Sheets("MERCREDI").Range("A4") Or CDate(TextBox_DATE_Change.Value) <> Sheets("JEUDI").Range("A4") Or CDate(TextBox_DATE_Change.Value) <> Sheets("VENDREDI").Range("A4") Then
        MsgBox "Tu t'es trompé de semaine !"
        End If

End Sub

quelqu'un sait comment aller à la ligne dans le code quand c'est trop long ?

a+

fronck

Bonjour à tous,

... quelqu'un sait comment aller à la ligne dans le code quand c'est trop long ? ...

Comme ceci ...

   'si date pas dans la semaine des 5 jours
   If CDate(TextBox_DATE_Change.Value) <> Sheets("LUNDI").Range("A4") Or _
      CDate(TextBox_DATE_Change.Value) <> Sheets("MARDI").Range("A4") Or _
      CDate(TextBox_DATE_Change.Value) <> Sheets("MERCREDI").Range("A4") Or _
      CDate(TextBox_DATE_Change.Value) <> Sheets("JEUDI").Range("A4") Or _
      CDate(TextBox_DATE_Change.Value) <> Sheets("VENDREDI").Range("A4") Then
      MsgBox "Tu t'es trompé de semaine !"
   End If

ric

Bonjour,

Quand le code est trop long, il faut mettre le caractère "_" en fin de ligne. Exemple :

Sub melch()
MsgBox _
"bonjour"
End Sub

J'ai intégré la macro et il me met un message d'erreur???

et à partir d'une date puis-je extraire le jour (lundi, mardi, ....) et utiliser cela pour sélectionner l'onglet dans lequel je vais écrire mes données.

Merci

7base-roulage.xlsm (494.04 Ko)

merci ric et mel pour le " _"

Pour danval, voici un premier remplissage avec la date et les champs prestation et descriptif.

Je pense que tu sauras avancer avec çà.

20base-roulage.xlsm (495.29 Ko)

a+

fronck

Yes cela est top.

Merci à tous pour votre aide précieuse.

Rechercher des sujets similaires à "selection onglet"