JULIOS86
Messages postés8Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention 1 août 2008
-
9 juil. 2008 à 11:52
cs_ankhsuamon
Messages postés4Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention24 septembre 2008
-
24 sept. 2008 à 20:48
Bonjour,
Je travail actuellement sur une base de données Excel, j'utilise des filtres automatique, et je souhaitait mettre en place un bouton pour réinitialisé mes filtres.
Apres avoir consulter l'aide de Vb il m'indique qu'il faut rentrer ce prog la:
Worksheets("Feuil1").ShowAllData
Lorsque j'appui sur mon bouton il me lance:
Erreur d'execution "9"
Indice en dehors de la page
Comment puije réalisé un bouton qui fonctionne?
De plus je souhaite réalisé une zone de recherche sur excel a partir de VB sans passer par les filtres,quelqun aurait-il un exemple pour m'aider je débute.
Merci d'avance
Config:
Windows 2000Pro
Office 97
Visual Basic 87-97
JULIOS86
Messages postés8Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention 1 août 2008 9 juil. 2008 à 11:56
Mon classeur s'appelle pour l'essai: Base de données123
Mon onglet : Documentations
Donc ma page sous VB : Feuil1(Documentations)
J'ai programmer mon bouton de la facon suivante :
Dans le code
Private Sub CommandButton1_Click()
Worksheets("feuil1").ShowAllData
End Sub
Erreur d'execution "9"
Indice en dehors de la page
Puis j'ai essayer
Private Sub CommandButton1_Click()
Worksheets("Documentations").ShowAllData
End Sub
Apres essai le code erreur change,
Erreur d'execution "1004"
La méthode ShowAllData de la classe Worksheet a échoué
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 9 juil. 2008 à 14:27
Il y a deux choses qui font que ça peut planter :
- Je crois qu'il faut que la feuille soit activée pour pouvoir faire la manip, donc, tu peux avoir l'erreur si le code est contenu dans une autre feuille ou un module
- L'autre point, c'est que lancer cette commande entraîne un plantage si toutes les données sont déjà affichées
Pour résoudre le pb (j'ai galéré un moment avant de trouver la syntaxe, faut dire que l'aide n'est pas géniale là-dessus), j'ai du feinter (s'il y a plus simple, je suis preneur ) :
Le principe est simple, pour savoir si toutes les données sont affichées ou non, il suffit lorsqu'on est sur la feuille EXCEL, de regarder le menu Données\Filtrer.
Si afficher tout est grisé, c'est qu'il n'y a pas de filtres en cours.
A partir de là, j'ai écrit ce petit bout de code :
'Définition des variables
Dim Pop As CommandBarPopup
'Vérification qu'il n'y a pas de filtres automatiques, si oui, affichage de toutes les données
Worksheets("Feuil1").Activate
Set Pop = CommandBars("Data").Controls("&Filtrer")
If Pop.Controls("&Afficher tout").Enabled = True Then
Worksheets("Feuil1").ShowAllData
End If
Attention, ça ne fonctionnera que sur une version française d'Excel, mais à la lecture du code, tu vois ce qu'il faut modifier si tu as la version internationale.
D'ailleurs, vous noterez au passage la logique de la syntaxe :
Commandbars, le nom est en anglais
Controls, le nom est en français.
JULIOS86
Messages postés8Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention 1 août 2008 9 juil. 2008 à 15:33
Je te remerci de ton aide mais hélas cela ne me dit pas comment utiliser mon bouton.
Private Sub CommandButton1_Click()
??????????
End Sub
Désolé je débute dans le VB.
Sinon j'ai déja éssayer avec un filtre actif et j'ai obtenu le même résultat.
A-tu une idée concernant le principe de faire un filtre sur une base de donnée a partir de VB de maniere a obtenir une recherche facile.
J'ai une liste de Fabriquant, une liste de lien web en relation avc les fabriquant et une lisate de mots clefs eux aussi en relation avec les fabriquants.
Je ne sais pas par ou commencer donc je suis completement perdu.
JULIOS86
Messages postés8Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention 1 août 2008 9 juil. 2008 à 15:48
Pour mon bouton j'ai fait un essai avec cette commande la:
Private Sub CommandButton1_Click()
Dim Pop As CommandBarPopup
Worksheets("Documentations").Activate
Set Pop = CommandBars("Data").Controls("&Filter")
If Pop.Controls("&Afficher tout").Enabled = True Then
Worksheets("Documentations").ShowAllData
End If
End Sub
Le resultat est :
Erreur d'éxecution "5"
Argument ou appel de procedure incorecte
et il me surligne
Set Pop = CommandBars("Data").Controls("&Filter")
Je ne sais plus quoi faire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
JULIOS86
Messages postés8Date d'inscriptionmercredi 9 juillet 2008StatutMembreDernière intervention 1 août 2008 9 juil. 2008 à 16:12
Apres quelque modif Anglais/ Francais , j'ai réussi à obtenir un bouton sans défaut mais aussi sans aucun effet.
Private Sub CommandButton2_Click()
Dim Pop As CommandBarPopup
Worksheets("Documentations").Activate
Set Pop = CommandBars("Data").Controls("&Filtre")
If Pop.Controls("&Afficher tout").Enabled = True Then
Worksheets("Documentations").ShowAllData
End If
End Sub
Je me demande maintenant pourquoi il ne fais pas effet.
Si quelqun à une reponce éventuel.
Merci