Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/08/2011, 15h51   #1
Invité de passage
 
Inscription : août 2011
Messages : 20
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 20
Points : 0
Points : 0
Par défaut Lier fichier source à une cellule

Ma macro se sert de 3 fichiers source plusieurs fois ainsi que du nom de la feuille active. J'aimerais pouvoir duppliquer cette macro à d'autres onglets et d'autres fichiers.

Pour gagner du temps, j'aimerais que chaque fichier renvoie à une cellule de la feuille active. Ainsi, au lieu de changer toutes les sources dans mes codes, je ne les changerai qu'une seule fois via la cellule de référence au fichier.

J'ai donc inséré dans ma feuille en P16 mon fichier source : [Ctrl Gestion -SG- analyse par postes -0611.xls]RUB2'!$A:$T

J'ai essayé avec la modif d'une formule.

Au lieu de :

Code :
1
2
3
Dim r11 As Range 'Cellule destinatire
    Set r11 = ThisWorkbook.Sheets("Essai juin").Range("C14") 'Définit cellule de départ ( ?ActiveCell)
    r11.Formula = "=IF(" & r11.Offset(0, -1).Address(False, False) & "= """","""",VLOOKUP(" & r11.Offset(0, -1).Address(False, False) & ",'[Ctrl Gestion -SG- analyse par postes -0611.xls]RUB2'!$A:$T,2,""faux""))"
Code :
1
2
3
Dim r11 As Range 'Cellule destinatire
    Set r11 = ThisWorkbook.Sheets("Essai juin").Range("C14") 'Définit cellule de départ ( ?ActiveCell)
    r11.Formula = "=IF(" & r11.Offset(0, -1).Address(False, False) & "= """","""",VLOOKUP(" & r11.Offset(0, -1).Address(False, False) & ",Cells(16,16).Text,2,""faux""))"
Mais ca ne fonctionne pas !

Pourriez-vous m'aider pour la syntaxe??

Merci,
Magali
Mag555 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 19h33   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Bonjour

Essais comme cela (Il est plus lisible d'utiliser range avec l'adresse de la cellule)
Code :
r11.Formula = "=IF(" & r11.Offset(0, -1).Address(False, False) & "= """","""",VLOOKUP(" & r11.Offset(0, -1).Address(False, False) & "," & Range("P16").Value & ",2,""faux""))"
Et dans P16 (ne pas oublier la quote au début ' )
Code :
'[Ctrl Gestion -SG- analyse par postes -0611.xls]RUB2'!$A:$T
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h54.


 
 
 
 
Partenaires

Hébergement Web