Plage de donnée ( A1:F100) dans un UserForm

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Plage de donnée ( A1:F100) dans un UserForm

idéalement je veux avoir un SpreadSheet
j'ai des données (chiffre et date) ds cellule ( A1:F100) je désire les voir sur mon userform
pcq je veux faire un uerform plein écran et ne plus avoir a utiliser mon fichier excel seulement le Userform

merci
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Re,

Je n'ai jamais utilisé le contrôle SpreadSheet.
Je veux bien essayer, mais si tu n'y vois pas d'inconvénient on verra ça l'année prochaine, là je dois y aller. 🙂

Bon réveillon

A+
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Bonjour,

Voici un exemple de code pour monter vos données Excel dans une SpreadSheet.

Pour faire le test :
1) Ouvrez un nouveau classeur et créez y un UserForm et une Spreadsheet respectivement
nommés "UserForm1" et "Spreadsheet1".
2) Dans la fenêtre de code du UserForm copiez le code suivant
Code:
Private Sub UserForm_Initialize()
Call Importation(AdressePlage, AvecFormule)
End Sub

Private Sub Importation(Adresse As String, Optional AvecFormule As Boolean)
Dim Sp         'Spreadsheet
Dim ShSp       'WorkSheet du Spreadsheet
Dim Rsp        'Range de la WorkSheet du Spreadsheet
Dim R As Range 'Range de la feuille active du classeur Excel
Dim var
Dim var2
Dim T() As Boolean
Dim i&
Dim j&
'--- Plage de la feuille active du classeur Excel (à adapter) ---
Set R = ActiveWorkbook.ActiveSheet.Range(Adresse)
'--- On met toutes les valeurs dans un tableau variant ---
var = R
If AvecFormule Then
  var2 = R.Formula  'avec les formules
  For i& = 1 To UBound(var, 1)
    For j& = 1 To UBound(var, 2)
      If Left(var2(i&, j&), 1) = "=" Or _
           var2(i&, j&) = "{" Then
        var(i&, j&) = var2(i&, j&)
      End If
    Next j&
  Next i&
End If
'/// ATTENTION La spreadSheet ne semble pas être aussi gentille
'/// qu'une feuille Excel qui sait interpréter les dates.
'/// Il faut donc faire un tableau de boolean (VRAI ou FAUX)pour
'/// déterminer le format date des cellules où il y en a
ReDim T(1 To UBound(var, 1), 1 To UBound(var, 2))
For i& = 1 To UBound(var, 1)
  For j& = 1 To UBound(var, 2)
    If IsDate(var(i&, j&)) Then T(i&, j&) = True
  Next j&
Next i&
'--- La SpreadSheet ---
Set Sp = Spreadsheet1
  '### Pour la joliesse et pour voir que cela existe ###
    '°°° Son titre °°°
With Sp.TitleBar
  .Visible = True
  .Caption = "Mon Titre"
End With
    '°°° Amusant mais inutile (quoique), on change le nom de la colonne "D"   °°°
    '°°° A l'utilisation dans les formules cette colonne sera toujours la "D" °°°
Sp.ActiveWindow.ColumnHeadings(4).Caption = "DéDé"
  '#####################################################
'--- Dans la première feuille ... ---
Set ShSp = Sp.Worksheets(1)
'--- Dans la même adresse de plage que la source ---
Set Rsp = ShSp.Range(Adresse)
'--- Transfert des données ---
If AvecFormule Then
  Rsp.Formula = var   'avec les formules
Else
  Rsp.Value = var     'que les valeurs
End If
'--- Format pour les dates ---
For i& = 1 To Rsp.Rows.Count
  For j& = 1 To Rsp.Columns.Count
   If T(i&, j&) Then
     Rsp(i&, j&).NumberFormat = "General Date"
    End If
  Next j&
Next i&
End Sub
3) Dans un module standard copiez le code suivant
Code:
Public AdressePlage As String
Public AvecFormule As Boolean

Sub Lancer()
'--- à adapter ---
AdressePlage = "A1:F100"
AvecFormule = True
'-----------------
UserForm1.Show
End Sub

La variable AdressePlage est l'adresse de la plage Excel d'origine et sera l'adresse
de la plage de destination dans la Spreadsheet.
La variable AvecFormule si elle est à False n'exporte que les valeurs, si elle est
à True les valeurs et les formules sont exportées.
Les données sont issues de la feuille Excel active.

Il n'y a plus qu'à faire tourner la macro "Lancer"

Cordialement.

PMO
Patrick Morange
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Merci excalibur c'est super,

Pour PM02 cela semble très interessant mais quand je ne sais pas trop comment créer le spreadsheet1 et lorsque je lance la macro ( il me dise que impossible de charger l'objet de la machine)
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Bonsoir Bloomby,

Dans le fichier zippé joint des explications pour charger
l'ActiveX Spreadsheet dans la boîte à outils de l'éditeur VBA (VBE).

Cordialement.

PMO
Patrick Morange
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Re, bonsoir PMO2, excalibur

Intéressant ton exemple, Patrick
Comme je le disais plus haut, je n'ai jamais utilisé ce contrôle donc je vais suivre ce fil avec intérêt. 🙂

Meilleurs voeux à vous

A+
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Bonjour à tous,
BONNE ANNEE 2009 à TOUS,
j'ai une question à la lecture des divers post de PM2O, excalibur, Bqtr, quel est l'intérêt d'utiliser un "Spreadsheet" car apparemment c'est une bête à chagrin !!!!!
Ou alors il y a un intérêt que je ne connais pas?
Vous allez me dire cela existe pourquoi ne pas l'utiliser, oui OK.
Enfin si un de vous peut me donner les avantages de ce "Spreadsheet" merci d'avance
a+
Papou
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Salut bloomby
Bonjour le fil
Bonjour le Forum

Tout d'abord Bonne et Heureuse Année 2009 à tous 😉

arff j'ai installé Office 2007 et depuis hier je cherche en vain à installer le control SpreadSheet et aujourd'hui je viens de lire que ce control n'est plus accessible sur cette version ,donc il va falloir que je retourne à Office 2002
Bonne journée
 
Re : Plage de donnée ( A1:F100) dans un UserForm

Bonjour à tous pour vous saluer et vous présenter, également, tous mes meilleurs voeux,

Alors, il n'aura pas fait long feu car indisponible sous Excel 2000.

Pas encore recherché si on peut le trouver, l'installer....

En attendant, bonne journée.

Jean-Pierre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
873
Réponses
2
Affichages
190
Réponses
7
Affichages
713
Réponses
43
Affichages
889
Réponses
4
Affichages
208
Retour