Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb de boucle avec une date

  • Initiateur de la discussion Initiateur de la discussion Seb
  • Date de début Date de début

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 !

Seb

XLDnaute Occasionnel
Bonsoir à tous....

J'ai un petit soucis avec la construction d'une boucle...

Je voudrais que ma macro me trouve la valeur de la textbox1 dans ma feuille Repertoire N B5:B370 et qu'elle me fasse :TextBox2.Value = cel.Offset(0, 1).Value une fois qu'elle a trouvée. Mais je galère un peut dans tous ces formats de valeurs et suis pas sur que ma boucle soit bien faite... Quelqu'un saurait le faire ? Merci encore.. SEb

Private Sub UserForm_Initialize()
Dim cel As Range
Dim vcompteur As Long
Dim vlimite As Date
Dim vdate As Date

TextBox1.Value = ActiveCell.Value

vcompteur = 3
vlimite = TextBox1

Do Until vlimite = vdate
Sheets("Repertoire N").Cells(vcompteur, 1) = CDate(vdate)
vcompteur = vcompteur + 1
Loop

TextBox2.Value = cel.Offset(0, 1).Value
End Sub
 
Re : Pb de boucle avec une date

Bonsoir Seb,

Avec ce que j'ai pu comprendre, j'ai modifié quelque peu la macro.


Private Sub UserForm_Initialize()
Dim Cel As Range
Dim Vcompteur As Long
Dim Vlimite As Date
'Dim Vdate As Date 'Comprends pas ce que c'est ????

TextBox1.Value = ActiveCell.Value
Vcompteur = 3
Vlimite = TextBox1


With Sheets("Repertoire N")
For Each Cel In .Range("B5:B370") ' Boucle sur les cellules
If Cel.Value = Vlimite Then
Vcompteur = Vcompteur + 1
TextBox2.Value = Cel.Offset(0, 1).Value
End If
Next Cel
End Sub

Cordialement

Bonne nuit les petits

Bernard
 
Re : Pb de boucle avec une date

Bonsoir,
Un peu bizarre (enfin si j'ai compris)
Tu veux trouver une valeur dans la colonne B (donc colonne 2) et tu écris
Code:
Sheets("Repertoire N").Cells(vcompteur, [COLOR="Red"]1[/COLOR]) = CDate(vdate)
Tu veux trouver une valeur en B5:B370 (donc 1ere ligne = 5) et tu écris
Code:
Vcompteur = [COLOR="Red"]3[/COLOR]
A priori la cellule résultat est forcément dans la colonne C, donc en gardant la principe de ta macro
Code:
Private Sub UserForm_Initialize()
Dim vcompteur As Long
Dim vlimite As Date
Dim vdate As Date

TextBox1.Value = ActiveCell.Value

vcompteur = 5
vlimite = CDate(TextBox1)

Do
vdate = Sheets("Repertoire N").Cells(vcompteur, 2)
vcompteur = vcompteur + 1
Loop Until vlimite = vdate

TextBox2 = Sheets("Repertoire N").Cells(vcompteur - 1, 3)

End Sub
A+
kjin
 
Dernière édition:
Re : Pb de boucle avec une date

Bonsoir le forum, CBernardT, Kjin, Seb

Une variante, qui ne remplit TextBox2 que si la date est trouvée.

@Seb
Il me semble que tu n'as pas initialisé la variable vdate,
peut-être comme ça (si la cellule active une date !) :
Code:
vdate = ActiveCell.Value
textBox1.Text = vdate
Et pour le reste, tu peux essayer :
Code:
With Sheets("Repertoire N")
 
 For vlimite = 5 to 370
 
   If .Cells(vlimite, 2) = vdate then
      TextBox2.Text = .Cells(vlimite, 3)
      Exit For
   End if
 
 Next
 
End with
Ne pas oublier le point devant Cells

A plus
 
- 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
10
Affichages
679
Réponses
5
Affichages
930
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
367
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…