Importer une grille Excel dans un userform

Bonjour,

je cherche à afficher une portion de grille excel dans un userform. J'ai lu que c'était faisable avec l'outil "SpreadSheet". Mon problème est que je n'e l'ai pas dans les contrôles supplémentaires de ma boîte à outil (quand je fais clic droit pour ajouter un contrôle). Dans l'ordre alphabétique il devrait se trouver entre "Shockwawe Flash Object" et "S T SUpld CopyCtl Class" mais il ne s'y trouve pas.

Merci

Salut le forum

Microsoft Office SpreadSheet 9.0 à 11.0

Ils devraient être la

Mytå

Ok, merci Myta. J'ai téléchargé une MàJ et le problème est résolu.

Encore une petite question.

Est ce possible d'afficher dans un userform (avec Microsoft Office SpreadSheet 11.0 donc), une feuille excel active ? Je veux dire afficher le contenu d'une des feuille du classeur et non une nouvelle feuille excel.

En clair, je voudrais afficher dans un userform une plage de cellules contenant des données excel

Merci encore

Bonjour

Un exemple pour afficher le contenu de la feuille active dans un contrôle SpreadSheet :

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

bon week end

michel

Magnifique ! Sauf que ça ne prend pas en compte les enrichissements (mise en forme des cellules). Entre temps j'ai "bidouillé" un simple copié collé qui fait mon affaire :

Private Sub CommandButton1_Click()
    Worksheets("MaFeuille").Range("A1:B5").Select
    Selection.Copy
    Spreadsheet1.ActiveCell.Paste
End Sub

Et ça marche aussi.

En tout cas, une fois de plus un grand merci et bravo pour votre disponibilité.

A bientôt

Bonjour tout le monde, pour rester sur ce même sujet, je suis tombé en cherchant sur internet sur ce code :

'Copie" la plage  Feuil1!A1 à c10 dans le contrôle Image1
Private Declare Function GetTempFileNameA Lib "Kernel32" _
  (ByVal lpszPath As String, ByVal lpPrefixString As String, _
  ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
Private Declare Function OpenClipboard Lib "user32" _
  (ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function GetClipboardData Lib "user32" _
  (ByVal uFormat As Long) As Long
Private Declare Function CopyEnhMetaFileA Lib "gdi32" _
  (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function DeleteEnhMetaFile Lib "gdi32" _
  (ByVal hDC As Long) As Long

Private Sub CommandButton1_Click()
  Dim FicTmp As String
  FicTmp = Space(160)
  GetTempFileNameA Environ("TMP"), "", 0, FicTmp
  FicTmp = Left$(FicTmp, InStr(FicTmp, vbNullChar) - 1)
  Worksheets("Feuil1").Range("A1:c10").CopyPicture
  OpenClipboard 0
  DeleteEnhMetaFile CopyEnhMetaFileA(GetClipboardData(14), FicTmp)
  CloseClipboard
  With UserForm1
    .Image1.Picture = LoadPicture(FicTmp)
    Kill FicTmp
  End With
End Sub

Il correspond pile poil à ce que je souhaitais, à savoir pouvoir visualiser une plage d'une grille excel dans un userform. Cette solution me parait plus légère que l'utilisation du spreadsheet (uniquement quand on a pas besoin de manipuler les chiffres bien sur).

Sinon, j'ai un problème avec le controle spreadsheet, à savoir :

- A l'ouverture de mon projet j'ai un message qui s'affiche :

"cette application est sur le point d'initialiser les contrôles ActiveX potentiellement non sûrs... cliquez sur OK"

J'aimerai savoir s'il y a un moyen de ne pas avoir ce message en lançant mon appli ?

J'ai déjà ouvert un post sur ce sujet non résolu à ce jour, voici un résumé :

Michel m'a renvoyé sur un lien "Microsoft" qui préconise d'intervenir sur la base des registres... Je préfère ne pas faire celà.

dubois m'a propsé un code : "Application.DisplayAlerts = False" mais ça ne marche pas.

felix m'a judicieusement conséillé d'aller voire du côté des "Paramètres du centre de gestion de la confidentialité"... Je l'ai fait en "Activant tous les contrôles sans restriction" et même en désignant le dossier ou se trouve mon application comme étant un "emplacement approuvé"... Rien y fait, le message apparaît toujours.

J'ai réinstallé le OWC11.DLL (une version légèrement plus récente que la mienne) et le problème persiste...

J'aimerai que quelqu'un télécharge ce petit exemple (ultralight) juste pour me dire si le message apparait aussi quand il lance l'application :

https://www.excel-pratique.com/~files/doc2/ClasseurEssai1.xlsm

Merci encore pour votre patience. A bientôt

Bonjour,

@MichelXld, le code de ta réponse est-il valable pour excel 2010?

Rechercher des sujets similaires à "importer grille userform"