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 :

Drag and Drop [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Gérant entreprise bâtiment
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gérant entreprise bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut Drag and Drop
    Bonjour à tous,
    Voilà, j'ai un userform contenant un treeView version 6 contenant du texte.

    La property ShowModal de l'userForm est réglée à False

    J'arrive à faire glisser hors de mon treeview le noeud sélectionné, de le faire glisser sur la feuille calcul, mais ô cruelle déception, impossible de récupérer le dépôt dans la cellule de la feuille de calcul visée.

    Ma question est: Peut on récupérer le dépot d'un OleDrop dans une cellule Excel et si oui comment?

    Merci par avance.
    TomIlliev

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Comme il n'y a pas d'événements "BeforeDragOver" et "BeforeDropOrPaste" pour les feuilles Excel je pense que se n'est pas possible de récupérer la valeur glissée depuis un ActiveX.

    Hervé.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Une piste avec la démarche suivante :
    1) créer un UserFom1 et y insérer un contrôle TreeView1
    2) copier le code suivant dans la fenêtre de code du UserForm
    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
    Private Sub UserForm_Initialize()
    Dim NOD As Node
    Dim Jours As Variant
    Dim Mois As Variant
    Dim i&
    '---
    Jours = Array("lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche")
    Mois = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", _
                 "août", "septembre", "octobre", "novembre", "décembre")
     
    With TreeView1
      '--- Jours ---
      Set NOD = .Nodes.Add(, , "Racine1", "Jours")
      For i& = LBound(Jours) To UBound(Jours)
        Set NOD = .Nodes.Add("Racine1", tvwChild, , Jours(i&))
      Next i&
      NOD.EnsureVisible
      '--- Mois ---
      Set NOD = .Nodes.Add(, , "Racine2", "Mois")
      For i& = LBound(Mois) To UBound(Mois)
        Set NOD = .Nodes.Add("Racine2", tvwChild, , Mois(i&))
      Next i&
      NOD.EnsureVisible
     
      '### Active le Glisser/Déposer ###
      .OLEDragMode = ccOLEDragAutomatic
    End With
    End Sub
    3) sur la Feuil1, insérer un contrôle ActveX CommandButton
    4) dans la fenêtre de code Feuil1, copier le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    UserForm1.Show vbModeless
    End Sub
    IMPERATIF : il est absolument nécessaire que la propiété ShowModal du UserForm soit fixée à False OU de lancer le UserForm à
    partir du CommandButton qui utilise la méthode Show avec le paramètre vbModeless


    Lancez le UserForm, sélectionnez un nœud du TreeView et faites le glisser sur une cellule Excel.

  4. #4
    Membre habitué
    Homme Profil pro
    Gérant entreprise bâtiment
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gérant entreprise bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut
    Merci pour vos réponses,

    PMO2017,
    Le problème n'est pas de faire glisser le noeud du treeview vers la cellule, mais de maitriser le dépôt dans la dite cellule c'est à dire:

    Vérifier si je suis bien dans la bonne colonne si non intervenir.
    Vérifier si la cellule de destination est vide si non le dire.
    Maitriser la suppression du nœud dans mon treeview lors du dépôt.
    Etc, Etc....
    Enfin vous voyez le topo

    Je ne suis pas un pro de la programmation, je le fais pour le plaisir et pour mon job. (Entreprise du bâtiment)

    Enfin je trouve dommage qu'il n'y ai pas d'évents de DragDrop dans les feuilles de calcul car c'est sympa de faire glisser depuis un treeview, des données vers une feuille de calcul.

    En tout les cas merci encore de vos réponses et
    tenez vous au frais!
    TomIlliev

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Le problème n'est pas de faire glisser le noeud du treeview vers la cellule mais de maîtriser le dépôt dans la dite cellule
    OK, je comprends mieux maintenant.
    Essayez l'exemple du classeur joint. J'ai fait un pseudo évènement du DragAndDrop qui passe par Worksheet_SelectionChange (entre autres).

  6. #6
    Membre habitué
    Homme Profil pro
    Gérant entreprise bâtiment
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Gérant entreprise bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par défaut Bravo
    Bonsoir PMO2017,
    Je viens de tester ton classeur, merci, encore merci, à priori c'est ce que je cherchais à faire.
    Je vais l'adapter à mon classeur, et si tu le permets je te tiendrai au courant.
    Bravo.
    TomIlliev

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

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. "Drag and drop" avec directinput
    Par batosai dans le forum DirectX
    Réponses: 1
    Dernier message: 16/06/2004, 16h48
  3. [VB.NET] Microsoft TreeView drag and drop ?
    Par bigtoof dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/05/2004, 14h50
  4. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  5. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

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