|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Yves-Marie Développeur informatique Inscription : février 2012 Messages : 4 ![]() |
Bonjour,
Nouveau sur ce Forum, je sollicite votre indulgence pour mon manque d'expérience ! J'ai un souci avec Excel 2010 au sujet du stockage des critères dans les filtres automatiques : SI je filtre une colonne sur un ou deux critère chaîne de caractère ou nombre pas de problème le premier critère est stocké dans Criteria1 sous forme de chaine et si 2ème critère il y a avec OR ou And il est stocké également sous forme de chaine dans Criteria2 Si mon filtre est dans une colonne de Dates, seul Critéria2 est utilisé sous la forme Criteria2:=Array(0, "12/12/2012") par exemple et je suis dans l'incapacité de récupérer ce "12/12/2012". L'exécution de ma macro bloque toujours sur la ligne Criteria2(x) dans laquelle, considérant que Critéria2 est un variant tableau, j'e tente de lire le 2ème élément de ce tableau. Je voudrais comprendre pourquoi cette erreur et pourquoi dans ce cas, seul Critéria2 est mouvementé ! Merci de vos lumières Uppsala |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Annie MARTINEZÉtudiant Inscription : janvier 2012 Messages : 61 ![]() |
Salut,
tu peux poster ta macro ou les parties qui posent probleme. ce serait deja un bon debut pour mieux comprendre ton probleme. |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Yves-Marie Développeur informatique Inscription : février 2012 Messages : 4 ![]() |
Bonjour, Merci de votre réaction
Code :
Entre la version 2003 et celle de 2010 Excel semble avoir changé le format de valeurs de critères |
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Annie MARTINEZÉtudiant Inscription : janvier 2012 Messages : 61 ![]() |
Salut,
Excuse moi pour ce long silence. J'ai regardé ton code mais je ne sais pas ce qui pourrais clocher. J'esperes que quelqu'un d'autre sur le forum aura une reponse. Desolé
|
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Yves-Marie Développeur informatique Inscription : février 2012 Messages : 4 ![]() |
C'est très sympa de donner un signe de vie.
Je savais bien que le code n'ajouterait pas grand choses à la compréhension du problème ! En réalité je constate une différence de comportement entre Excel 2003 et 2010 Le stockage de la valeur du filtre date, dans Excel 2010 se fait sous la forme que j'ai indiquée dans mon premier message c'est à dire Criteria2:=Array(0, "dd/mm/yyyy"). et je ne parviens pas à récupérer le deuxième élément de ce tableau.. Si j'y parvenais, je pourrais installer un test pour détecter le type de donnée de Criteria2, mais ce paramètre reste toujours vide lors du "pas à pas" en Espion. Désespérant ! En enregistrement de macro j'obtiens : Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 775 ![]() |
Bonjour,
Si tu veux lire un élément particulier dans un tableau, il te suffit d'indiquer sa position ordinale (attention, ça commence à 0) : Hervé. |
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 775 ![]() |
Re,
Un conseil, déclare tes variables en les typant, ça évite souvent de s'arracher les cheuveux lors du débogage. Il te faut indiquer en tête de module "Option Explicit" afin que si une variable n'est pas déclarée, le compilateur te l'indique (ceci peut venir d'un faute d'orthographe !!!) et pour que ceci se fasse automatiquement, "Outils" > "Options..." onglet "Editeur" cocher la case "Déclaration des variables obligatoire". Tu peux aussi indenter ton code et séparer les lignes, il en devient beaucoup plus lisible et surtout, commente-le car des mois après, si il est complexe ce sera un vrai casse tête pour le comprendre à nouveau et pire encore si c'est une autre personne qui en a l'entretien. Aussi, quand tu concatène des strings, évite les +, utilise l'esperluette (&) car ici, le compilateur c'est arrêté sur : Code :
Code :
Hervé. |
||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Yves-Marie Développeur informatique Inscription : février 2012 Messages : 4 ![]() |
Merci les amis de ces sages conseils, et surtout de me redonner le courage de chercher !
Il est vrai que je ne suis pas toujours assez rigoureux sur les déclarations de type de variable et sur les commentaires de code. Le problème demeure car ma Sub FiltreActif() fonctionne super bien dans Excel 2003 où les Criteria1 et Critéria2 son récupérable directement en tant que chaînes de caractères, que la(es) colonne(s) filtrée(s) soit en numérique, chaîne ou en date. Alors que dans Excel 2010 si la colonne filtrée contient des dates, Criteria1 n'apparaît jamais et Criteria2 est sous la forme Array mais reste illisible comme expliqué dans mes précédents messages. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com