Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2013 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu][VBA-Excel]Problème d'affichage de feuille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][VBA-Excel]Problème d'affichage de feuille

n°1777719
Venceslas2​010
Posté le 26-08-2008 à 14:31:11  profilanswer
 

Alors voilà, en essayant de faire une listbox qui permettrait de changer de page, je tombe toujours avec une erreur que je ne parviens pas à résoudre.
 
Voilà mon programme (j'ai fait ma listbox dans ma userform):
 

Code :
  1. Sub ListBox1_Change()
  2. If ListBox1.Selected(0) = True Then   -<Erreur Ici  :"Erreur d'exécution 424 : Objet Requis"
  3. Call Affichage_Feuille1
  4. ElseIf ListBox1.Selected(1) = True Then
  5. Call Affichage_Feuille2
  6. Else: Call Affichage_Feuille3
  7. End If
  8. End Sub


 
Voilà les procédures d'affichage :

Code :
  1. Sub Affichage_Feuille1()
  2. Dim MaFeuille
  3.    MaFeuille = "Feuil1"
  4.    Sheets(MaFeuille).Visible = xlSheetVisible
  5.    Sheets(MaFeuille).Activate
  6. End Sub
  7. Sub Affichage_Feuille2()
  8. Dim MaFeuille
  9.    MaFeuille = "Feuil2"
  10.    Sheets(MaFeuille).Visible = xlSheetVisible
  11.    Sheets(MaFeuille).Activate
  12. End Sub
  13. Sub Affichage_Feuille3()
  14. Dim MaFeuille
  15.    MaFeuille = "Feuil3"
  16.    Sheets(MaFeuille).Visible = xlSheetVisible
  17.    Sheets(MaFeuille).Activate
  18. End Sub


 
 
J'ai vérifié les dénominations, pas de problème, mais ça ne fonctionne pas (j'ai rempli ma listbox à part).
 
Merci d'avance d'un potentiel coup de main.


Message édité par Venceslas2010 le 27-08-2008 à 16:15:40
mood
Publicité
Posté le 26-08-2008 à 14:31:11  profilanswer
 

n°1778273
Moonschild
Posté le 27-08-2008 à 13:53:52  profilanswer
 

Essaye plutot en utilisant une seule fonction Affichage_Feuille. En clair, fais seulement un

Code :
  1. Sub Affichage_Feuille2(byval feuil as string)
  2.    Sheets(feuil).Visible = xlSheetVisible
  3.    Sheets(feuil).Activate
  4. End Sub


Et ensuite, pour l'appeler, plutot de que verifier si ta listbox est soit de valeur 1 soit de valeur 2 soit de valeur 3, passe juste sa valeur en parametre de la fonction afficher_feuille :

Code :
  1. Sub ListBox1_Change()
  2. Dim feuil as string
  3. feuil = ListBox1.value
  4. afficher_feuille(feuil)
  5. End Sub


n°1778289
Venceslas2​010
Posté le 27-08-2008 à 14:25:22  profilanswer
 

Hum, alors, en utilisant ta méthode, j'aboutis à la même erreur : erreur 424 (j'ai bien remplacé afficher_feuille par Affichage_Feuille 2), mais j'arrive de nouveau à un problème d'objet...
A la ligne 3 où tu a ttribues à la "feuil" la valeur de la List_Box1...
Etrange, n'est-il pas?
Donc en résumé, toujours coincé par la même erreur.

n°1778293
Moonschild
Posté le 27-08-2008 à 14:35:20  profilanswer
 

J'ai oublié de preciser qu'il fallait mettre sheets(nom_de_la_feuille_où_y'a_la_lb) avant listbox1.value
Voici une boucle que j'utilise et qui me permet de faire une comparaison entre des noms inscrits dans des cellules et la valeur séléctionnée dans la listbox, et de recuperer le numero de ligne correspondant, si cela peut t'aider...

Code :
  1. l = 0
  2. While Sheets(fParametres).Range("Redacteur" ).Offset(1 + l, 0).Value <> Sheets(fParametres).lbArchi.Value
  3.     l = l + 1
  4. Wend


Le Range("Redacteur" ).Offset(1 + l, 0) me permet de selectionner la cellule qui a un décalage de 1+l ligne par rapport a la cellule que j'ai nommé "Redacteur"...
 
J'espere que ce coup-ci sera la bonne... ;)


Message édité par Moonschild le 27-08-2008 à 14:36:33
n°1778310
Venceslas2​010
Posté le 27-08-2008 à 14:52:43  profilanswer
 

Alors, ça ne fonctionne toujours pas...
Voilà mes lignes de code
 
 

Code :
  1. 1.Sub Affichage_Feuille2(ByVal feuil As String)
  2. 2.   Sheets(feuil).Visible = xlSheetVisible
  3. 3.   Sheets(feuil).Activate
  4. 4.End Sub
  5. 1.Private Sub ListBox1_Change()
  6. 2.Dim feuil As String
  7. 3.feuil = Sheets(Feuil1).ListBox1.Value
  8. 4.Affichage_Feuille2 (feuil)
  9. 5.End Sub


 
 
 
Erreur à la ligne 3  : Erreur 13 :"Incompatibilité de type"...
 
 
 
Pour éclaircir le problème, je vais t'expliquer ce que je cherche à faire :
Alors, en fait je crée une LB dans une Userform, car je voudrais qu'elle reste au premier plan pendant qu'à l'arrière s'affiche la feuille qui porte le même nom que ce qu'il y a de sélectionné dans la LB... C'est pour ça, quand tu me demandes sur quelle page se trouve la LB, je ne peux pas vraiment répondre...  
 
Voilà,
Merci d'avance.


Message édité par Venceslas2010 le 27-08-2008 à 15:01:38
n°1778311
Moonschild
Posté le 27-08-2008 à 14:57:15  profilanswer
 

Ah d'accord, en fait je pensais que la listbox était intégrée a une feuille... Dans ce cas, si tu l'as fais dans une userform, replace "sheets("feuil1" )" par le nom de ton userform...  
En théorie ca devrait fonctionner, le cas échéant, j'approfondirai afin de te trouver une solution, tiens moi au courant....
PS: afin d'eviter les foudres des moderateurs, insere une balise "[code]" au debut de ton code et une balise fermante a la fin ;)
 
Edit : Le code va evidement dans le code de ton userform....


Message édité par Moonschild le 27-08-2008 à 14:58:38
n°1778320
Venceslas2​010
Posté le 27-08-2008 à 15:06:45  profilanswer
 

Alors, ça progresse, c'est plus la même erreur : à la même ligne, cette fois-ci, j'ai "Erreur 94: utilisation incorrecte de Null"...
J'ai remplacé Sheets (...) par UserForm1 (me casse pas la tête à changer les noms, moi)...
Mais ça mène à une autre erreur...
Ca va finir par marcher...
 
EDIT: Ca marche, c'st bon, merci beaucoup...
Hum, petite question au passage, sais-tu s'il est possible de faire la même chose à la seule différence que là, il n'est plus nécessaire de cliquer sur la sélection après avoir fait tourner la liste (par exemple, là je dois faire tourner la liste puis cliquer pour que ça marche, mais je voudrais que ça se fasse automatiquement quand je tourne... Merci d'avance!)


Message édité par Venceslas2010 le 27-08-2008 à 15:17:07
n°1778332
Moonschild
Posté le 27-08-2008 à 15:17:45  profilanswer
 

Voila ce que j'ai fais : J'ai ouvert un nouveau fichiers xls, et j'ai créé dans les macro un userform que j'ai, comme toi, laissé avec le nom d'origine. Dans le code de ce userform1(que j'active avec un bouton dans la feuil1 par un "userform1.show" ), voila ce que j'ai mis

Code :
  1. Option Explicit
  2. Private Sub ListBox1_Click()
  3.     Dim feuil As String
  4.     feuil = Me.ListBox1.Value
  5.     Sheets(feuil).Select
  6. End Sub
  7. Private Sub UserForm_Activate()
  8.     Me.ListBox1.AddItem "feuil1"
  9.     Me.ListBox1.AddItem "feuil2"
  10.     Me.ListBox1.AddItem "feuil3"
  11. End Sub


Ceci permet de changer de feuille en cliquant directement sur le nom de la feuille dans la listbox... ce n'est pas exactement ce que tu demandes, mais cette base fonctionne, a toi de voir si tu peux l'adapter a ton probleme ;)


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1778357
Venceslas2​010
Posté le 27-08-2008 à 15:40:06  profilanswer
 

C'était exactement le résultat auquel j'arrivais avec mon code quelque peu bancal.
Donc Merci beaucoup, j'essaierai de ma débrouiller pour l'adapter...
Pour le bouton j'y ai pensé aussi (les grands (enfin "grands" ) esprits se rencontrent) donc de ce point de vue là pas de problème.
Merci encore!

n°1778361
Moonschild
Posté le 27-08-2008 à 15:42:24  profilanswer
 

Aucun probleme ;)
On a enfin réussit a avoir ce que tu voulais ^^
PS: un p'tit [Résolu] dans ton titre de post, ca peut servir a d'autres :)
Bon courage pour la suite ;)


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
mood
Publicité
Posté le 27-08-2008 à 15:42:24  profilanswer
 

n°1778397
Venceslas2​010
Posté le 27-08-2008 à 16:16:14  profilanswer
 

OK Merci Bonne continuation et bon courage à toi de même.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu][VBA-Excel]Problème d'affichage de feuille

 

Sujets relatifs
Problème avec windev et SQL[VBA EXCEL 2007] macro ultra lente
Problème sur IE mais pas sur Firefoxproblème de debugage
[RESOLU] Tri + somme pour une colonne[RESOLU] Visual C++ 6.0 : Plantage à la compilation
Cpie de fichier [RESOLU][VBA] Supprimer un saut de page
Plus de sujets relatifs à : [Résolu][VBA-Excel]Problème d'affichage de feuille


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR