XL 2016 Find pour les dates (VBA)

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

  • test - Copie.xlsm
    19.1 KB · Affichages: 11

ZAJNI

XLDnaute Nouveau
Excuse moi de te déranger,
cela ne marche plus quand je modifie la taille des cellules, chose que je trouve bizarre.

Voici le fichier ci-joint avec les tailles modifiées.

Merci
 

Pièces jointes

  • test - Copie.xlsm
    18.5 KB · Affichages: 4

job75

XLDnaute Barbatruc
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

  • test(1).xlsm
    28.5 KB · Affichages: 4
Dernière édition:

ZAJNI

XLDnaute Nouveau
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

  • test(1).xlsm
    97.7 KB · Affichages: 3

ZAJNI

XLDnaute Nouveau
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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

  • ZAJNI.xlsm
    18.9 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 007
dernier inscrit
salma_hayek