Microsoft 365 Code si date introuvable

Marvin57

XLDnaute Occasionnel
Bonjour à tout le monde,

dans le fichier ci-joint, je clique sur le bouton de l'onglet DEPART et il affiche le UserForm1.

Je peux alors choisir une date ou semaine et il m'affichera les données de cette semaine demandée.

Ma question;

Comment modifier ce code afin qu'il ne m'affiche rien dans les textbox si la période choisie n'existe pas sur l'onglet TEST ?

Merci d'avance à vous pour votre aide.

Cordialement,
Marvin57
 

Pièces jointes

  • Marvin57Codedates.xlsm
    61.3 KB · Affichages: 2
C

Compte Supprimé 979

Guest
Bonjour Marvin57

Ca semble être déjà le cas 🤔
1702376620685.png

Ou alors je n'ai pas compris la question

A+
 

Marvin57

XLDnaute Occasionnel
Bonjour Marvin57

Ca semble être déjà le cas 🤔
Regarde la pièce jointe 1186054
Ou alors je n'ai pas compris la question

A+
Bonjour BrunoM45,

Merci pour le retour.

Non cela ne fonctionne pas comme je souhaiterai l'avoir.

Si au départ je choisi une date ou semaine éloignée, cela fonctionne. Mais si je change plusieurs fois les choix de semaines ou dates il ne fonctionne pas.

C'est à dire je choisi par ex. la semaine 6 de l'année 2024, alors oui il n'affiche rien dans les textbox.
Maintenant si je reviens sur une semaine existante il me remplit bien les textbox. Et si je reviens sur une semaine éloignée il me laisse les inscriptions de la dernière semaine choisie, qui est existante.
 

Marvin57

XLDnaute Occasionnel
bonjour,
Je pense que c'est quant tu change de semaine sans refermer ton user, alors
Ajoute ceci pour remettre à zéro tes textbox
Private Sub TextBox84_Change()
For n = 1 To 7
Me.Controls("TextBox" & n) = ""
Next
Bonjour sousou,

Merci pour ton aide. Je viens de le placer comme ceci

VB:
Private Sub CommandButton79_Click()
  Dim i%, j%, Dl%
  Dim Ws As Worksheet
  Set Ws = Sheets("TEST")
 
  Dl = Ws.Range("B" & Rows.Count).End(xlUp).Row
    
    For i = 5 To 164 Step 14
      For j = 3 To 9
    
    For n = 1 To 7
    Me.Controls("TextBox" & n) = ""
    Next
    
          If Ws.Cells(i, j).Value = CDate(Me.TextBox84.Value) Then
          Me.TextBox85.Value = Ws.Cells(i + 0, j + 6).Value
      
    
          Me.TextBox1.Value = Ws.Cells(i + 1, j).Value
          Me.TextBox2.Value = Ws.Cells(i + 1, j + 1).Value
          Me.TextBox3.Value = Ws.Cells(i + 1, j + 2).Value
          Me.TextBox4.Value = Ws.Cells(i + 1, j + 3).Value
          Me.TextBox5.Value = Ws.Cells(i + 1, j + 4).Value
          Me.TextBox6.Value = Ws.Cells(i + 1, j + 5).Value
          Me.TextBox7.Value = Ws.Cells(i + 1, j + 6).Value

          Exit Sub
        End If
      Next j
    Next i
    
End Sub

Cela fonctionne. Mais est-ce que j'ai bien placé le code ?
est-ce correct.
 

Discussions similaires

Réponses
11
Affichages
365
Réponses
2
Affichages
361
Réponses
9
Affichages
353
Réponses
3
Affichages
609
Réponses
93
Affichages
4 K
Réponses
4
Affichages
334
Réponses
4
Affichages
449
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
810
Réponses
18
Affichages
984
Réponses
11
Affichages
716

Statistiques des forums

Discussions
315 098
Messages
2 116 191
Membres
112 679
dernier inscrit
Yupanki