Tableau dans un Userform ; Textbox ? Listbox ?

Bonjour la communauté,

J'ai un tableau qui comporte 32 colonnes sur 31 lignes.

J'aimerais insérer ce tableau (qui est composé de formule) dans un UserForm, est ce possible ?

Les résultat obtenu dans ce tableau sont soit 0 soit 1 soit 2

Pour 0 j'aimerais ne rien afficher, 1 alors case en vert, 2 alors case en rouge.

Je pourrais utiliser la MFC et laisser sur ma feuille comme ça mais j'aimerais l'intégré directement à mon userform.

Comment vous y prendriez vous ?

- Création de 992 textbox ? (je pense pas )

- Listebox ?

- Autres ?

Merci d'avance et bon dimanche

Bonjour,

Tu peux utiliser un contrôle ActiveX dédié qui réplique la feuille Excel: ActiveX Spreadsheet Control ...

En espèrant que cela t'aide ...

Je vais allez regarder ça de plus près et je te fais un retour !

Merci pour le tuyau

Re,

De rien ...

Merci ... pour tes remerciements ...

Juste une question le contrôle Active X dont tu parle nécessite il une installation quelconque ?

De plus j'ai lu qu'il ne récupérait pas la mise en forme, est ce qu'il est tout de même possible d'instaurer des mise en forme une fois les données récupéré dans le userform ?

J'aimerais que mon tableur soit exportable facilement sans avoir besoin d'installer qqch pour qu'il fonctionne

Re,

Effectivement ... il faut la bonne librairie : Microsoft Office Web Components 11.0 .....

D'accord je vais donc tenter de faire une listbox dans ce cas, j'en ai jamais fait on va voir ce que cela donne !

Je garde le sujet ouvert si jamais j'ai des questions

Re,

Je ne connais ni ton objectif ... ni tes contraintes ... mais il n'y a pas beaucoup de points communs entre une Feuille Excel ...et une ListBox ...

Re,

Voici un fichier exemple. Je n'ai pas mis de UserForm ni de Listbox c'est juste pour que tu vois à quoi ressemble le tableau.

Le premier tableau correspond à ce qu'il est possible de trouver, les données sont obtenu par formule (enlevé dans l'exemple)

Le deuxième tableau correspond au résultat attendu, donc dans une feuille c'est tout facile, mais pour le mettre dans un userform ...

Je sais que les liste box peuvent reprendre des données de tableau, j'ai juste à faire en sorte que celle ci ne soit ni sélectionnable ni modifiable mais après reste le cas de la MFC, réalisable ou non dans des listbox, je pense que oui j'ai vu quelques listbox personnalisé avec des if

485exemple-listbox.xlsx (15.53 Ko)

Bonjour Koko_Swiff

Pas sur de la faisabilité par listbox

test avec textbox

629exemple-listbox.zip (28.89 Ko)

Wow c'est efficace !!

Plus qu'a l'adapter à la taille de l'écran ainsi q'u à mon fichier d'origine et le tour et joué

En tout cas merci car j'aurais pas pensée à remplir les textboxs de cette façon, j'avoue que je me serais surement coltiné textbox par texbox

Bon dimanche et encore merci !


Juste deux interrogation, peut tu m'expliquer les Tx dans ton code ? ainsi que l'utilité des % ?

Private Sub UserForm_Initialize()
Dim Tx%, Lg%, Lg1%, DLg%, Cl%, Cl1%, DCl% 'pourquoi les pourcentage ?
Lg1 = 4: DLg = 32 ' ligne départ / ligne fin
Cl1 = 3: DCl = 33 ' Colonne départ / Colonne fin
Tx = 1 ' Pourquoi ?
On Error Resume Next
   For Lg = Lg1 To DLg  'de la première à la dernière ligne
      Me.Controls("Label" & Lg + 96).Caption = Cells(Lg, Cl1 - 1).Text 'on donne les noms des labels
      For Cl = Cl1 To DCl 'On boucle de la première à la dernière colonnes
        Select Case Cells(Lg, Cl).Value 'Séléctionné l'ensemble des valeurs
          Case 0 'les trois possibilité plus une dernière si vide ou autre
            Me.Controls("textbox" & (Cl - 2 + Tx)).BackColor = &H80000005  '  blanc
          Case 1
            Me.Controls("textbox" & (Cl - 2 + Tx)).BackColor = &HC000&     '  vert
          Case 2
            Me.Controls("textbox" & (Cl - 2 + Tx)).BackColor = vbRed       '  rouge
          Case Else
            Me.Controls("textbox" & (Cl - 2 + Tx)).BackColor = &H80000005  '  blanc
         End Select
       Next Cl ' fin de la boucle colonne
       Tx = Tx + 31 'Pourquoi ?
   Next Lg ' fin de la bouche ligne
End Sub

Bonsoir

le % est le raccourci pour désigner une valeur en integer

tx=1 represente le premier textbox

les lg traites les lignes

les cl traites les colonnes

mais on passe de ligne en ligne et de colonnes en colonnes mais les textbox eux augmentes

dons je passe de 31 textbox en 31 textbox pour chaque ligne

Voila

D'accord je comprends,

En revanche il y avais une erreur dans la reproduction des couleurs avec un jour de décalage.

J'ai donc mis tx = 0 et cela à marché pour Janvier.

J'ai essayer de faire la même manipulation pour Février qui est composé de 29 colonnes (pas de distinction année bisextile).

J'ai donc remplacé :

Cl1 = 3: DCl = 33

'Par 

Cl1 = 36: DCl = 64

Mais je ne comprend pas pourquoi cela ne marche pas. Il n'y a aucun bug mais le résultat demandé est décalé ...

Tu vois pourquoi ça pourrais ne pas marcher ?

Re

IL faut toujours considérer 31 jours même s'il y en a que 29 donc CL1=36 et DCl=66

Rechercher des sujets similaires à "tableau userform textbox listbox"