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 :

Liaison classeur un seul lien


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Par défaut Liaison classeur un seul lien
    Bonsoir,

    Je voudrais créer via VBA des liaisons entre deux classeurs.

    Soit deux classeurs (A et B).
    La valeur de la cellule C5 de B est égale à la valeur de la cellule A3 de A.
    La valeur de la cellule C6 de B est égale à la valeur de la cellule A8 de A.

    Quand je fais un collage avec liaison, je suis obligé de changer le lien pour chaque cellule. Je voudrais éviter ceci en passant pas VBA

    Merci

  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,

    Un début de piste à creuser :
    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
     
    Sub Liaison()
     
        Dim Classeur As String
        Dim Feuille As String
        Dim Cel
        Dim Formule As String
        Dim I As Integer
     
        Classeur = "F:\[A.xls]"
        Feuille = "Feuil1"
        Cel = Array("A3", "A4", "A5")
     
        For I = 0 To UBound(Cel)
            Formule = "='" & Classeur & Feuille & "'!" & Cel(I)
            Range("C" & I + 1).Formula = Formule
        Next I
     
    End Sub
    Hervé.

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Par défaut
    Bonjour,

    Je n'ai plus besoin d'un code de ce genre. Merci.

    Cependant, J5 comprend une liaison. Le résultat est soit "oui" soit "non". Je voudrais que, quand c'est "non", il affiche "-".
    J'ai essayé avec Worksheet_Change mais ça ne fonctionne pas. Je suis obligé de doublecliquer sur la cellule et d'appuyer sur entrée. Si je ne fais pas ça, le code ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("J5") = "non" Then
    Range("G12") = "-"
    Else
    Range("G12") = ""
    End if
    End Sub
    Merci

  4. #4
    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
    Bonsoir,

    Teste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        'si la valeur de J5 change
        If Not Intersect(Target, [J5]) Is Nothing Then
            If Target = "non" Then [G12] = "-" Else [G12] = ""
        End If
     
    End Sub
    Hervé.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Par défaut
    non... même résultat...

  6. #6
    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
    Oups,

    J'ai pas fait attention que pour J5 sa valeur changeai en fonction de la liaison, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If [J5] = "non" Then [G12] = "-" Else [G12] = ""
        'sinon, avec un apostrophe devant (le signe moins étant considéré par Excel
        'comme le début d'une formule au même tire que = ou +)
        '>>If [J5] = "non" Then [G12] = "'-" Else [G12] = ""
     
    End Sub

Discussions similaires

  1. ouvrir 2 fichier en 1 seul lien hypertext
    Par yoyom dans le forum Excel
    Réponses: 3
    Dernier message: 25/06/2007, 10h58
  2. Comment ouvrir deux pages avec un seul lien ?
    Par tiliut dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/05/2007, 17h43
  3. Réponses: 9
    Dernier message: 19/09/2006, 22h54
  4. Est-il possible de charger deux pages pour un seul lien?
    Par dessinateurttuyen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/07/2006, 12h36
  5. plusieurs pages sur un seul lien
    Par Darkyl dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/02/2006, 11h30

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