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 :

Ouvrir un dossier sur double click cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2015
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 57
    Points : 34
    Points
    34
    Par défaut Ouvrir un dossier sur double click cellule
    Bonjour,

    J'ai un fichier excel comportant 4 colonnes

    Reference | Client | Destination | Commercial

    Pour chaque enregistrement j'ai un dossier nommé "Reference_Client_Destination_Commercial" qui est créé sur un partage réseau => \\myshare\Reference_Client_Destination_Commercial
    J'aimerais mettre en place une macro qui, lorsque l'on double clique sur une Reference, ouvre le dossier correspondant via l'explorateur Windows.

    Débutant en VBA j'avoue ne pas savoir par où commencer ...

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Essayez ceci:
    Dans un premier temps, faire ALT + F11 pour accéder au module VBA. sur la fenêtre de gauche, double-clic sur le nom de la feuille qui contient la liste "Reference | Client | Destination | Commercial"
    Dans la partie droite, collez ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        ChDrive Q 'Changement du lecteur, ici lecteur Q
        Chemin = "Q:\\myshare\" & Target & Target.Offset(0, 1).Value & Target.Offset(0, 2).Value & Target.Offset(0, 3).Value '\\myshare\Reference_Client_Destination_Commercial
        Ouvrir = Application.Dialogs(xlDialogOpen).Show(Chemin)
    End Sub
    Ce code ne garantit pas que cela va fonctionner du premier coup, puisque je ne connais pas votre installation, par contre, cela vous met sur la piste et il ne reste plus qu'à l'adapter à votre situation.
    Pour cela, revenez sur la feuille excel et activez l'enregistreur de macro.
    -ouvrez manuellement un des fichiers puis arrêtez l'enregistrement de la macro.

    Faire ALT + F11, allez sur le module1 et faites une comparaison avec le code que vous avez collé précédemment, les noms en dur tels que "Reference", "Client" sont remplacés par "target", "target.offset(0,1).value" etc
    Corrigez certains points qui peuvent être différents tels que le lecteur, les répertoires.

    Faites des essais en double-cliquent sur l'une des références, si un message d'erreur s'affiche, cliquez sur "Débogage" et passez la souris sur la ligne surlignée en jaune, observez les valeurs qui s'affichent et essayez de déterminer pourquoi ça ne marche pas.

    Voilà, vous avez une première approche, à vous d'essayer de comprendre et de l'adapter.
    Mais si vous débutez en VBA, entraînez-vous avec l'enregistreur de macro à faire plein d'actions et analysez-les, c'est excellent pour apprendre.

    Cdlt

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2015
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Un grand merci pour votre aide.
    J'ai adapté la macro sur la base du fichier joint

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        ChDrive = "D:\Users\Sami\myshare\" 'Changement du lecteur, ici lecteur Q
        Chemin = ChDrive & Target & Target.Offset(0, 2).Value & Target.Offset(0, 6).Value & Target.Offset(0, 20).Value '\\myshare\Reference_Client_Destination_Commercial
        Ouvrir = Application.Dialogs(xlDialogOpen).Show(Chemin)
    End Sub
    Mais lorsque je double clique sur une cellule de la colonne A "REFERENCE" rien ne se passe.

    Merci encore
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Attention, la macro est évènementielle, donc elle doit se trouver dans le module de la feuille.
    ChDrive sert à indiquer à excel qu'il doit changer de disque s'il est différent de celui où se trouve le fichier en cours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Target, Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then
            ChDrive D  'Changement du lecteur, ici lecteur D
            Chemin = "D:\" & Target & Target.Offset(0, 2).Value & Target.Offset(0, 6).Value & Target.Offset(0, 20).Value '\\myshare\Reference_Client_Destination_Commercial
            Ouvrir = Application.Dialogs(xlDialogOpen).Show(Chemin)
        End If
    End Sub
    Pièce jointe 590829

    Cdlt

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2015
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Effectivement ça marche beaucoup mieux dès qu'on comprend le fonctionnement ;-)
    J'ai juste modifier la variable "Chemin" pour tenir compte des "_"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Target, Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then
            ChDrive D  'Changement du lecteur, ici lecteur D
            Chemin = "D:\" & Target &"_"& Target.Offset(0, 2).Value &"_"& Target.Offset(0, 6).Value &"_"& Target.Offset(0, 20).Value '\\myshare\Reference_Client_Destination_Commercial
            Ouvrir = Application.Dialogs(xlDialogOpen).Show(Chemin)
        End If
    End Sub
    Merci infiniment

    Bon Week End

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/02/2014, 16h49
  2. [AC-2003] ouvrir une ligne spécifique d'un formulaire sur double click
    Par louismaz dans le forum IHM
    Réponses: 2
    Dernier message: 05/02/2010, 08h54
  3. Ouvrir un form sur double-click, suite
    Par Nessie37 dans le forum IHM
    Réponses: 23
    Dernier message: 08/10/2008, 17h56
  4. Réponses: 11
    Dernier message: 10/01/2008, 20h27
  5. Question sur double click
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 30/04/2005, 11h53

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