Changer Dtpicker par Datepicker

Bonjour le Forum.

Pour un projet professionnel, j'ai repris un classeur développé en collaboration avec le Forum pour une recherche entre deux dates avec des Dtpickers et filtre dans la Listbox.

Avec mes collaborateurs, nous avons différentes version d'Excel et les droits d'administration ne nous permettent pas d'installer les ocx et dll nécessaires. En ayant lu sur internet que l'on pouvait contourner cette barrière en utilisant un calendrier avec un Userform, j'ai commencé les modifications de mon fichier.

Et c'est là que je bloque avec l'adaptation du code. Je viens vers vous pour pouvoir m'aider à la modification.

Un fichier vaut mieux q' un grand discours.

Par avance, merci

Licaon.

En relisant mon post, lmon contrôle datepicker est en fait un calendier autonome.

Bonjour,

Ton fichier adapté

A+

Bonjour Galopin01, rebonjour le Forum.

Merci Galopin01 pour ton intervention.

Je suis actuellement au bureau (sous Excel 2010), et en testant le fichier, un message "Erreur de compilation : Projet ou bibliothèque introuvable".

Sur la ligne "Me.tbDat1 = Date, le mot Date est mis en surbrillance.

Une orientation ?

Licaon.

Dans VBA : Outils / Références décocher la (les) bibliothèques déclarées manquantes.

A+

Bonjour Galopin01, bonjour le Forum.

J'ai suivi ta recommandation : Outils / Références........ et l'Userform se lance.

Par contre, en sélectionnant les dates, le filtre ne fonctionne plus.

Après plusieurs essais de modification du code, je ne trouve ce qui ne vas pas.

Une orientation ?

Par avance, merci.

Licaon.

Bonjour,

A l'origine je n'ai travaillé que sur l'adaptation du calendrier...

Le fichier un peu modifié.

Nota : Je n'ai travaillé que sur le transfert de l'affichage vers la feuille synthèse.

Pas sur le filtrage de la feuille données...

Pour afficher le filtre sur la feuille de donnée (à la sortie du UserForm) décommenter la ligne indiquée dans CommandButton2_Click

A+

En fait, le filtre doit s'effectuer dans la listbox. Lorsque je sélectionne les deux dates, rien ne s'affiche dans celle-ci.

A te lire.

Licaon

Je n'ai pas ce problème :

licaon

A+

Peut-être un problème lié à la version Excel, j'utilise Excel 2007 à la maison et 2010 au bureau, et cela ne fonctionne pas.

Licaon.

Je ne sais pas. Je ne peux pas te dire. Je trouve étonnant que ça ne fonctionne pas sans message d'erreur. Est-ce vraiment mon fichier ou une copie plus ou moins ressemblante ??

Ça ne fonctionne pas où ? sur 2007 ? sur 2010 ? Sur 2007 ça ne m'étonne pas trop : A la vitesse ou vont les chose ça fait un peu l'effet d'un gentil dinosaure perdu dans la jungle des nouveautés.

Mébon je trouve quand même ça bizarre. Encore une fois, je ne suis pas intervenu à ce niveau : J'ai juste changé les calendrier, je n'ai rien changé sur le reste du UserForm Si ça marchait avant YAPA de raison que ça ne marche plus maintenant.

Si tu me donnes des messages d'erreurs, des copies d'écran de la ligne qui fâche, je veux bien me pencher là dessus, mais avec juste "ça ne fonctionne pas" c'est un peu juste comme symptôme.

A+

Bonjour Galopin01, bonjour le Forum.

J'ai suivi ta recommandation : Outils / Références........ et l'Userform se lance.

Par contre, en sélectionnant les dates, le filtre ne fonctionne plus.

Après plusieurs essais de modification du code, je ne trouve ce qui ne vas pas.

Bon enfin quand je donne du code c'est pas destiné à être modifié... J'ai revérifié mon dernier fichier joint. YAPA de truc caché. dès fois ça peux m'arrivé de semer involontairement de petites modifs qui peuvent passer inaperçu mais qui font toute la différence, mais là : Rien, nada pas l'ombre d'une difficulté. Après je peux pas t'en dire plus.

PS :J'ai oublié de supprimer les modules 2 et 3 qui ne servent à rien tu peux les supprimer sans problème !

A+

Bonjour Galopin01, bonjour le Forum.

Excuse moi de t'avoir froissé par "Après plusieurs essais de modification du code", je voulais plus dire après plusieurs recherches pour tenter de trouver d'où venait l'anomalie

De plus, si je sollicite de l'aide sur le Forum, et je ne suis pas le seul à le penser, c'est que des contributeurs de haut niveau comme toi nous apportent moult solutions.

J'ai supprimer les modules 2 et 3 et le résultat reste le même sur Excel 2007. Je vérifie au bureau sur Excel 2010 en fin de matinée.

Bonne journée.

Licaon.

Je ne suis pas froissé : C'était juste une évidence : Je ne peux parler que pour le fichier tel que je l'ai modifié.

Pour n'importe le problème, après quand ça passe sur votre matériel et quand vous faites des Copier/Coller du code, on passe à d'autres problèmes et dans ce cas il importe de tout spécifier. Les messages d'erreurs faire des copies d'écran, accepter le débogage montrer la ligne qui bloque (en surbrillance).

Et dans la plupart des cas joindre tout le classeur car les macros sont rarement indépendantes et dépendent bien souvent de détails insignifiants. C'est pour ça que j'ai tout vérifié. Mébon dans ce cas il n'y a rien de bien particulier donc s'il y a un problème ça ne peut être du qu'à la compatibilité remontante : Les versions antérieures font rarement bon ménage surtout si on utilise des outils récents.

C'est le cas en particulier pour ce filtre avancé qui ne présente aucun intéret la macro n'aurait pas été plus compliquée à monter, ni plus longue à s'exécuter en VBA pur. Personnellement je n'utilise pratiquement jamais ces formules qui n'existaient pas il y a 20 ans. (Et pourtant on a quand même marcher sur la Lune... bien avant Microsoft et tous ses PowerTruc)

A+

Bonjour Galopin01, bonjour le Forum.

Il semblerait que ce soit un problème de compatibilité entre les versions Excel.

Au travail, sous Office 2010, classeur testé sur deux postes, pas de souci.

A la maison nos 2 PC fonctionnent avec Office 2007 et le filtre ne s'opère pas .

Créant la plupart de mes classeurs à la maison, c'est pénalisant

Là où cela cloche, c'est lorsque la date est modifiée en tbDat1 et/ou en tbDat2 , la listbox se vide.

Bonne journée.

Licaon.

Oui je comprend, Il faut que je voie : YAPA que les filtres automatiques dans la vie... Il y a bien moyen de faire autrement, je ne me suis pas penché dessus parce que j'ai pensé que si tu avais utilisé des filtres automatiques c'est que si ça marchait bien avec il n' avait pas de raison que ça change ! Mébon... Je ne suis pas disponible aujourd'hui mais demain je réfléchirai à la question et je te le ferai "à l'ancienne" c'est à dire comme d'habitude car je ne trouve aucun intérêt à toutes ces nouveautés qui ne servent que d'argument de vente pour des versions toujours "plus..."

A+

Bon finalement je t'ai arrangé ça au petits oignons !

Donc je rappelle que le but de la manœuvre est de supprimer le filtre automatique qui ne sert à rien.

J'ai aussi eu un peu de mal avec tes calendrier que je trouve un peu compliqués mébon comme je ne tiens pas forcément à te vendre le mien... je me suis débrouillé avec.

Sinon j'ai aussi complètement refondu ton UserForm parce que c'était plus commode de tout recommencer plutôt que de reprendre pas à pas.

Principale innovation : les Feuilles Données et Synthèse on dans VBA un nom caché qui s'appelle le CodeName. J'ai donc renommé ces feuilles WsD (pour Données) et WsS (pour Synthèse)

Le principal avantage est que ça permet d'utiliser ce nom très court dans tout le code sans être obligé de passer par des déclarations à rallonge. Autre avantage : Même si un jour pour une raison ou une autre la feuille change de nom... VBA s'en fiche !

Pour renommer ces feuilles dans VBA, cela se passe dans la fenêtre des propriétés de chaque feuille comme indiqué sur cette image.

cdename

Sinon pour le reste, le code est lipide (et commenté à minima... ) mais si tu as besoin de détails YAKA demander !

A+

Bonjour Galopin01, bonjour le Forum.

Merci Galopin01 pour ce beau travail durant ton week-end.

Il y a une erreur d'exécution "13" dés que je change une date. J'ai attendu de vérifier le fonctionnement au bureauavant de te répondre.

Le mode débogage met en surbrillance

b = Application.Transpose(Application.Transpose(D.items)) 'on charge un Array avec le contenu du Dico

de du Sub Galopin, aussi bien sur les versions 2007,(poste perso) et 2010,(poste Pro) d'Excel.

Ton code ne m'étant pas familier, je ne vois pas où faire la correction.

Bonne journée.

Licaon.

Désolé... Je ne suis pas archéologue. Il faudra voir avec des internautes qui disposent de bécanes un peu anciennes pour voir comment résoudre ça.

JB à mon secours !

Bonsoir,

Remplacement de DTpicker par un calendrier autonome.

Pour le filtre, je passerais par un Array() et .List

Boisgontier

Pour le filtre, je passerais par un Array() et .List

Bonjour mon ami et merci d'être passé par là :

C'est bien ce que j'ai fait dans le fichier suivant :

Ce qui ne provoque pas d'erreur sur 2016...

mais avec 2010 et 2007 notre ami Licaon à une erreur 13 sur cette ligne :

b = Application.Transpose(Application.Transpose(D.items)) 'on charge un Array avec le contenu du Dico

Voici la macro en question :

Private Sub Galopin()      'Remplace le filtre automatique dans le usfChercheDate
   Dim a, b, D, i&, Y
   a = rng.Value
   Set D = CreateObject("Scripting.Dictionary")
   For i = 1 To UBound(a)  'On charge le Dico
      Y = a(i, 1) >= iDeb And a(i, 1) <= iFin
       If Y Then
          D.Item(i) = Array(a(i, 1), a(i, 2), a(i, 3), a(i, 4))
        End If
   Next
   b = Application.Transpose(Application.Transpose(D.items)) 'on charge un Array avec le contenu du Dico
   Me.LbData.List = b      'Recharge le ListBox
   Me.LbData.ListIndex = 0 'Force la sélection du premier enregistrement
End Sub

As-tu une idée pour contourner ce problème ?

Merci

Rechercher des sujets similaires à "changer dtpicker datepicker"