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 :

Lien entre classeurs Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 54
    Par défaut Lien entre classeurs Excel
    Bonjour (ou bonsoir)

    Pour un projet, je doit générer un rapport d'erreur dans un excel, et à partir de se rapport je doit pouvoir retourner sur l'un des fichiers excel qui contient les données traitées.

    Il me faut donc créer dynamiquement un lien ou un bouton dans le rapport pour chaque erreur qui aura pour but d'ouvrir le fichier excel (qui aura été fermé par la macro créatrice du rapport) et de pointé sur la cellule du bon onglet.

    J'ai testé les hyperlinks
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim objLink As Hyperlink
     
    Set objLink = Workbook("Rapport").Worksheets(1).Hyperlinks.Add(Workbook("Rapport").Worksheets(1).Cells(X, Y), "P:\Comande.xls").SubAddress = "B6"
    Mais le problème, c'est que ca va forcément pointer sur l'onglet "actif" au moment de la dernière sauvegarde. Je n'ai pas trouvé comment définir l'onglet cible.

    J'ai testé la création dynamique, j'ai tester ces codes trouvés sur le site :
    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
    Sub creationModule()
        'Nécéssite d'activer la référence
        '"Visual basic For Application Extensibility 5.3"
        '
        Dim Wb As Workbook
        Dim VBComp As VBComponent
        Dim X As Integer
     
        'Définit le classeur cible
        Set Wb = Workbooks("Classeur1.xls")
     
        'Ajoute un module standard dans le classeur
        Set VBComp = Wb.VBProject.VBComponents.Add(1)
        'Renomme le module
        VBComp.Name = "NouveauModule"
     
        'Ajoute une macro dans le module
        With VBComp.CodeModule
            X = .CountOfLines
            .InsertLines X + 1, "Sub laMacro()"
            .InsertLines X + 2, "Range(""A1"").Value = ""Coucou"""
            .InsertLines X + 3, "End Sub"
        End With
    End Sub
    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
     
    Dim Ws As Worksheet
    Dim Obj As OLEObject
    Dim laMacro As String
    Dim x As Integer
     
    Set Ws = Sheets.Add 'Ajoute une nouvelle feuille
     
    'ajoute un CommandButton dans la nouvelle feuille
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    With Obj
        .Name = "monBouton" 'renomme le bouton
        .Left = 50 'position horizontale par rapport au bord gauche de la feuille
        .Top = 50 'position verticale par rapport au bord haut de la feuille
        .Width = 150 'largeur
        .Height = 30 'hauteur
        .Object.Caption = "Supprimer données feuille"
    End With
     
    'Spécifie le contenu de la macro qui sera associée au bouton
    laMacro = "Sub monBouton_Click()" & vbCrLf
    laMacro = laMacro & "Cells.Clear" & vbCrLf
    laMacro = laMacro & "End Sub"
     
    'Ajoute la procédure dans la feuille
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With
    Dans les deux codes ca plante sur "ThisWorkbook.VBProject.VBComponents" (erreur 1004) et dans le premier ca bug sur "Ws.OLEObjects.Add" (ca crée le bouton, mais avec left et top = 0 et height = 10, width = 50, name = CommandButton1)

    Voila si quelqu'un peut m'expliquer pourquoi ca bug, ca serai cool

    Ps : pour la référence, je l'ai cocher dans le menu, j'ai accept, j'ai enregistrer la macro et j'ai même redémarrer le pc au cas où, il a rien voulu savoir

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 95
    Par défaut
    Bonjour,

    Pourrais-tu mettre un exemple plus clair.
    C'est assez vague niveau action de l'utilisateur.

Discussions similaires

  1. [XL-2003] Automatiser reporting mensuel liens entre classeur et feuilles excel
    Par okalef dans le forum Conception
    Réponses: 5
    Dernier message: 05/05/2011, 18h38
  2. Liens entre fichiers Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2007, 12h30
  3. comment effectuer des mises à jour entre classeurs excel ?
    Par benjamin.garbolino dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2006, 00h51
  4. [VBA]Lien entre fichiers excel : Update en VBA
    Par criocaps dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2006, 09h07
  5. lien entre feuille Excel
    Par corwin44 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/01/2006, 11h28

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