VBA excel et sécurisation des liens
Fermé
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
-
10 mars 2008 à 17:45
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 11 mars 2008 à 14:46
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 11 mars 2008 à 14:46
A voir également:
- VBA excel et sécurisation des liens
- Si et excel - Guide
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
8 réponses
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
10 mars 2008 à 17:55
10 mars 2008 à 17:55
Salut,
Méthode simple pour lier une cellule d'un classeur A avec une cellule d'un classeur B : tu ouvres les deux classeurs, tu cliques sur la cellule de A, tu écris = puis tu bascules sur l'autre classeur, tu cliques sur la cellule que tu veux lier, puis tu tapes Entrée. Tu auras la syntaxe de la procédure...
Et pour trouver le code VBA, si c'est ça que tu veux, tu lances l'enregistreur de macro avant de faire la manip ci-dessus
:-)
Méthode simple pour lier une cellule d'un classeur A avec une cellule d'un classeur B : tu ouvres les deux classeurs, tu cliques sur la cellule de A, tu écris = puis tu bascules sur l'autre classeur, tu cliques sur la cellule que tu veux lier, puis tu tapes Entrée. Tu auras la syntaxe de la procédure...
Et pour trouver le code VBA, si c'est ça que tu veux, tu lances l'enregistreur de macro avant de faire la manip ci-dessus
:-)
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
10 mars 2008 à 17:58
10 mars 2008 à 17:58
bonjour
dans mon bilan il y a des valeurs que je voudrais reporté de document (exemple, cout de construction) contenu dans une cellule X, je ne parviens pas à trouver le code qui me permettrait de copier la valeur de la cellule (que j'aurais nommé au passage)
Avec une macro, pourquoi pas mais pourquoi aussi ne pas mettre tout simplement :
='mon_classeur_untel.xls]ma-feuille'!cellule_nommée
dans mon bilan il y a des valeurs que je voudrais reporté de document (exemple, cout de construction) contenu dans une cellule X, je ne parviens pas à trouver le code qui me permettrait de copier la valeur de la cellule (que j'aurais nommé au passage)
Avec une macro, pourquoi pas mais pourquoi aussi ne pas mettre tout simplement :
='mon_classeur_untel.xls]ma-feuille'!cellule_nommée
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
3
10 mars 2008 à 18:12
10 mars 2008 à 18:12
simplement c'est vrai mais, je voudrais éviter le plus possible de faire apparaitre les formules, voila pourquoi je préfère passer par vba ou la macro à la rigeur.
je tente les conseils et je vous tiens informé.
je tente les conseils et je vous tiens informé.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
10 mars 2008 à 18:00
10 mars 2008 à 18:00
bonjour,
Deux possiblité pour faire ça :
1- dans l'aide Excel ...
2- sur google ... ou tout autre moteur de recherche. (https://vb.developpez.com/faqvba/ ou https://excel.developpez.com/faq/
bon courage
;o)
polux
ps: environ 2 minutes pour trouver les 2 liens en passant par un moteur de recherche ...
Deux possiblité pour faire ça :
1- dans l'aide Excel ...
2- sur google ... ou tout autre moteur de recherche. (https://vb.developpez.com/faqvba/ ou https://excel.developpez.com/faq/
bon courage
;o)
polux
ps: environ 2 minutes pour trouver les 2 liens en passant par un moteur de recherche ...
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
3
10 mars 2008 à 18:13
10 mars 2008 à 18:13
Pour le gentil monsieur qui me donne des liens qui font 900pages je te remercies je lis progressivement ca depuis un moment, je sais pas pour toi mais je préfère avoir un minimum d'interaction quand j'apprends, c'est plus cordial et moins rébarbatif.
Mais je te remercies pour les liens (que j'ai déjà en favoris :D :D)
Mais je te remercies pour les liens (que j'ai déjà en favoris :D :D)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
10 mars 2008 à 19:04
10 mars 2008 à 19:04
bonjour
simplement c'est vrai mais, je voudrais éviter le plus possible de faire apparaitre les formules, voila pourquoi je préfère passer par vba ou la macro à la rigeur.
Dans ce cas-là je te donne une syntaxe de la macro :
Cela abouti au même résultat que la formule mais il n'y a plus la formule.
Bien sûr tu peux travailler avec des variables et faire des boucles d'évolution sur plusieurs cellules et classeurs.
Si tu mets ta macro à l'open du classeur, cela évite aussi le message de mise à jour des liaisons.
simplement c'est vrai mais, je voudrais éviter le plus possible de faire apparaitre les formules, voila pourquoi je préfère passer par vba ou la macro à la rigeur.
Dans ce cas-là je te donne une syntaxe de la macro :
[A1].FormulaArray = "='mon_classeur_untel.xls]ma-feuille'!cellule" [A1].Value = [A1].Value
Cela abouti au même résultat que la formule mais il n'y a plus la formule.
Bien sûr tu peux travailler avec des variables et faire des boucles d'évolution sur plusieurs cellules et classeurs.
Si tu mets ta macro à l'open du classeur, cela évite aussi le message de mise à jour des liaisons.
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
3
11 mars 2008 à 10:47
11 mars 2008 à 10:47
la formule que tu propose ne marche pas;
voici la formule que je donne:
Sub copie3()
[B26].FormulaArray = "=[chrono_adf.xls]plage!$h$217"
[B26].Value = [h217].Value
End Sub
Avec ceci rien ne s'affiche.Mais grâce à toi je suis arrivé à ça:
Sub copie2()
ActiveCell.Value = "=[chrono_adf.xls]plage!$h$217"
End Sub
Mais malheureusement on voit la formule dans la barre de saisie de formule...
Je voudrais éviter le plus possible que les formules apparaissent pour empêcher les erreurs de frappes, si vite arrivée et qui coûte cher dans certain cas.
voici la formule que je donne:
Sub copie3()
[B26].FormulaArray = "=[chrono_adf.xls]plage!$h$217"
[B26].Value = [h217].Value
End Sub
Avec ceci rien ne s'affiche.Mais grâce à toi je suis arrivé à ça:
Sub copie2()
ActiveCell.Value = "=[chrono_adf.xls]plage!$h$217"
End Sub
Mais malheureusement on voit la formule dans la barre de saisie de formule...
Je voudrais éviter le plus possible que les formules apparaissent pour empêcher les erreurs de frappes, si vite arrivée et qui coûte cher dans certain cas.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
>
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
11 mars 2008 à 11:08
11 mars 2008 à 11:08
bonjour
Tu as raison, j'avais effacé quelques caractères utiles !
Tu n'es pas allé tout à fait jusqu'au bout :
et tu auras la valeur sans la formule et sans liaison autre que VBA !
Tu as raison, j'avais effacé quelques caractères utiles !
Tu n'es pas allé tout à fait jusqu'au bout :
Sub copie2() ActiveCell.Value = "=[chrono_adf.xls]plage!$h$217" ActiveCell.Value = ActiveCell.Value End Sub
et tu auras la valeur sans la formule et sans liaison autre que VBA !
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
3
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
11 mars 2008 à 12:16
11 mars 2008 à 12:16
Merci, ca passe très bien, c'est la deuxième ligne qui fait qu'on ne voit pas la formule?
Sinon j'ai deux questions supplémentaire:
Comment spécifier la cellule affectée par la formule: au lieu de active.cell je met [cellule] ou $cellule$ ?
Comment ajouter d'autre copie dans la même procédure ? je voudrais que mes utilisateurs n'est à appliquer la macro qu'une seule fois.
Merci d'avance.
Sinon j'ai deux questions supplémentaire:
Comment spécifier la cellule affectée par la formule: au lieu de active.cell je met [cellule] ou $cellule$ ?
Comment ajouter d'autre copie dans la même procédure ? je voudrais que mes utilisateurs n'est à appliquer la macro qu'une seule fois.
Merci d'avance.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
>
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
11 mars 2008 à 14:46
11 mars 2008 à 14:46
bonjour
c'est la deuxième ligne qui fait qu'on ne voit pas la formule?
Grace à "FormulaArray" excel va chercher la valeur dans le classeur en installant la formule.
Cette formule donne une valeur et si tu attribues cette valeur à la cellule tu écrases laformule,
comme avec un copier / collage spécial valeurs sur une formule.
Comment spécifier la cellule affectée par la formule
Tu as autant de façons que tu veux :
Tu as bien sûr plein d'autres moyens d'adressage à utiliser selon les besoins : tu peux approfondir ce point pour trouver la méthode la plus adaptée à ton cas.
c'est la deuxième ligne qui fait qu'on ne voit pas la formule?
Grace à "FormulaArray" excel va chercher la valeur dans le classeur en installant la formule.
Cette formule donne une valeur et si tu attribues cette valeur à la cellule tu écrases laformule,
comme avec un copier / collage spécial valeurs sur une formule.
Comment spécifier la cellule affectée par la formule
Tu as autant de façons que tu veux :
[A1].FormulaArray = "='[mon_classeur_untel.xls]ma-feuille'!cellule" [A1].Value = [A1].Value ou en explicite range("A1").FormulaArray = "='[mon_classeur_untel.xls]ma-feuille'!cellule" range("A1").Value = range("A1").Value qui sont assez figés ou cells(ligne,colonne).FormulaArray = "='[mon_classeur_untel.xls]ma-feuille'!cellule" cells(ligne,colonne).Value =cells(ligne,colonne).Value afin de pouvoir faire des boucles en variant ligne et colonne et de même pour adressage de ta cellule à copier.
Tu as bien sûr plein d'autres moyens d'adressage à utiliser selon les besoins : tu peux approfondir ce point pour trouver la méthode la plus adaptée à ton cas.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
11 mars 2008 à 07:17
11 mars 2008 à 07:17
effectivement la méthode FLAMP est plus efficace et moins rébarbatif, j'en conviens, mais je préfère nettement la méthode FLTM qui est quand même plus enrichissante ne serai-ce que pour sa culture personnelle.
Je crois que tu peux effacer les liens de tes favoris, visiblement ils ne te servent à rien ...
;o)
polux
Je crois que tu peux effacer les liens de tes favoris, visiblement ils ne te servent à rien ...
;o)
polux
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
3
11 mars 2008 à 09:17
11 mars 2008 à 09:17
tu peux m'éclairer sur ces méthodes ?
Je vois pas du tout de quoi tu parles.
Je vois pas du tout de quoi tu parles.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
11 mars 2008 à 09:11
11 mars 2008 à 09:11
bonjour polux,
Le monde n'est pas obligatoirement d'un seul bord et on peut naviguer entre bâbord et tribord, entre la méthode FLAMP et la méthode FLTM : j'apprécie tes méthodes mais elles vont rester secrètes pour beaucoup !
bonjour Akhaos,
je tente les conseils et je vous tiens informé.
As-tu essayé la méthode VBA du poste 6 ?
Le monde n'est pas obligatoirement d'un seul bord et on peut naviguer entre bâbord et tribord, entre la méthode FLAMP et la méthode FLTM : j'apprécie tes méthodes mais elles vont rester secrètes pour beaucoup !
bonjour Akhaos,
je tente les conseils et je vous tiens informé.
As-tu essayé la méthode VBA du poste 6 ?
Akhaos
Messages postés
33
Date d'inscription
mardi 31 octobre 2006
Statut
Membre
Dernière intervention
3 novembre 2008
3
11 mars 2008 à 11:44
11 mars 2008 à 11:44
oui j'ai tenté mais ca passe pas...