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 :

Gestion d'erreur : adresse utilisateur


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Gestion d'erreur : adresse utilisateur
    Bonjour à tous.

    Malgré mes lectures et mes tests je n'arrive pas a trouver la solution à mon problème, j'espère que pour vous cela sera évident.

    Je dois importer une feuille excel via mon code VBA.
    Bon sur mon ordinateur tout fonctionne bien par contre le user de mes collègues n'est pas construit de la même manière.
    Nous avons tous les initiales de nos nom prénom mais certains ont en plus un code en plus ".direction17"

    cas_1 : C:\Users\hn\Desktop
    cas_2 : C:\Users\hn.direction17\Desktop

    Donc bien sur j'ai une erreur quand je cherche le bureau du cas_2 avec l'adresse du cas_1.
    J'ai donc voulu faire une gestion d'erreur mais je ne voie pas pourquoi ça ne fonctionne pas.

    Je vous donne le code (j'ai supprimer le corps car il ne rentre pas dans le problème).
    Erreur vient ' elle de l'emplacement de mes "modules" de gestion d'erreur ?

    D'avance merci

    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
    
    Sub Insertion_donnee_ESCORT()
    
        Dim CheminFichier As String
        Dim User As String
        Dim NewName As String
        Dim VerifCheminFichier As String
        Dim CheminFichierOrigine As String
           
        'identification du fichier a importer
        User = Sheets("PARAMETRE").Range("E2").Value
        ChDrive "C"                     'Indiquer le lecteur (drive)
        
        On Error GoTo ErrorHandler
        ChDir "C:\Users\" & User & "\Desktop"        
    
        CheminFichier = Application.GetOpenFilename("(*.xls),*.xls", Title:="Fichier Excel Escort à importer")
    
        Name CheminFichier As NewName  
        
        MsgBox "Mise à jour effectuée", vbInformation, "Mise à jour"
            
        Exit Sub
    
    ErrorHandler:
        ChDir "C:\Users\" & User & ".direction17" & "\Desktop"
        Resume Next                            
    
    End Sub


    Bonne journée

  2. #2
    Rédacteur

    Bonjour,
    Donc bien sur j'ai une erreur quand je cherche le bureau du cas_2 avec l'adresse du cas_1
    Je ne comprends pas très bien.
    Pourquoi chercher alors que le User se trouve en cellule E2 de la feuille "PARAMETRE")

    A quelle ligne l'erreur se produit t'elle ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  3. #3
    Membre à l'essai
    alors là moi aussi j'aimerai bien savoir , certainement un délire du service informatique.
    Dans les deux cas quand je cherche le username je tombe sur hn ou jjp ...
    Mais quand je vais sur le bureau l'adresse pointe parfois sur hn ou sur jjp.direction17

    Donc il faut que je prévoie le cas de figure ou l'adresse ne serai pas bonne et c'est là que je coince.
    Comment faire pour que si erreur essayer le nom : user & ".direction17" et revenir au programme initial.

    J'avais bien comme idée de recopier le code si erreur. Mais cela n'est pas très jolie.

    PS : le user comme il est donnée dans VBA me sert pour l'imprimante réseau et là aucun problème.

  4. #4
    Rédacteur

    Bonjour,
    Ce qui m'intéresse de savoir
    1. Où a lieu l'erreur ?
    2. A l'aide de quelle fonction récupérez vous le nom du User ?

    Nulle part vous ne l'évoquez et la seule chose que l'on constate c'est que vous lisez la cellule E2 de la feuille Paramètre pour récupérer ce User.
    Que contient exactement cette cellule et comment l'alimentez-vous ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  5. #5
    Responsable
    Office & Excel

    Salut.

    Perso, je n'utiliserais pas la gestion d'erreur pour cela. Je testerais que le premier dossier existe, sinon je testerais le second, sinon je traiterais le fait qu'aucun des deux n'existe

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
      Dim User As String
     
      User = "..."
      If Dir("C:\Users\" & User & "\Desktop", vbDirectory) <> "" Then
        ...
      ElseIf Dir("C:\Users\" & User & ".direction17" & "\Desktop", vbDirectory) Then
        ...
      Else
        ...
      End If
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    Vous avez apprécié la réponse? =>
    ---------------

  6. #6
    Membre actif
    Bonjour,

    D'accord avec Pierre; tester le chemin et prendre le chemin valide.

    J'ai eu ce cas une fois où le bureau n'était pas en local mais enregistré sur un serveur avec d'autres répertoire ("mes doc", ...). Cela permettait au SI de "redescendre" les infos en cas de nouveau PC et aussi de pouvoir contrôler ce qu'on installait ou enregistrait sur les machines.

    Je pense que le SI de votre boite fait de même (dans un sens ou dans l'autre) mais que tous les postes n'ont pas encore été traités.

    Attention par contre, dans mon cas le chemin du bureau local existait en plus du bureau sur le serveur. Du coup on enregistrait sur le mauvais bureau et l'utilisateur ne voyait pas les fichiers.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

###raw>template_hook.ano_emploi###