Bonjour tout le monde,
j'aurai voulu savoir si il était possible de visualiser une feuille excel dans un userform et voir même d'y faire des modif...
Bien à tous...
Tim
Bonjour tout le monde,
j'aurai voulu savoir si il était possible de visualiser une feuille excel dans un userform et voir même d'y faire des modif...
Bien à tous...
Tim
bonjour
oui c'est possible d'avoir un cliché de la feuille excel dans un contrôle image dans un userform mais pour le manipuler çà n'est pas possible du moins pas a ma connaissance
tu a qu'a regarder dans les contributions mon exemplaire de cliché de cellules
il fait exactement ce que tu demande
au plaisir
Salut, chercher qqch autour d'OWC , à lire également http://silkyroad.developpez.com/vba/owcpivottable/
Bonjour
Deux exemple d'utilisation d'un tableau Excel dans un formulaire Access avec le composant cité ci-dessus :
La Mise en Forme Conditionnelle Illimitée sous Access
De nouvelles listes pour vos formulaires Access
Ces deux tutos sont pour Access, mais c'est l'utilisation qui est importante pour te donné une piste de recherche.
Philippe
Bonjour,
Et pourquoi pas le Spreadsheet ?
Bon courage
Bonjour le forum,
Personnellement j'utilise un Listview pour charger mes tables.
On peut en modifier les données, trier les colonnes, sélectionner un enregistrement et bien d'autre choses dont je n'ai pas encore eu besoin....
Seul problème : il y a probablement un bug au niveau des propriétés de positionnement (top / left) qui après le premier affichage ne sont pas respectées.
Cordialement
Daniel
@patricktoulon :
merci pour ton info...en cherchant sur google… j'avais trouvé tes codes mais et finalement j'ai téléchargé OWC PivotTable et aussi le contrôle complémentaire âpres installation j'ai une erreur d'exécution '-2147467259 (80004005'): la méthode 'FieldSets' de l'objet 'PivotView' à échoué...
il bloque sur UserForm1.Show dans le Commanbouton1
@jean-pierre49:
merci aussi pour l'info j'ai également testé et ça ne marche pas...si tu avais une petite démo pour moi comprendre...ce serait cool. Bien à toi.
@danisoaz :
Merci également mais comme tu dis...si c'est pour que l'affichage ne soit pas stable et donc efficace ben...je cherche autre chose. Bien à toi.
Bonjour
Le Spreadsheet est le contrôle idéal pour recréer une feuille, voir un classeur Excel, dans un USF. Je ne vois pas pourquoi utiliser OWC PivotTable, comme son nom l’indique est pour les tableaux croisés dynamiques
Impossible, encore faut-il chercher à ce que cela marchemerci aussi pour l'info j'ai également testé et ça ne marche pas
Regarde les tutos de Philippe tu trouveras des indications
Néanmoins, voici un code que j’utilise dans une de mes appli
Tu renomme une feuille » Nomen » et tu remplis les cellule da A à M
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Dim Cellule As Range Me.Spreadsheet1.ScreenUpdating = False 'Me.Spreadsheet1.ActiveSheet.Unprotect Me.Spreadsheet1.ActiveSheet.Rows().Interior.ColorIndex = xlNone With Me.Spreadsheet1.ActiveSheet .Columns(2).Locked = False .Columns(2).HorizontalAlignment = xlCenter .Columns(3).Locked = False .Columns(3).HorizontalAlignment = xlCenter .Columns(4).HorizontalAlignment = xlLeft .Columns(5).HorizontalAlignment = xlLeft .Columns(6).HorizontalAlignment = xlLeft .Columns(7).HorizontalAlignment = xlLeft .Columns(8).HorizontalAlignment = xlLeft .Columns(9).HorizontalAlignment = xlCenter .Columns(10).HorizontalAlignment = xlCenter .Columns(11).HorizontalAlignment = xlCenter .Columns(11).Locked = False .Columns(12).HorizontalAlignment = xlCenter .Columns(13).HorizontalAlignment = xlCenter .Columns(12).NumberFormat = "0.00"" Kg""" .Columns(13).NumberFormat = "0.00"" M²""" End With For Each Cellule In ThisWorkbook.Sheets("Nomen").Range("A1:M" & ThisWorkbook.Sheets("Nomen").Range("A65536").End(xlUp).Row) Me.Spreadsheet1.Cells(Cellule.Row, Cellule.Column) = CStr(Cellule.Value) Me.Spreadsheet1.Cells(Cellule.Row, Cellule.Column).Borders(xlEdgeRight).LineStyle = xlContinuous If Cellule.Column = 2 Or Cellule.Column = 3 Or Cellule.Column = 11 Then Me.Spreadsheet1.Cells(Cellule.Row, Cellule.Column).Interior.ColorIndex = 36 If Cellule.Row > 1 Then Me.Spreadsheet1.Cells(Cellule.Row, Cellule.Column).Font.Size = 8 Next Cellule With Me.Spreadsheet1.ActiveSheet.Rows(1) .Font.Name = "Verdana" .Interior.ColorIndex = 15 .Font.ColorIndex = 13 .Locked = True .HorizontalAlignment = xlCenter .Font.Bold = True .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeTop).Weight = xlMedium .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeBottom).Weight = xlMedium .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlEdgeRight).Weight = xlMedium .Borders(xlInsideVertical).LineStyle = xlContinuous .Borders(xlInsideVertical).Weight = xlMedium End With With Me.Spreadsheet1 .ActiveWindow.ViewableRange = "$A$1:$M$" & ThisWorkbook.Sheets("Nomen").Range("A65536").End(xlUp).Row .ActiveSheet.Columns.AutoFit .ActiveSheet.Cells(1, 1).Activate '.ActiveSheet.Protect .ScreenUpdating = True End With
Le code tu le met dans Private Sub UserForm_Initialize()
Et tu lance et tu verra que cela fonctionne
A toi de faire
Bonne journée et bon courage
Bonjour à tous,
Je tiens à présenter mes excuses à tous ceux que j'ai pu froissés en trainant aux suivi à mes discussions mais étant nouveau à la programmation VBA, n’étant pas très struturé… j’aime tellement cette programmation que les idées ainsi leur réalisations me viennent sans cesse à l’esprit…
ce qui explique très facilement expliquer mon désordre…malheureusement, je ne peux me permettre de perdre trop de temps pour bien apprendre comme il le faudrait.
Néanmoins je ne pense pas que ce soit une mauvaise chose de placer plusieurs discussions en même temps et d’y répondre au fur et à mesure de mon développement.
Je suis fier de voir que vous preniez le temps non seulement à me répondre mais surtout à garder un œil sur le suivi à mes problèmes. Merci pour ça !!!
Je suis occupé à développer un très beau projet et je sais que cela avance grâce à vous… en même temps j’apprends alors quoi demander de plus…
J’espère de pas manquer de respect à vous tous. En tout les cas ce n’est pas mon intention.
Tim.
Pas de problème Tim
Bon courage
bonsoir tout le monde...
@ patriktoulon: j'ai testé mais suis pas assez compétant pour faire fonctionner...trop évoluer pour moi à ce stade...lorsque je lance tes fichiers j'ai des erreurs...surement que je n'arrives pas à adapter dans mon excel...
Pour moi bien comprendre il m'aurait fallu un exemple simple mais j'ai pas trouvé...
@kiki29 : je testé mais il me retourne une erreur et me dit "la méthode 'FieldSets' de l'objet 'PivotView' à échoué...du fichier PivotTable_UserForm_XL2007_OWC11...
Peut être aussi un fichier simple de base que je n'ai pas trouvé sur le sujet m'aurait été bénéfique...
@Philippe JOCHMANS : merci pour ces liens mais c'est trop évolué pour mon niveau actuel...
@ Jean-Pierre49 : merci aussi pour l'idée du Spreadsheet...j'ai trouvé un exemple "USF_AutoFiler_Sans_AutoFilter_SpreadSheet-V1.xls" mais là aussi j'ai un message d'erreur de compilation "Projet ou bibliothèque introuvable
il bloque sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 With Spreadsheet1.DisplayColHeaders = False .DisplayRowHeaders = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False .Visible = False End With End Sub
J'ai également essayé de tester ton code mais j'ai un problèmesurement avec le "Spreadsheet1" que je ne trouve pas... ou puis je trouver cet objet...?
Merci à tous pour votre suivi...si vous en avez le temps.
Tim
Bonsoir tim
Dans le projet VBA click droit sur la page de la boite a outil et choisi contrôles supplémentaires et cherche Spreadsheet et quelque chose ( je n’ai pas excel sur ce pc) et oui ça arrive des fois
Si tu trouve rien
Recharger OWC11 et les Contrôles communs Microsoft Visual basic 6.0
On les trouve facilement sur le Web
Et la tu devrais trouver le Spreadsheet
bon week end à lundi si problème
Edit : dans la fenètre contrôles supplémentaires : Microsoft Office Spreadsheet 11.0
Bonsoir,
le lien est fournit dans le lien donné par Patrick en #4
Ce n'est pas parce que le titre fait allusion à l'OWC PivotTable qu'il faut s'y concentrer, l'important est que dans l'intro Michel fournit le lien et les scrennshots voulus !
Le complément Microsoft Office Web Components (OWC ou Composants Web) est une collection de contrôles permettant de publier sur le Web des feuilles de calcul, des graphiques, des bases de données et des tableaux croisés dynamiques.
Ces contrôles peuvent aussi être utilisés dans les applications bureautiques Office, et notamment dans les UserForms.
Si le complément Microsoft Office Web Components n'est pas disponible sur le poste de travail, téléchargez les composants en fonction de votre version d'Office.
Complément d'Office 2003 : composants Web Office OWC11
Office XP Tool: Web Components OWC10
Ensuite il faut valider Micorsoft Office Web Components Wizards dans la liste qui t'ouvriras la porte du contrôle voulu ...
cordialement,
Didier
bonjour a tous
j'ai simplement repris un uxemple dans la faq arrangé pour le but qui est visé dans cette discution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Sub feuille_dans_l_userform() Dim Ligne As Integer, Colonne As Integer Application.ScreenUpdating = False 'Copie, en tant qu'image, les cellules utilisées dans la feuille. Feuil1.UsedRange.CopyPicture Feuil1.Paste 'Récupére la position des dernières lignes et colonnes utilisées. 'Cette information va servir à redimensionner la taille de l'image. Ligne = Feuil1.Cells.Find("*", Feuil1.Range("A1"), SearchDirection:=xlPrevious).Row + 1 Colonne = Feuil1.Cells.Find("*", Feuil1.Range("A1"), SearchDirection:=xlPrevious).Column + 1 'Crée un graphique temporaire aux dimentions des cellules prises en compte With Feuil1.ChartObjects.Add(0, 0, Cells(Ligne, Colonne).Left, Cells(Ligne, Colonne).Top).Chart .Paste ' on colle l'image copiée précédamentdans le graphique vide 'exporte l'image sur le disque dur .Export "D\monImage.jpg", "JPG" End With 'on affiche le userform UserForm1.Show 0 'on load l'image copiée précédament sur le disque dur dans le control image dans le userform 'tu peut changer l'adresse de sauvegarde et load de l'image UserForm1.Image1.Picture = LoadPicture("D\monImage.jpg") With Feuil1 'Supprime le graphique temporaire .ChartObjects(Feuil1.ChartObjects.Count).Delete 'Supprime l'image dans la feuille. .Shapes(Feuil1.Shapes.Count).Delete End With Application.ScreenUpdating = True End Sub
bon courage
Bonjour
@patricktoulon
En quoi ton code (pourtant intéressant) correspond à la discussion ?
On parle de mettre une feuille dans un formulaire et non une image , il me semble qu'il veut une feuille dynamique ou je n'ai pas tout compris.
Philippe
bonjour philippe jochmans
oui tu a raison mais en attendant de pouvoir le faire si il veut simplement voir sa feuille dans son usf c'est une alternative
au plaisir
Bonjour tout le monde...
Je suis resté en peu dans l'ombre car j'ai voulu comprendre d'ou venait tout mes petits problèmes...finalement je n’avais pas les yeux en fasse des trous
Bon j'ai réussi à faire fonctionner un Spreadsheet1 mais je n’avais pas sélectionné dans la boite à outils car je ne le voyais pas dans la liste...chose faite, mais chez moi je trouve que c'est assez lourd en mémoire pourtant j'ai 4gyga...il est possible que ce soit mon pc car j'avais office 2010 et je suis repassé en 2007...lors de l'installation de 2007 j'ai reçu qq petits messages pas habituel.
Alors j'ai opté pour la solution de danisoaz avec un Listview qui est assez simple mais là encore je ne vois pas Listview dans ma boite à outil, alors j'ai du ouvrir 2 xls dans le même excel et faire un copier-coller... je ne sais pas normal mais le temps me manque...
@ Jean-Pierr49 : ce soir je vais tester ta petit code avec PivotTable "celui là je l'ai dans ma boite à outil
Merci encore à tout le monde.
Bonne soirée. Tim
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager