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

XL 2016 Find pour les dates (VBA)

  • Initiateur de la discussion Initiateur de la discussion ZAJNI
  • 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 !

ZAJNI

XLDnaute Nouveau
Bonjour à tous,

J'ai un souci avec la fonction find de vba. En effet, j'ai une ligne de dates courtes sur une feuille excel (la première date est en dur, le reste sont des formules, date+7jours)
J'ai alimenté une combobox (début de période) par ces dates, jusqu'ici ça marche bien. Je veux alimenter la deuxième combobox (date de fin) par les dates supérieures à la date de début. Pour cela j'utilise la fonction find. Sauf que celle là ne marche pas pour les dates.
Je vous laisse le fichier ci-joint.

Merci pour votre aide
 

Pièces jointes

Bonjour ZAJNI, Pierre,

Voyez le fichier joint et le code de l'UserForm :
VB:
Private Sub ComboBox_de_Change()
Dim Li%, liste
ComboBox_à.Clear 'RAZ
Li = ComboBox_de.ListIndex
With [A3].CurrentRegion.Rows(1)
    If Li = -1 Or Li = .Columns.Count - 1 Then Exit Sub
    liste = .Cells(Li + 2).Resize(, .Columns.Count - Li - 1).Value
    If IsArray(liste) Then
        ComboBox_à.List = Application.Transpose(liste)
    Else
        ComboBox_à.AddItem liste
    End If
End With
ComboBox_à.SetFocus
Application.OnTime 1, "Deroule" 'déroulement différé
End Sub

Private Sub UserForm_Initialize()
Dim liste
liste = [A3].CurrentRegion.Rows(1).Value
If IsArray(liste) Then ComboBox_de.List = Application.Transpose(liste) Else ComboBox_de.AddItem liste
End Sub
Le code dans Module1 :
VB:
Sub USF()
Choix_période.Show
End Sub

Sub Deroule()
Choix_période.ComboBox_à.DropDown
End Sub
A+
 

Pièces jointes

Dernière édition:
Bonjour job75,

Je reviens vers toi car ta solution marche super bien, mais dès que je rajoute des colonnes à gauche ou lignes en haut tout est cassé, même si je modifie le [A3] dans le code.
Voici le fichier :

merci beaucoup pour l'aide
 

Pièces jointes

Merci beaucoup pour ton aide ça marche super bien.

J'ai juste une question, puisque sur mon code j'utiliserai quand même la fonction find pour récupérer la colonne dans laquelle se trouve les dates récupérées des combobox. pourquoi la fonction find ne marche pas ?

VB:
Date_début = CDate(ComboBox_de)
date_fin = CDate(ComboBox_à)
Sheets("Feuil1").Activate
Set DebCell = ThisWorkbook.Worksheets("Feuil1").Rows("3").Find(What:=Date_début, LookIn:=xlFormulas, lookat:=xlWhole)
Set finCell = ThisWorkbook.Worksheets("Feuil1").Rows("3").Find(What:=date_fin, LookIn:=xlFormulas, lookat:=xlWhole)


Merci beaucoup
 
Bonjour,

Dans le fichier joint, la plage de dates est référencée dans une variable privée du userform.
La cellule de la date retenue correspond à plgDates.cells(1,Combobox_de.Listindex +1)
En se rappelant que les indexes de combobox commencent à 0 (zéro).

La combobox_à est mise à jour sur choix de la combobox_de.


Bonne fin d'après-midi
 

Pièces jointes

- 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
6
Affichages
432
Réponses
8
Affichages
712
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…