Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

liaison via macro

  • Initiateur de la discussion Initiateur de la discussion charette63
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

charette63

XLDnaute Occasionnel
Bonjour à toutes et toutes

J'ai crée une macro de liaison via l'éditeur VBA:

Code:
Sub Macro25()
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "='[test onglets0 2011.xls]Récapitulatif'!R1C5"
    Range("E2").Select
End Sub


Je cherche à modifier le nom de la feuille (Récapitulatif) par Feuil1.Name:

Code:
Sub Macro25()
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "='[test onglets0 2011.xls]Feuil1.Name'!R1C5"
    Range("E2").Select
End Sub

Mais cela ne fonctionne pas, j'y ai mis des parenthèses, rien de mieux

pouvez-vous m'aider?

De plus, y-a-t-il moyen de remplacer, dans le code, le chiffre 2011 par une valeur d'une cellule donnée? Je m'explique avec mes mots:
[test onglets0 valeur de la cellule A1.xls]

merci pour votre aide

cordialement

Thierry
 
Re : liaison via macro

Arrrhh!
VB:
Feuil1.[E1].Value = Workbooks("test onglets0 " & Feuil1.[A10].Value & "bis.xls").Worksheets(Feuil1.Name).Cells(1, 1).Value
Explication: j'avais oublié le "s" à "Worksheets" et "Worksheet" n'est en effet ni une propriété ni une méthode d'un objet Workbook, vu qu'un classeur possède une collection de feuilles et non une feuille. Désolé pour le désagrément.
Pour me faire pardonner je vous donne ceci à installer dans un module normal à nommer "Divers" ou "Utilit" (j'en ai presque toujours un dans mes classeurs):
VB:
Function NomFeui(Optional ByVal NumFeui As Long = 0)
Dim Clas As Workbook, Feui As Worksheet, PlAp As Range
Set PlAp = Application.Caller: Set Feui = PlAp.Worksheet: Set Clas = Feui.Parent
If NumFeui > 0 Then Set Feui = Clas.Worksheets(NumFeui)
NomFeui = Feui.Name
End Function
cette fonction répond à votre deuxième question et peut être utilisée dans une formule.
=NomFeui() : - donne le nom de la feuille contenant la formule.
=NomFeui(N) : - donne le nom de la Nième feuille de calcul du classeur contenant la formule.
Attention à la première frappe: la casse n'est pas sensible mais hélas conservée et difficile à rectifier par la suite.
Cordialement.
 
Dernière édition:
ça marche du feu de dieu

vous n'aviez rien à vous faire pardonner, mais un cadeau comme celui là,ça ne se refuse pas et ça me touche beaucoup.

trêves de plaisanterie, merci beaucoup

Cordialement
Thierry
 
bonsoir le forum,

c'est encore moi, la dernière macro reçue de Dranreb fonctionne très bien.... sur le formulaire "test" que j'ai crée pour mes... euh...tests

Code:
Feuil1.[E1].Value = Workbooks("test onglets0 " & Feuil1.[A10].Value & "bis.xls").Worksheets(Feuil1.Name).Cells(1, 1).Value

je la copy/past dans mon dossier final, l'adapte au dossier:

Code:
Feuil17.[Q1].Value = Workbooks("fiche perso cuisine test" & " " & Feuil17.[L1].Value & ".xls").Worksheets(Feuil2.Name).Cells(2, 1).Value

et là, lors de l'activation de la macro, message d'erreur: erreur de compilation, variable non définie.--->et " (Feuil2.Name) " est surligné en jaune.

je fais quelques essais pour tâcher de trouver la cause:
-j'ai supprimé une à une toutes les macros de classeur
-j'ai inscrit la valeur en cells(2, 1) manuellement vu qu'elle s'inscrit par liaison
-j'ai renommé l'onglet de la Feuil2 manuellement vu qu'elle s'inscrit par liaison

toujours le même problème

par contre, je change le " Worksheets(Feuil2.Name) " par " Worksheets(2) " (emplacement de l'onglet sur sa ligne) et là, la macro me donne entière satisfaction.

une idée? une piste? mieux encore, une solution?

merci

cordialement
Thierry
 
Dernière édition:
Re : liaison via macro

Bonjour.
Je suis fondé à penser que dans votre classeur destination il ny a pas de feuille dont le nom VBA est "Feuil2". Vérifiez dans l'explorateur de projet.
À+
 
Bonjour Dranreb,

si si mon bon monsieur, il y a bien une "Feuil2" dans le classeur destinataire de la macro,
la macro fonctionne très bien sur les fichier déposés sur le forum parce que il y a deux feuilles "récapitulatif" (1x sur test onglet0, et 1x sur test onglet2). Mais si tu veux essayer, change le nom de l'onglet "récapitulatif" du classeur "test onglet2" et lance la macro, ça coince.

Tu peux retrouver la suite de la discussion à cette adresse:

https://www.excel-downloads.com/threads/resolu-erreur-de-compilation-variable-non-definie.163805/

cordialement
Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
258
Réponses
18
Affichages
597
Réponses
1
Affichages
313
Réponses
3
Affichages
333
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…