Afficher Tableaux Excel dans Userform

AzoR

XLDnaute Occasionnel
Bonjour !

Je souhaiterai afficher 3 tableaux contenus dans ma feuille 1 dans 3 userform distinct lors d'un clic sur mon bouton "Afficher valeurs" de mon UserForm1 (onglet 2).

Le soucis est que rien ne s'affiche dans l'userform. J'ai essayer avec SpreadSheet et ListBox mais aucun des deux ne fonctionnent je dois oublier de faire quelque chose.

Sub Remplir_ListBox(ListBox, Cellule, Nb_Ligne, Nb_Colonne)

Nb_Ligne = 8
Nb_Colonne = 8

'Permet de peupler une ListBox en précisant la première cellule du tableau et ses dimensions

ListBox.ColumnCount = 8

For ligne = 0 To 7
ListBox.AddItem Cellule.Offset(ligne, 0)
For colonne = 1 To 7
ListBox.List(ligne, colonne) = Cellule.Offset(ligne, colonne)
Next
Next

Private Sub UserForm_Initialize()
'Testé avec Excel2007 & OWC11
Dim Tableau() As Variant
Dim x As String

x = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Address

Tableau = Range("A1:" & x)
Spreadsheet1.ActiveSheet.Range("A1:" & x) = Tableau
End Sub

( Le dernier utilise OWC11 que je n'ai pas sur mon pc donc celui-ci c'est "normal" je pense qu'il ne fonctionne pas. )

Avez vous une idée ? Mon programme est en pièce jointe ( j'ai réalisé seulement l'UserForm2 pour tester pour l'instant )

Merci d'avance !
 

Pièces jointes

  • V15interface.xls
    214.5 KB · Affichages: 37
  • V15interface.xls
    214.5 KB · Affichages: 32
  • V15interface.xls
    214.5 KB · Affichages: 41

NezQuiCoule

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Re-bonjour AzoR, le forum,

Je n'arrive pas à travailler sur ton fichier étant donné que tu travailles avec des bibliothèques que je ne possède pas (messages d'erreur à l'exécution etc.. )

En revanche, le code que j'ai fait (le 1er) est mal utilisé dans ton code. Il faut que tu créés d'abord une listbox dans ton UserForm2, ou bien que tu l'ajoutes avec du code, ensuite il suffit de faire appel à la procédure Remplir_ListBox en précisant les paramètres.

Soit :

Code:
Call Remplir_ListBox(ListBox1, Sheets(1).Range("K31"), 8, 8)

Ensuite, ce code :

Code:
Sub Remplir_ListBox(LB, Cellule, Nb_Ligne, Nb_Colonne)
'Permet de peupler une ListBox en précisant la première cellule du tableau et ses dimensions

LB.ColumnCount = Nb_Colonne

For ligne = 0 To 7
LB.AddItem Cellule.Offset(ligne, 0)
For colonne = 1 To 7
LB.List(ligne, colonne) = Cellule.Offset(ligne, colonne)
Next
Next 

End Sub

Il doit se trouver de préférence dans un module, et pas dans un UserForm.

Sachant que tu utilises Option Explicit, il sera probable que tu doives déclarer chaque variable dans Remplir_ListBox

Dans le code de l'UserForm2, tu as créer la procédure UserForm2_Initialize, qui ne fera pas ce que tu attends. Tu dois créer avec UserForm_Initialize (comme pour le 1er)
 
Dernière édition:

AzoR

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Re NezQuiCoule !

Cela me met ListBox1 non défini.

J'ai mis :

-
Option Explicit

Private Sub UserForm_Initialize()
Dim ListBox As Variant

Call Remplir_ListBox(ListBox1, Sheets(1).Range("K31"), 8, 8)

End Sub
dans UserForm2

- et
Option Explicit

Sub Remplir_ListBox(ListBox, Cellule, Nb_Ligne, Nb_Colonne)
'Permet de peupler une ListBox en précisant la première cellule du tableau et ses dimensions

ListBox.ColumnCount = Nb_Colonne

For ligne = 0 To 7
ListBox.AddItem Cellule.Offset(ligne, 0)
For colonne = 1 To 7
ListBox.List(ligne, colonne) = Cellule.Offset(ligne, colonne)
Next
Next

End Sub
dans mon module 3.

Comment faire pour définir mon ListBox1 ?
 

NezQuiCoule

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Code:
Option Explicit

Private Sub UserForm_Initialize()
Dim LB As Object
Set LB = Me.ListBox1
Call Remplir_ListBox(LB, Sheets(1).Range("K31"), 8, 8)

End Sub

Code:
Option Explicit

Public Sub Remplir_ListBox(LB As Object, Cellule As Range, Nb_Ligne As Integer, Nb_Colonne As Integer)
'Permet de peupler une ListBox en précisant la première cellule du tableau et ses dimensions

LB.ColumnCount = Nb_Colonne

Dim ligne As Integer
Dim colonne As Integer

For ligne = 0 To 7
ListBox.AddItem Cellule.Offset(ligne, 0)
For colonne = 1 To 7
ListBox.List(ligne, colonne) = Cellule.Offset(ligne, colonne)
Next
Next

End Sub

Normalement en remplaçant par ces procédures ça devrait te donner un résultat, à condition que tu aies créé une listbox portant le nom "ListBox1" dans l'UserForm2
 

AzoR

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Bonjour à toi !

C'est bon enfaite j'ai réussi à tout faire et du coup juste avec les paramètres d'une listbox dans mes userforms. Ils s'affichent ainsi :

screen.JPG

Par contre je n'arrive pas du tout à afficher les trois fenêtres en même temps, je suis obligé de fermer l'userform2 pour afficher l'userform3 et de fermer l'userform3 pour afficher l'userform4.

J'ai simplement écrit ceci en code :
Private Sub CommandButton3_Click()

UserForm2.Show
UserForm3.Show
UserForm4.Show

End Sub


Une idée pour afficher les trois fenêtres en même temps ?

Cordialement, AzoR
 

Pièces jointes

  • screen.JPG
    screen.JPG
    19.5 KB · Affichages: 74
  • screen.JPG
    screen.JPG
    19.5 KB · Affichages: 51

NezQuiCoule

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Ah ! Ravi que tu aies réussi ! ;)

Pour afficher les 3 en même temps, rien de plus simple !

Code:
Private Sub CommandButton3_Click()

UserForm2.Show False
UserForm3.Show False
UserForm4.Show False

End Sub

False permet d'afficher un Userform en mode "non-modal", c'est à dire qu'on peut quitter le focus de la fenêtre. Attention donc à bien penser à les fermer.

En bonus, on peut afficher les 3 fenêtres côte-à-côte (si ça tient sur l'écran en longueur) :

Code:
Private Sub CommandButton3_Click()

UserForm2.Show False
UserForm3.Show False
UserForm4.Show False

UserForm2.Left = UserForm3.Left - UserForm2.Width
UserForm4.Left = UserForm3.Left + UserForm3.Width
UserForm2.Top = UserForm3.Top
UserForm4.Top = UserForm3.Top

End Sub
 

AzoR

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

C'est bon enfaite j'ai trouver, c'était avec l'option ShowModal=False dans les paramètres de mes USF ;)

Je cherche maintenant comment les afficher côte à côte afin de ne pas avoir besoin de les bouger car elles sont superposée là
 

AzoR

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Ah niquel pour l'affichage côte-à-côte ! J'ai mis le plancher au milieu pour un rendu plus "esthétique".

Maintenant que je peux tout faire depuis mon interface, comment puis-je faire pour que la feuille de calcul excel ne s'ouvre pas ?

En gros pour que quand j'ouvre mon fichier, seul l'interface (UserForm1) s'ouvre ?
 

NezQuiCoule

XLDnaute Occasionnel
Re : Afficher Tableaux Excel dans Userform

Hmm ça doit être réalisable.. Essaie d'ajouter ce code dans le code de l'objet ThisWorkbook :

Code:
Private Sub Workbook_Open()
    UserForm1.Show False
    Application.Visible = False
End Sub

Puis sur l'UserForm1 :

Code:
Private Sub UserForm_Terminate()
    Application.DisplayAlerts = False
    Application.Visible = True
    ThisWorkbook.Close True
End Sub
 

Discussions similaires

Réponses
5
Affichages
431

Statistiques des forums

Discussions
312 492
Messages
2 088 893
Membres
103 982
dernier inscrit
krakencolas