Bonjour à toutes et tous, quelqu'un aurait-il une solution pour faire fonctionner un treeview sur Excel 64 bit version Excel LTSC MSO. Voir fichier en pièce jointe. Merci pour vos conseils
Bonjour à toutes et tous, quelqu'un aurait-il une solution pour faire fonctionner un treeview sur Excel 64 bit version Excel LTSC MSO. Voir fichier en pièce jointe. Merci pour vos conseils
Bonjour,
Plusieurs soucis : le code semble être fait pour 3 écoles et vous en avez 4
Il y a des erreurs de saisie et avec les Treeview ça plante sans vous expliquer pourquoi
Erreurs de saisie :
en feuille Ecoles, Collège Molière, la classe c'est 5C (et non 5c, et oui c'est important)
en feuille Elèves, Dupont Etienne (le dernier) doit être en Terminale A (ou B mais pas Terminale tout court)
Code du Userform :
il faut l'adapter à 4 écoles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 With Sheets("Ecoles") For Col = 1 To 4 'ici changer 3 en 4 TreeViewEcole.Nodes.Add , , .Cells(1, Col).Value, .Cells(1, Col).Value Next Col For Col = 1 To 4 'ici changer 3 en 4 Ligne = 2 NoeudMere = .Cells(1, Col).Value Do While .Cells(Ligne, Col).Value <> ""
Re,
Pour compléter les Treeview ne fonctionnaient plus sur les premières versions 64 bits d'Office
Les versions récentes (depuis 2019 ? je ne suis pas sûr) 64 bits permettent de réutiliser les contrôles Treeview 32 bits
Votre discussion indique [Toutes versions], mais votre version peut empêcher le contrôle de fonctionner, donc il pourrait être utile de nous communiquer cette version
Essayer d'appeler l'API InitCommonControlsEx avec les bons paramêtres mais je doute que ça marche étant donné que la bibliothèque est comctl32.dll
Bonjour Mat,
Je ne suis pas vraiment un spécialiste des bibliothèques, je croyais que c'était mscomctl.ocx
Ou alors l'ocx charge des dll, c'est ça ?
Si la question est bête, n'hésite pas à le dire
Salut toto la question est pertinente oui c'est exact il faut utiliser cet ocx.
Ce composant est une sorte d'interface entre les dll système et VBA.
Merci![]()
Hello,
Si ca peut être utile, une alternative aux OCX pour les treeViews :
https://jkp-ads.com/articles/treeview.asp
Hello,
une autre alternative c'est d'utiliser l' Addin Excel DNA qui permet d'interfacer le VBA avec du C#. On peut ainsi utiliser les composants windows forms 4.0 qui comprend entre autres , le treeview. l'Addin existe en 32 bits et en 64 bits. Voici un exemple d'utilisation d'un formulaire contenant un treeview à partir du VBA.
1 - Création du formulaire et Affichage :
2 - Création d'un tableau 2D décrivant le TreeView à partir des données Ecoles et Elèves :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub TestTreeView() Set FormTv = CreateObject("XlDnaLibJP.FrmTreeView") FormTv.Show End Sub
Cette procédure est appelée quand on clique sur le bouton Charger du formulaire et envoie au treeView le tableau rempli.
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 Sub ChargerTreeView() Dim Col As Integer, Ligne As Integer, LigneB As Integer, N0 As String, N1 As String Dim Texte As String, arr(0 To 100, 0 To 1), j As Integer j = 0 With Sheets("Ecoles") For Col = 1 To 4 Ligne = 2 arr(j, 0) = 0 arr(j, 1) = .Cells(1, Col).Value N0 = arr(j, 1): j = j + 1 Do While .Cells(Ligne, Col).Value <> "" arr(j, 0) = 1 arr(j, 1) = .Cells(Ligne, Col).Value N1 = arr(j, 1): j = j + 1 Ligne = Ligne + 1 With Sheets("Elèves") LigneB = 2 Do While .Cells(LigneB, 1).Value <> "" If (.Cells(LigneB, 4) = N0) And (.Cells(LigneB, 5) = N1) Then arr(j, 0) = 2 arr(j, 1) = .Cells(LigneB, 2).Value: j = j + 1 End If LigneB = LigneB + 1 Loop End With Loop Next Col End With FormTv.initTreeview arr End Sub
On peut aussi utiliser le composant DatagridView pour afficher une plage de feuille excel :
Il y a aussi la RichTextBox pour écrire du texte en couleur :
Ami calmant, J.P
Bonjour et merci à tous pour vos réponses. Ca m'a l'air bien compliqué et mon niveau VBA n'est pas terrible. Ma version Excel est Microsoft® Excel®*LTSC MSO 64*bits. Pour votre info lorsque j'exécute le Frm avec le treeview Excel me retourne le message " Erreur d'exécution 35601 Element not found" J'espère pouvoir trouver une solution malgré la difficulté. Merci de vos conseils.
Hello,
LTSC veut dire Long-Term Servicing Channel, ça n'indique pas la version, ça indique juste que c'est un version "perpétuelle" donc pas un abonnement 365.
C'est soit une 2019, soit 2021.
Vous avez testé les modifications proposées par tototiti2008 ?
Bonjour, Oui en apportant les corrections le Treeview fonctionne. En revanche, j'ai fais un essai en passant les écoles en dernière colonne et là il ne m'affiche que les Ecoles et les classes mais plus les élèves. Je me sers de ce Classeur pour des essais et j'avoue que ça s'avère bien plus complexe que je le pensais.
OK, donc vous pouvez passez la question en résolu
Là c'est un autre problème. Le treeview fonctionne mais vous n'arrivez pas à l'adapter à votre besoin.
Si je ne m'abuse, vous avez suivi le tuto
Je l'ai suivi aussi (je n'y connais rien au Treeview) et j'ai adapté les numéros des colonnes en déplaçant la colonne "ECOLE" à la fin dans la feuille "Elèves".
Voici le résultat en PJ, mais j'avoue ne pas comprendre ce que vous voulez faire car le résultat est strictement identique.
Ben c'est sûr que si vous n'êtes pas familier avec le VBA, vous n'attaquez pas par le bon bout .
Bonjour, oui j'apprends à chaque problème rencontré et j'essaie d'adapter ce que j'apprends parfois ça marche parfois pas. Oui c'est bien ce tuto que j'ai suivi. En tout cas un grand merci à tous pour votre patience et vos conseils. En effet, sans votre aide il serait difficile de progresser. Je vous souhaite à toutes et tous d'agréables fin de fin d'année.
Partager