[VBA] Populate combobox

Maxoverfred

XLDnaute Occasionnel
Bonjour à tous,

Situation:

D'un côté, j'ai mes valeurs(dates) qui se trouvent dans une ligne bien précise de ma feuille, par exemple A2:N2

Il faut que dans mon user form, j'affiche dans un label la première date qui suit la date d'aujourd'hui ?

Comment doit je procéder pour comparer mes valeurs ? tout cela en vba ? construction d'un array je suppose ?


Merci à vous


-------------
Plus clair ?:

Dans Sheet 1, j'ai un range A4:IV4 qui contient des dates (en ordre croissant)
Au démarrage d'un user form, j'aimerais qu'il m'affiche dans un label la première date qui suit la date d'aujourd'hui (et donc qu'il se base sur les valeurs de la range )

Message édité par: maxoverfred, à: 10/05/2005 09:02
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour MaxoVerFred, le Forum

Un peu sombre en clarté ta question (lol), enfin voilà ce que j'ai compris :

Private Sub UserForm_Initialize()
Dim TabDate As Variant
Dim TodayDate As Date
Dim i As Integer

With Sheets('Sheet1')
    TabDate = .Range('A2:IV2')
End With

TodayDate =
Date

   
For i = 1 To UBound(TabDate, 2)
       
If TabDate(1, i) > TodayDate Then
                Me.Label1 = TabDate(1, i)
               
Exit For
       
End If
   
Next i


End Sub


NB ceci à condition que les dates soient tout de même dans un ordre croissant de la colonne 'A' vers la colonne 'IV'...

Bon Après Midi (Fin)
@+Thierry

EDITION !!!
PS le sujet n'a pas vraiment grand chose à voir avec la question, au fait

Message édité par: _Thierry, à: 09/05/2005 17:49
 

Robert

XLDnaute Barbatruc
Repose en paix
Salut Maxoverfred, Thierry, le forum,

J'avais pensé à un truc puis comme j'ai vu que Barbatruc était là j'ai préféré fermer ma gu... Mal m'en a pris car pour une fois Barbatruc a merdé (et Paf ! dans sa gu... Lol !!!)
Alors dans la série bidouille qui marche le code ci-dessous efficace, puissant, intelligent, tout moi quoi...

Private Sub UserForm_Initialize()
Dim c As Range 'déclare la variable c
Dim cel As Range 'déclare la variable cel
'boucle sur toutes les cellule de la plage A2:N2
For Each cel In Feuil1.Range('A2:N2')
If cel.Value > Date Then 'condition : si la cellule est supérieure à la date du jour
On Error GoTo ici 'si c'n'a pas encore été défini, va à la balise 'ici'
Set c = Application.Union(c, cel) 'définit la variable c
GoTo après 'va à la balise après
ici:
Set c = cel 'définit la variable c
après:
End If 'fin de la condition
Next cel 'prochaine cellule de la plage A2:N2
Label1.Caption = Format(Application.WorksheetFunction.Min(c), 'dd/mm/yyyy')
End Sub
 

Maxoverfred

XLDnaute Occasionnel
Cela me parait plus professionnel que mon

For Each cel In ThisWorkbook.Worksheets('Historics').Range('E4:N4')
If cel.Value > Date Then
Me.txtdate = cel.Value
Exit For
End If
Next cel


Merci, j'ai déjà une question plus tordue sur les manipulations en vba des cellules.. nouveau post va suivre
 

Discussions similaires

Réponses
12
Affichages
314

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm