IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Treeview version 64 bit [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut Treeview version 64 bit
    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
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 145
    Billets dans le blog
    2
    Par défaut
    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 <> ""

  3. #3
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 145
    Billets dans le blog
    2
    Par défaut
    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

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    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

  5. #5
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 145
    Billets dans le blog
    2
    Par défaut
    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

  6. #6
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    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.

  7. #7
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 145
    Billets dans le blog
    2
    Par défaut
    Merci

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 495
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 495
    Par défaut
    Hello,

    Si ca peut être utile, une alternative aux OCX pour les treeViews :
    https://jkp-ads.com/articles/treeview.asp

  9. #9
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 209
    Par défaut
    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 :
    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
    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
    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
    Cette procédure est appelée quand on clique sur le bouton Charger du formulaire et envoie au treeView le tableau rempli.
    Nom : treeview.gif
Affichages : 144
Taille : 85,9 Ko


    On peut aussi utiliser le composant DatagridView pour afficher une plage de feuille excel :
    Nom : DataGridView.gif
Affichages : 136
Taille : 215,2 Ko

    Il y a aussi la RichTextBox pour écrire du texte en couleur :

    Nom : Richtextbox.gif
Affichages : 126
Taille : 53,9 Ko

    Ami calmant, J.P

  10. #10
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut
    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.

  11. #11
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 155
    Par défaut
    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 ?

  12. #12
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut
    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.

  13. #13
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 155
    Par défaut
    Citation Envoyé par ThieBEN Voir le message
    Bonjour, Oui en apportant les corrections le Treeview fonctionne.
    OK, donc vous pouvez passez la question en résolu


    Citation Envoyé par ThieBEN Voir le message
    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.
    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.

    Citation Envoyé par ThieBEN Voir le message
    Je me sers de ce Classeur pour des essais et j'avoue que ça s'avère bien plus complexe que je le pensais.
    Ben c'est sûr que si vous n'êtes pas familier avec le VBA, vous n'attaquez pas par le bon bout .
    Fichiers attachés Fichiers attachés

  14. #14
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Scan des softs à la recherche d'une version 64 bits?
    Par cavo789 dans le forum Windows 7
    Réponses: 2
    Dernier message: 13/11/2009, 06h59
  2. Version 64 bits
    Par Loceka dans le forum Bubuntu
    Réponses: 2
    Dernier message: 06/10/2009, 13h57
  3. Réponses: 6
    Dernier message: 22/11/2008, 14h52
  4. Existe - il une version 64 bits
    Par Gaiiak dans le forum Bubuntu
    Réponses: 3
    Dernier message: 10/09/2008, 12h43
  5. Treeview ou Virtual-Treeview version basé ?
    Par Argonz dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/09/2007, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo