Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2225 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA - Formules qui fait référence à deux classeurs

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA - Formules qui fait référence à deux classeurs

n°2278510
juju0989
Je suis dans la galère
Posté le 27-03-2016 à 22:43:54  profilanswer
 

Bonjour à tous,
 
J'ai besoin de votre aide :
ActiveCell.Formula = "=INDEX(Pointage,MATCH(72520,Section,0),MATCH(72033,Matricule,0))"
 
Je souhaite appliquer cette formule dans ma macro, la formule fonctionne mais la difficulté ici est que les plages Pointage, Section et Matricule se trouvent dans un autre classeur.  
 
Ma question est donc la suivante comment je définis ces plages pour que je puisse appliquer ma formule, j'avais pensé à ça :
 
'Dim Section As Range
'Section = Range("A9:A53" )
 
'Dim Matricule As Range
'Matricule = Range("C7:F7" )
 
'Dim Pointage As Range
'Pointage = Range("C9:F53" )
 
mais ça n'a pas l'air de fonctionner ! :-(  
 
Je vous remercie d'avance pour votre aide !!
 


---------------
Une novice en VBA
mood
Publicité
Posté le 27-03-2016 à 22:43:54  profilanswer
 

n°2278549
Marc L
Posté le 29-03-2016 à 10:35:42  profilanswer
 

 
            Bonjour,
 
            quelle est la formule fonctionnant et entrée manuellement directement dans une cellule ?
 

n°2278568
japps
Learn listening & teaching
Posté le 29-03-2016 à 16:55:56  profilanswer
 

juju0989 a écrit :

Bonjour à tous,
 
J'ai besoin de votre aide :
ActiveCell.Formula = "=INDEX(Pointage,MATCH(72520,Section,0),MATCH(72033,Matricule,0))"
 
Je souhaite appliquer cette formule dans ma macro, la formule fonctionne mais la difficulté ici est que les plages Pointage, Section et Matricule se trouvent dans un autre classeur.  
 
Ma question est donc la suivante comment je définis ces plages pour que je puisse appliquer ma formule, j'avais pensé à ça :
 
'Dim Section As Range
'Section = Range("A9:A53" )
 
'Dim Matricule As Range
'Matricule = Range("C7:F7" )
 
'Dim Pointage As Range
'Pointage = Range("C9:F53" )
 
mais ça n'a pas l'air de fonctionner ! :-(  
 
Je vous remercie d'avance pour votre aide !!
 


 
 
Salut Juju,
je suppose que tu veux garder le lien avec l'autre classeur qui contient tes plages de données "Pointage","Section" et "Matricule" et que ce sont ces informations qui doivent être ramenées à l'aide de ta formule.  
 
Pour cela, selon que ton classeur a un nom composite ( ex: Classeur De Test.xlsx) ou un nom simple (ex: Classeur1.xlsx), tu pourras adapter une des formules suivantes:
 
1°) ActiveCell.Formula = "=INDEX('Classeur De Test.xlsx'!Pointage,MATCH(72520,'Classeur De Test.xlsx'!Section,0),MATCH(72033,'Classeur De Test.xlsx'!Matricule,0))"
 
2°) ActiveCell.Formula = "=INDEX(Classeur1.xlsx!Pointage,MATCH(72520,Classeur1.xlsx!Section,0),MATCH(72033,Classeur1.xlsx!Matricule,0))"
 
Bien évidemment, l'extension ".xlsx" doit être modifiée si ton fichier n'est pas de ce format (tu pourrais avoir en effet .xls, .xlsm, etc.)
Concernant tes valeurs cherchées 72520 et 72033, si ce sont des textes, il serait souhaitable de les écrire comme ceci dans la formule: ""72520"" et ""72033"" pour éviter de mauvaises surprises.
Tu aurais donc par exemple : ActiveCell.Formula = "=INDEX(Classeur1.xlsx!Pointage,MATCH(""72520"",Classeur1.xlsx!Section,0),MATCH(""72033"",Classeur1.xlsx!Matricule,0))"
 
 
J'ai aussi vu que tu voudrais nommer des plages. Tu sélectionnes la plage; et tu lui donnes un nom. Par exemple pour Matricule (en prenant les références de ton post et en supposant que tu es deja sur le classeur et la feuille concernée), on aura 2 lignes de codes:  
 
Range("C7:F7" ).select            'Ou encore Range(cells(7,3),cells(7,6)).select
Selection.Name="Matricule"
 
 
Merci. N'hésite pas à me signaler si j'oublie une chose.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA - Formules qui fait référence à deux classeurs

 

Sujets relatifs
Piloté en VBA, Word 2013 se comporte différemment que Word 2007/10VBA : manipuler des fichiers dont le nom a des caractères spéciaux
VBA PPT - Déplacer une Shape d'une slide à une AutreComment créer 120 classeurs?
Diverses questions VBA[VBA/Excel] Ouverture de Fichier User Friendly
[VBA]Numéro de colonne d'après son libelléFonction couper-coller VBA
Chronomètre en VBAVBA Word prend son temps
Plus de sujets relatifs à : VBA - Formules qui fait référence à deux classeurs


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR