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 :

[VBA-E] Collage des valeurs avec liaison


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut [VBA-E] Collage des valeurs avec liaison
    Je vous explique J'ai quatre feuilles (4 onglets A, B, C et D)

    La feuille C est le résultat de l'opéaration A+B j'explique :
    En Colonne D et E j'ai des entiers sur les deux feuilles A et B

    Feuille A
    D1 = 12
    D2 = 54
    E1 = 853
    E2 = 654
    (le nombre de ligne et de colonne est en réalité plus important et est fonction de la volonté de l'utilisateur)

    Feuille B
    D1 = 14
    D2 = 59
    E1 = 43
    E2 = 534

    Sur la feuille C j'ai :
    D1 = feuilleA!D1+feuilleB!D1
    D2 = feuilleA!D2+feuilleB!D2

    E1 = feuilleA!E1+feuilleB!E1
    E2 = feuilleA!E2+feuilleB!E2

    Pour ne pas avoir la formule dans la barre des formules je voudrais que ma feuille D soit la copie conforme de la feuille C (valeurs).

    Pour cela j'ai le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Paste Link:=True
    Sauf que maintenant sur la feuille D j'ai :

    D1 = feuilleC!D1
    D2 = feuilleC!D2

    E1 = feuilleC!E1
    E2 = feuilleC!E2

    Alors que je voudrais QUE la valeur. Donc vous me direz que je peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Mais là maintenant si je change la valeur de D1 dans la feuille A alors la valeur de la cellule D1 de la feuille D ne changera pas.

    Moi ce que je veux finalement c'est un mélange c-a-d un collage spéciale (valeur) et avec liaison

    Je vois deux solutions possibles mais lourdes :
    - A chaque fois que je vais sur la feuille D je recalcule tout sur la feuille C puis je fais une copie avec collage spécial

    - A chaque fois que la selection change sur les feuille A ou B alors je recalcule sur la feuille C puis je répercute cela sur la feuille D

    Merci de bien vouloir m'aider

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben tes calculs peuvent être fait en automatique.... pour le transfert vers la feuille D tu oeu utiliser l'événement activate de la dite feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_Activate()
     With Sheets("FeuilC")
       [D1] = .Range("D1")
       [D2] = .Range("D2")
       [E1] = .Range("E1")
       [E2] = .Range("E2")
     End With
     
     End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Ok c'est bien mais cellule par cellule c'est long et avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         With Sheets("FeuilleC")
       Range("G4:o184") = .Range("G4:o184")
       End With
    rien ne ce passe suis-je obligé de faire ce traitement cellule par cellule.

    Merci pour la réponse qui me vas déjà très bien!

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    rajoute un .value.. et pas besoin de With .. vu que la chaîne de "prefixe" ne se répete pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Range("G4:o184").Value = Sheets("FeuilleC").Range("G4:o184").Value

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    J'en ai besoin car je ne vous ai pas montré tout le code.

    Merci c'est vrai qu'avec value ca fonctionne

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

Discussions similaires

  1. [VBA-W]prendre des valeurs "texte" dans Excel
    Par teromah dans le forum VBA Word
    Réponses: 12
    Dernier message: 14/06/2007, 16h20
  2. [VBA-E] Lire des valeurs dans un fichier excel
    Par nicobox dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/05/2006, 15h40
  3. [VBA-E] Addition des valeurs des textbox
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 15/02/2006, 14h49
  4. Ecraser des valeurs avec Dates identiques
    Par beurnoir dans le forum Access
    Réponses: 10
    Dernier message: 25/10/2005, 09h47
  5. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38

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