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
2
Affichages
124
Réponses
3
Affichages
400
Réponses
93
Affichages
2 K
Réponses
4
Affichages
184
Réponses
4
Affichages
291
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
302
Réponses
11
Affichages
481
Réponses
18
Affichages
555
Réponses
8
Affichages
397

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame