Problème dans un UserForm

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etienne2323

XLDnaute Impliqué
Bonjour à tous,
j'ai de nouveau besoin de votre aide. Dans un userform, j'ai besoin de récuperer tous les initiales suivant une date déterminée qui est saisie dans le UserForm. Je vous dépose un exemple en pièce jointe avec de plus amples informations. En vous remerciant et en vous souhaitant de joyeuses fêtes !!

Cordialement,

Étienne
 

Pièces jointes

Re : Problème dans un UserForm

bonjour Etienne2323 le forum peut etre comme cela

'C'est ici que je ne sais plus quoi faire !!!
Dim Ws As Worksheet
For Each Ws In Worksheet
If Ws.Name <> "recap" Then
Worksheets(Ws.Name).Activate
DerniereLigne = Cells(65536, 4).End(xlUp).Row
'ect
 
Re : Problème dans un UserForm

Bonjour Jean-Pierre,
dans votre exemple, qu'est-ce que "recap" est supposé représenter ??

De plus, le problème avec un "For each" est que si ma date se situe au centre de mes données à l'année 2006 par exemple, je dois avoir une indication qui dit où commencer mais il ne faut pas que cette indication soit valable sur tous les onglets subséquents mais uniquement sur l'onglet qui représente l'année choisie. De là la variable LigneDebut. Vous voyez où je veux en venir ?

Merci de vous pencher sur mon problème !

Étienne
 
Dernière édition:
Re : Problème dans un UserForm

Bonjour,

je te propose ce code pour le bouton "valider":

Code:
Private Sub CommandButton1_Click()
Dim Init As String, Jour As Integer, Mois As Integer, Annee As Integer, Nbre As Long
Init = ComboBox1.Value
Jour = TextBox1.Value
Mois = TextBox2.Value
Annee = ComboBox2.Value
Nbre = 0
'de la 1ere à l'avant dernière feuille
For i = 1 To Sheets.Count - 1
'si le nom de la feuille i >= année choisie et l'année choisie est <= au nom de l'avant dernière feuille
  If Sheets(i).Name >= Sheets(CStr(Annee)).Name And Sheets(CStr(Annee)).Name <= Sheets(Sheets.Count - 1).Name Then
    'dans la feuille i
    With Sheets(i)
      'écrit en C2 la date choisie
      .Range("C2").Value = DateSerial(Annee, Mois, Jour)
      'en C1, formule sommeprod pour trouver le nombre dans le mois en cours
      .Range("C1").FormulaLocal = "=Sommeprod((" & .Range("A1", .Range("A65536").End(xlUp)).Address & ">=" & .Range("C2").Address & ")*(" & .Range("B1", .Range("B65536").End(xlUp)).Address & "=""" & Init & """))"
      'transfert du résultat vers "Nbre"
      Nbre = Nbre + .Range("C1").Value
      'on vide C1:C2
      .Range("C1:C2").Clear
    End With
  End If
Next
MsgBox "Il y a " & Nbre & " " & Init & " après le " & DateSerial(Annee, Mois, Jour)

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
179
Réponses
2
Affichages
190
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
524
Retour