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 :

changer la liaison d'une feuille


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut changer la liaison d'une feuille
    Bonsoir,

    J'ai deux feuilles excel :
    - "balance"
    - "full cost" celle-ci contient des formules dont les données sont liées à "balance"

    Je souhaite copier ces deux feuilles pour entrer une nouvelle saisie (mois suivant).
    Dans une première étape, je copie la feuille "balance" pour créer la feuille "balance(nouveau mois)" et effacer les données dans la copie pour permettre une nouvelle saisie.
    Dans une seconde étape je copie la feuille "full cost" pour créer la feuille "full cost(nouveau mois)". Le problème est que cette feuille garde la liaison avec la feuille initiale "balance".

    Je souhaiterai modifier cette liaison. C.a.d que la feuille "full cost (nouveau mois)" récupère les données de la nouvelle feuille "balance (nouveau mois)" et non pas "balance"

    voici mon code :

    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
    Private Sub CommandButton1_Click()
     
    mois = ComboBox1.Value
     
    'copie de la feuille balance
    Sheets("balance").Copy after:=Sheets(Sheets.Count)
    Sheets("balance (2)").Name = "bal" & " " & mois
    Sheets("bal" & " " & mois).Select
    Sheets("bal" & " " & mois).TextBox1.Value = mois
     
    'copie de la feuille full cost
    Sheets("full cost").Copy after:=Sheets(Sheets.Count)
    Sheets("full cost (2)").Name = "fc" & " " & mois
    Sheets("fc" & " " & mois).Select
    Sheets("fc" & " " & mois).TextBox1.Value = mois
     
    UserForm1.Hide
     
    MsgBox ("Vous pouvez saisir les données de la balance du mois de" & " " & mois), vbInformation, "Tronçais SA"
     
    Sheets("bal" & " " & mois).Select
     
    End Sub
    En espérant être clair dans mon explication.
    Merci d'avance de votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je te propose de copier les deux feuilles simultanément, en groupe de travail. Ainsi, Excel adapte automatiquement les formules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Worksheets(Array("balance", "full cost")).Copy after:=Sheets(Sheets.Count)
        With Worksheets("balance (2)")
            .Name = "Bal " & mois
            .TextBox1.Value = mois
        End With
        With Worksheets("full cost (2)")
            .Name = "fc " & mois
            .TextBox1.Value = mois
        End With
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    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...
    ---------------

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Par défaut
    Bonjour,

    Merci de votre réponse

    Votre code fonctionne parfaitement.
    Une boite de dialogue me demande si je souhaite changer les noms* que j'ai défini sur certaines plages de cellules de la feuille "balance". Je rentre donc manuellement le nouveau nom. Par exemple, une plage de données se nomme "SD" sur la feuille "balance" que je modifie en "SDfevrier" pour la feuille "balance février". Ainsi, la liaison avec la nouvelle feuille "full cost fevrier" s'effectue correctement.

    Cependant est-il possible de modifier directement ces noms de plages de cellule à partir de code ?

    *dans excel insertion/nom/définir

    Merci

    J'ai trouver le code suivant grâce à l'enregistreur de macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Names.Add Name:="balance" & mois, RefersToR1C1:="='balance (2)'!R11C2:R54C9"
    Cela me permet seulement de modifier le nom des plages pour la nouvelle copie, mais la liaison avec la feuille "full cost(nouveau mois)" ne se fait pas. C.a.d que la formule contient toujours le nom "balance" et non pas "balance(nouveau mois)".


    Pour simplifier je ne fais plus appel au nom des cellules mais aux cellules dans mes formules.

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

Discussions similaires

  1. [WD-97] Changer la liaison d'une image contenue dans un entete de page
    Par Razmote dans le forum VBA Word
    Réponses: 15
    Dernier message: 18/05/2010, 10h49
  2. changer plusieurs liaisons en une étape
    Par melan dans le forum Word
    Réponses: 3
    Dernier message: 17/09/2009, 21h15
  3. Changer la forme d'une feuille en vb 2005
    Par Namson dans le forum VB.NET
    Réponses: 1
    Dernier message: 08/05/2007, 10h51
  4. [VBA-E] Liaison vers une feuille non excistante
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2007, 12h44
  5. [VBA-E]Changer la "légende" d'une feuille
    Par illight dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 09/02/2006, 15h46

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