Probleme VB Excel

JULIOS86 Messages postés 8 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 1 août 2008 - 9 juil. 2008 à 11:52
cs_ankhsuamon Messages postés 4 Date d'inscription jeudi 21 décembre 2000 Statut Membre Dernière intervention 24 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

6 réponses

JULIOS86 Messages postés 8 Date d'inscription mercredi 9 juillet 2008 Statut Membre Derniè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é

Merci de m'aider
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
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.

Molenn
0
JULIOS86 Messages postés 8 Date d'inscription mercredi 9 juillet 2008 Statut Membre Derniè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.

Merci encore.
0
JULIOS86 Messages postés 8 Date d'inscription mercredi 9 juillet 2008 Statut Membre Derniè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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JULIOS86 Messages postés 8 Date d'inscription mercredi 9 juillet 2008 Statut Membre Derniè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
0
cs_ankhsuamon Messages postés 4 Date d'inscription jeudi 21 décembre 2000 Statut Membre Dernière intervention 24 septembre 2008
24 sept. 2008 à 20:48
Hello,



Si ton problème est de réinitialiser tes filtres a partir d'un bouton, y a pas plus simple que ca :






Private Sub CommandButton1_Click()   ActiveSheet.Cells(1, 1).Select

   If Selection.AutoFilter Then

      Selection.AutoFilter Field:=1

   End If

End Sub
0
Rejoignez-nous