Question EXCEL : liens entre feuille

kwanice Messages postés 227 Statut Membre -  
 nelrak -
Salut à tous, on va voir s'il y a des doués par ici..:p

j'ai des liens entre plusieurs feuilles ou classeurs différents
on a des formules du style =[nomdufichier.xls]feuille!$A$1
alors peut-on donner comme 'nomdufichier.xls' ou comme 'feuille' une association de cellule?
ex : =[A1+A2.xls]B1+B2!$A$1
ca serait par exemple pour avoir un lien avec un fichier excel (nom_prenom.xls) par rapport à une cellule A1 qui contient le nom et une cellule A2 qui contient le prénom.
Pensez-vous que cela est possible? si oui comment?..par macro? mais comme je m'y connais pas bien en macro je vois pas.
MERCI

Ancien webmaster de ... 
Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !

19 réponses

  1. Utilisateur anonyme
     
    Bonjour kwanice,

    Je ne suis que programmeur d'occase pour le plaisir. En effet
    bien que beaucoup parle de VB comme d'une mdr...
    moi, j'apprécie beaucoup puisque toute la suite Office comporte
    du VBA, qui nous donne aussi accèss au VBS.

    Alors pour tes questions :

    "tu aurais pas un conseil pr que je m'y mette?"

    Tu peux lire ce petit tutorial(en construction) que j'ai écrit,
    ça devrait t'aider à comprendre la routine que j'ai fait :
    http://www.oricom.ca/lupin/Excel/Index.htm
    J'ai pas regardé ici sur CCM, s'il avait un tutorial sur le VBA,
    il te suffit de recherche sur le site :)

    "est-ce que l'on peut creer la meme procédure mais sans que ca enregistre?"

    Cette procédure n'enregistre pas de fichier, bien sur à l'exécution
    lorsque le lien est déposé dans la cellule, Excel tente d'ouvrir le lien
    pour effectuer une mise à jour de la donnée.

    Deux possibilité, soit on rajoute une instruction qui dit à Excel
    de ne pas effectuer de mise à jour, soit tu crée le fichier. Même
    en plaçant l'instruction [app..enabled..=false], a toutes les fois
    ou tu ouvrira ce fichier, il tentera de trouver le fichier de tous les
    liens.

    Lupin
    4
  2. Utilisateur anonyme
     
    Re :

    Voici la procédure corrigé :)

    Sub CreerLien()

    Dim Fonction, Plage As String
    Dim Nom, Prenom As String
    Dim Boucle As Integer

    Const LimiteInf = 9
    Const LimiteSup = 70

    'Empêche la mise è jour des liens
    Application.DisplayAlerts = False

    'Variable témoin
    Fonction = "'E:\Mme BONIFASSI\[ALFONSI_François.xls]Absences_2004'!$F$42"

    For Boucle = LimiteInf To LimiteSup
    Plage = "D" & Boucle 'Création de l'indice
    Range(Plage).Select 'Sélection de la cellule
    Nom = ActiveCell.Offset(0, -3).Value 'Capture Nom
    If (Nom <> "") Then
    Prenom = ActiveCell.Offset(0, -2).Value 'Capture Prénom
    If (Prenom <> "") Then
    'Création de la formule du lien
    Fonction = "='E:\Mme BONIFASSI\["
    Fonction = Fonction & Nom & "_" & Prenom
    Fonction = Fonction & ".xls]Absences_2004'!$F$42"
    ActiveCell.Offset(0, 0).Value = Fonction
    Else
    ActiveCell.Offset(0, 0).Value = "Vide"
    End If
    Else
    ActiveCell.Offset(0, 0).Value = "Vide"
    End If
    Next Boucle

    Application.DisplayAlerts = True
    Range("A1").Select

    End Sub

    Lupin
    2
    1. JuJu
       
      Bonjour Arsène!
      Le topic date, mais je rencontre le même problème que Kwanice.
      Votre réponse à l'air d'être adaptée à son fichier exemple, je n'arrive pas à comprendre ce script pour l'utiliser avec mes fichiers.
      Pouvez vous m'aider??
      Merci de votre réponse,
      Juju
      0
    2. guigz
       
      Salut!

      Mon problème est différent mais dans la forme peut sembler la même chose.
      J'ai une feuille BASE qui reprend les caractéristiques de produits, et une autre feuille qui sert de masque d'impression. L'utilité du fichier est de pouvoir imprimer des étiquettes (je sais je sais, pourquoi Excel?? ben parce que l'imprimante me sort du bon boulot qu'avec Excel...).

      Enfin bref... Donc dans mon masque, je tape le numéro de mon produit dans une cellule donnée et une fonction de recherche me renvoient les différentes valeurs qui sont au format texte. Le hic vient quand il s'agit de copier/coller le code barre correspondant au produit: ça n'est pas un nombre mais une image.

      Donc soit j'enregistre toutes les images dans le fichier ce qui n'est pas vraiment intéressant (à 185ko l'image par 128 produits soit plus de 23Mo) soit je demande à une macro ou une fonction d'aller chercher l'image, de l'ouvrir, de modifier les dimensions de l'image pour qu'elle rentre dans la cellule cible et enfin après impression de supprimer cette image des cellules cibles.

      Ca ne parait pas compliquer comme problème, mais quand t'es novice c'est autre chose... lol Donc je me tourne vers vous pour savoir au moins comment je pourrais faire.

      Merci d'avance
      0
  3. damdam
     
    bonjour, je souhaiterais recopier des informations d'une feulle à l'autre tout en gardant la meme forme et meme couleur.

    En fait je voudrais que les info que vont rentré les gens dans la feeulle A se retrouve automatiquement dans la feuille B toute en gardant la meme couleur de fond! c'est possible???

    Merci d'avavnce
    2
  4. hourrrah Messages postés 6976 Statut Membre 515
     
    salut kwanice,
    ..en construisant ta formule, le lien avec les classeurs et feuilles successifs ( et certaines cellules de celle-ci) se fait automatiquement...
    Il suffit que les divers classeurs entre lesquels on navigue soient ouverts.

    Cordialement  et @+ 
    Chi va piano va sano..chi va sano va più lontano e più alto
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kwanice Messages postés 227 Statut Membre 18
     
    oué mais non...
    enfait c pas pour ca

    si en cellule A1 = Pierre
    en A2 = DURAND
    j'aimerais que le lien que je fais avec cette feuille de classeur utilise les cellules A1+A2 pour avoir PierreDURAND par ex.
    [PierreDURAND.xls]feuille!
    ok?

    Ancien webmaster de ... 
    Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
    1
  7. hourrrah Messages postés 6976 Statut Membre 515
     
    Re..
    1) une association de cellules ne peut devenir ipso facto un fichier .xls.. elle peut, par contre, constituer une matrice ou avoir un nom..
    2) dans le cas particulier, il ne s'agit d'ailleurs même d'une association de cellules mais d'une somme de cellules...
    3) remarque étant faite qu'une telle somme ne donnera certainement pas, de plus, le résultat indiqué..

    ..alors...

    Cordialement  et @+ 
    Chi va piano va sano..chi va sano va più lontano e più alto
    1
  8. andré
     
    Pour mettre sur une feuille, dans la cellule A1(exemple), les données d'une autre feuille, dans la cellule A1 mettre = , ensuite cliquer sur la feuille contenant les données et sur la cellule à mettre en A1, faire entrée et les données sont transférées .
    Clique sur afficher la barre de formule permet de voir la composition de la formule.
    1
  9. SdQY Messages postés 193 Statut Membre 33
     
    Salut!

    Je ne comprends pas bien ce que tu cherches à faire, ni à quoi cela peut te servir.
    Pour voir apparaître un nom de fichier particulier, par exemple « Jean-Pierre.xls » dans une formule faisant référence à ce fichier particulier, il faut sauvegarder ce dernier sous le nom « Jean-Pierre ».
    Il n’y a pas de solutions simples pour cela et même en macro cela ne me paraît pas évident.
    Précise nous l’objet de ta question ou la finalité de ton problème et peut-être pourrons nous te faire une réponse + pertinente.

    @+
    SdQY
    1
    1. kwanice Messages postés 227 Statut Membre 18
       
      je vais t'expliquer concrétement :
      je dois faire un lien entre uen fichier qui porte le nom+prénom d'un salarié et un tableau récapitulatif qui comporte les noms de tous les salariés.
      sur ce tableau la chaque ligne correspond à un salarié, et des liens sont fait entre ce tableau récapitulatif et les différents correspond à chacun des salariés.
      pour automatiser tous ca, j'aurais aimé créer une formule qui reprenne le nom+prénom du salarié que j'auré saisie manuellement sur ce tableau récap. (qui a un lien avec un fichier du meme nom...)
      (vous allez me demander pkoi?...parcequ'en fait ce tableau récapitulatif change souvent, les salariés aussi..donc en faisant une formule qui associe le nom+prénom je ne suis pas obligé de conserver les meme liaisons...on va dire c plus "dynamique")
      enfin si quelqu'un a une idée...je suis preneur aussi..


      c mieux expliquer?...i hope...

      sinon vé mettre le ficher en ligne ca sera plus simple..mdr

      Ancien webmaster de ... 
      Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
      0
      1. hourrrah Messages postés 6976 Statut Membre 515 > kwanice Messages postés 227 Statut Membre
         
        re..salut kwanice,
        Lier des tableaux entre eux de façon à ce que les éléments de tableaux détails soient repris dans un tableau récapitulatif ne pose pas de problème particulier. Cela suppose tout juste une toute petite macro de 3-4 lignes à activer pour extraire, créer, actualiser et trier, autant que de besoin, le tableau récapitulatif.

        L'intervenant précédent pourra, sans doute, te détailler le montage du dispositif.

        Pour ma part, je pense toutefois qu'un gestionnaire de base de données comme access conviendrait mieux pour ce job qu'un tableur qui a plutôt vocation à gérer des nombres.

        Cordialement  et @+ 
        Chi va piano va sano..chi va sano va più lontano e più alto
        0
    2. kad
       
      Bonjour,
      salut moi je voudrait ouvrir une base de donnees mais elle ne s ouvre que partiellement merci
      0
  10. JacK
     
    Bonjour,

    comment fait-on ça sous Excel,

    Alimenter le contenu d'une liste en fonction d'un choix d'une autre liste?

    Exemple: J'ai une cellule(par exemple la cellule 1) dont les valeurs d'une liste peu être 'Jour de la semaine' et l'autre valeur 'Mois de l'année', si l'utilisateur sélectionne Jour de la semaine dans la liste de la cellule 1, je veux que le contenu de la liste de la colonne 2 par exemple soit 'Lundi, mardi, mercredi etc...si l'utilisateur choisi 'Mois de l'année' le contenu de la liste de la colonne 2 sera Janvier, Février, mars etc

    est-ce que ça se fait?

    Merci JacK
    1
  11. GA 42
     
    Bonjour,
    je suis devant un problème avec mon fichier excel car je dispose d'une liste de choix et je voudrais qu'en fonction de l'élément choisi dans cette même liste ça me ramène vers une autre feuille du classseur (soit automatiquement soit par un bouton de validation)

    Comment faire? macro ? VBA?

    Merci d'avance pour vos solutions
    1
  12. SdQY Messages postés 193 Statut Membre 33
     
    Bonsoir,

    Je reformule pour être sur d'avoir bien compris.

    Tu as, pour chaque salarié un fichier Excel et tu souhaites récupérer dans un tableau récapitulatif certains élements de chaque fichier individuel.
    En suposant que c'est bien cela le problème à résoudre:

    1°) Utiliser le nom et le prénom d'un salarié comme lien n'est pas une bonne idée, car le jour où tu auras 2 homonymes (nom+prénom), tu ne pourras plus exploiter ton travail. Je te conseille de coder chaque salarié et de te servir de ce code comme lien. Le N° de Secu est unique et peut très bien faire l'affaire.
    2°) Es-tu sur d'avoir besoin d'un fichier excel par salarié? D'habitude une ligne / personne suffit largement et pour la récap il suffit d'utiliser la fonction RechercheV(.,.,.,faux). Ce peut-être une feuille d'un même fichier ou un fichier différent.

    Je suis assez d'accord avec hourrrah. Ton problème relève plus de l'utilisation d'une base de données qu'Excel. Cela étant, Excel est capable de très bien s'en sortir et c'est plus facile à mettre en oeuvre qu'une base Access par exemple.
    Il ne faut jamais oublier que mettre en place une base de données, même avec des outils conviviaux comme Acces demande un minimum de connaisance en programmation et surtout une bonne analyse préalable.
    J'ai pour habitude de dire que si j'affecte un coéfficient de difficulté de 1 pour le traitement de texte, alors il est de 10 pour un tableur et 100 pour une base de donnée, et avec 100 je suis probablement en dessous de la réalité.

    Je te conseille donc, à moins que tu ne sois parfaitement rodé à la mise en place de base de données de voir si tu ne peux pas simplifier ton organisation en n'ayant qu'un fichier où tous les salariés sont en ligne, et où chaque info sur le salarié est dans une colonne (tj la même) du style:
    N°secu/Nom/Prénom/date naissance/date entrée/fonction/ ....
    Si tu tiens à ton Nom+prénom, tu peux même te créer un colonne en amont de toutes les autres (masquée eventuellement) du type Nom&Prénom.

    @+
    SdQY
    0
    1. kwanice Messages postés 227 Statut Membre 18
       
      bah merci bcp pour ton message..mais je pense que g vrément du mal à expliquer ou a me faire comprendre...mdr

      1° pr la base de donné, j'i déja utilisé mais ce n'est pas pour moi c dans le cadre d'une formation que je donne à une personne. et dans le cadre d'un exercice pratique que l'ont fait ensemble.
      Donc dans ce cas la la base de donné seré trop compliquer pr cette personne déja qu'avec la formule si elle se prend la tete..mdr

      2° je met un lien vers ce fichier...vs comprendrez peut etre mieux...
      http://kwanice.free.Fr/recap.xls
      regardez l'onglet MAI
      ...mici
      a+

      Ancien webmaster de ... 
      Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
      0
  13. SdQY Messages postés 193 Statut Membre 33
     
    Bonjour,

    J’ai regardé ton fichier. Mais, désolé ! Je ne sais pas faire une macro qui puisse enregistrer un fichier dont le nom correspond au contenu d’une cellule.

    Peut-être est-ce possible, mais je ne suis pas assez bon connaisseur de VB.

    Bon courage et si tu trouves, pense à nous donner la solution.

    @+
    SdQY
    0
    1. kwanice Messages postés 227 Statut Membre 18
       
      bah pr le moment je planche.....
      je pense que c pas possible vu que la c carrément dans le nom du fichier que je veux faire une formule...
      snif snif..

      Ancien webmaster de ... 
      Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
      0
  14. andré
     
    Je formule ma réponse pas très claire, déjà donnée

    Tu nommes une feuille Récap .
    Dans la caseA1 tu tapes =, ensuite tu cliques sur l'onglet de la feuille contenant nom+ prénom.
    La feuille s'ouvre, tu cliques sur le nom que tu veux, la case s'entoure de pointillé, tu fais entrée et ton nom est transféré dans la cellule A1 de la feuille récap.
    Tu fais la même chose pour le prénom mais dans la colonne B

    Toute modification apportée sur la feuille nom+prénom sera immédiatement répercutée sur la feuille Récap.
    0
  15. zouzou
     
    pour tout dire j'avoue que je me noie un peu dans les messages
    mais je sais que pour faire un lien on peut utiliser la formule " concatener"
    exemple
    feuille 1 cellule A1 "jean "
    feuille 2 cellule A1 "durand"
    feuille 3 cellule A1, tu vas dans formule " contanener "
    1ere champ :cellule A1 feuille 1 ,deuxieme chant a remplir tu cliques dans la cellule A1 feuille 2 et la tu obtiens dans la troisieme feuille jean durand
    note que j'ai peut etre rien compris a ton probleme et que c'est pas ca du tout ce que tu veux faire mais bon je me suis toujours demande a quoi servait cette fonction alors je suis contente d'avoir plus la placer;-)
    bonne chance
    0
    1. kwanice Messages postés 227 Statut Membre 18
       
      mdr...c gentil..
      mais en fait ca n'a rien a voir avec une formule...
      puisque moi c pr un lien et....bah je laisse tomber...
      je vais pas réexpliquer une 5 eme fois..lol


      Ancien webmaster de ... 
      Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
      0
      1. andré > kwanice Messages postés 227 Statut Membre
         
        kwanice, regarde la réponse que j'ai donné en N° 12, c'est la solution.
        0
  16. Utilisateur anonyme
     
    Bonjour Kwanice,

    Voici une autre soluce ... VBA

    Cette routine crée le lien en colonne D si et seulement si les colonnes A et B sont non-vide. Les limites sont défini par les constantes de la routine (LimiteInf et LimiteSup).

    Sub CreerLien()

    Dim Fonction, Tampon, Plage As String
    Dim Nom, Prenom As String
    Dim Boucle As Integer

    Const LimiteInf = 9
    Const LimiteSup = 72

    'Variable témoin
    Tampon = "'E:\Mme BONIFASSI\[ALFONSI_François.xls]Absences_2004'!$F$42"

    For Boucle = LimiteInf To LimiteSup
    Plage = "D" & Boucle 'Création de l'indice
    Range(Plage).Select 'Sélection de la cellule
    Nom = ActiveCell.Offset(0, -3).Value 'Capture Nom
    If (Nom <> "") Then
    Prenom = ActiveCell.Offset(0, -2).Value 'Capture Prénom
    If (Prenom <> "") Then
    'Création de la formule du lien
    Fonction = "='E:\Mme BONIFASSI\["
    Fonction = Fonction & Nom & "_" & Prenom
    Fonction = Fonction & ".xls]Absences_2004'!$F$42"
    ActiveCell.Offset(0, 0) = Fonction
    Else
    ActiveCell.Offset(0, 0) = "Vide"
    End If
    Else
    ActiveCell.Offset(0, 0) = "Vide"
    End If
    Next Boucle
    Range("A1").Select

    End Sub

    Lupin
    0
    1. kwanice Messages postés 227 Statut Membre 18
       
      wow.....t un boss.......!!!
      punaise et tu vois c la que je me dis que je devrais vraiment me mettre au vba..
      tu aurais pas un conseil pr que je m'y mette?
      déja je vais essayer de comprendre ta "routine" ..:s
      Mais merci c exactement ce que je voulais
      est-ce que l'on peut creer la meme procédure mais sans que ca enregistre? enfin sans que ca creer le fichier (juste que ca fasse le lien dans la cellule) ?
      Merci encore!!

      Ancien webmaster de ... 
      Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
      0
  17. kwanice Messages postés 227 Statut Membre 18
     
    et bah........... trop top...sérieux
    merci bcp
    je vais regarder ton site de plus prés enfin ton tuto!
    encore un grand merci

    c vré que bcp parle du vba comme de lamerdouille (pardon pr l'expression) mais je pense que c un language peut etre pas trop compliqué et comme tu dis "utilisé dans office" donc super répandu.

    Merci pr ta 2eme procédure corrigé vrément cool!

    Ancien webmaster de ... 
    Nouveau newbbie de ccm !..mdr HAVE FUN ! THAT'S ALL !
    0
  18. Krine
     
    Bonjour à tous,

    Voila mon souci...
    J'ai 2 feuilles Excel. Sur la première, je souhaiterais créer "une grille d'entrée" dans laquelle on retrouverait des éléments comme le nom de l'entreprise, la surface louée...qui se répercuterait automatiquement sur ma seconde feuille.
    Je voudrais que les données s'incrémentent automatiquement dans un tableau ligne par ligne sur cette seconde feuille. (les unes à la suite des autres).
    Merci d'avance pour la/les solutions que vous m'apporterez.
    Krine
    0
    1. alibaba
       
      J'ai exactement le même problème... je sais que ton message date, mais y avais-tu trouver une solution??

      Merci Alex
      0
    2. nelrak
       
      je veux additionner plusieurs feuille dans un nouveau dossier excel
      0
  19. calypso 41
     
    dans une colonne je chiffre les N° des adhérents 1 à 100
    quand je marque 001- 010 -020- 099 le premier zéro ne reste pas
    pour quoi .
    que dois-je faire pour rétablir la chose
    merci d'avance

    Calypso 41
    0
  20. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    Parce que c'est une valeur numérique, donc les zéros de gauche, non significatifs, sont enlevés d'office.

    Va dans ton format de cellule et crée un format personnalisé "000". Et voilà!!!
    0