J'ai dans un classeur Excel une liste de données sur des clients.
Colonne A : nom du client
Colonne B : Adresse
...
Prenons par exemple les données se trouvant dans la ligne 2.
J'aimerai que lorsque je clique sur H2, il m'ouvre un fichier 'modele.xls'
et qu'il me remplisse ce fichier
en pompant les infos dans la base. SAchant que dans mon fichier modèle j'ai
nommé mes cellules. Par exemple, la cellule qui comportera le nom du client
est nommée 'client'.
Une fois celà fait, qu'il me sauvegarde le fichier modele sous le nom du
client.
J'ai réussi à faire en sorte que lorsque je clique sur H2 je lance ma macro,
et j'arrive à ouvrir le fichier modèle.
Mais ensuite je bloque.
Je suppose que la formule sera du style :
je te conseille 1- d'éviter ActiveWorkbook dès lors que tu ne veux pas utiliser le classeur actif mais celui d'où a été lancé la macro (ThisWorkbook me semble plus approprié). C'est dangereux, car en ouvrant le modèle, le nouveau classeur peut devenir le classeur actif.
2- De la même façon, appelle plutôt les feuilles selon leur nom V BA (par exemple Feuil1.Range("A2") ainsi l'utilisateur peut lui changer son nom sans perturber le fonctionnement de la macro: à moins que ce nom soit un repère utile à l'utilisateur, c'est un mode d'emploi à choi sir).
je te conseille
1- d'éviter ActiveWorkbook dès lors que tu ne veux pas utiliser le
classeur actif mais celui d'où a été lancé la macro (ThisWorkbook me
semble plus approprié). C'est dangereux, car en ouvrant le modèle, le
nouveau classeur peut devenir le classeur actif.
2- De la même façon, appelle plutôt les feuilles selon leur nom V BA
(par exemple Feuil1.Range("A2") ainsi l'utilisateur peut lui changer son
nom sans perturber le fonctionnement de la macro: à moins que ce nom
soit un repère utile à l'utilisateur, c'est un mode d'emploi à choi sir).
je te conseille 1- d'éviter ActiveWorkbook dès lors que tu ne veux pas utiliser le classeur actif mais celui d'où a été lancé la macro (ThisWorkbook me semble plus approprié). C'est dangereux, car en ouvrant le modèle, le nouveau classeur peut devenir le classeur actif.
2- De la même façon, appelle plutôt les feuilles selon leur nom V BA (par exemple Feuil1.Range("A2") ainsi l'utilisateur peut lui changer son nom sans perturber le fonctionnement de la macro: à moins que ce nom soit un repère utile à l'utilisateur, c'est un mode d'emploi à choi sir).
Daniel
Bonjour. Adapte ce bout de code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim NomCli As String, AdrCli As String If Intersect(Target, Range("H:H")) Is Nothing Then Exit Sub NomCli = Target.Offset(0, -7).Value AdrCli = Target.Offset(0, -6).Value Workbooks.Open Filename:="c:TonRepertoiremodele.xls" ActiveSheet.Range("nom").Value = NomCli ActiveSheet.Range("adresse") = AdrCli Workbooks("modele.xls").SaveAs Filename:="c:TonRepertoire" & NomCli Workbooks("modele.xls").Close End Sub
Cordialement. Daniel
"Laurent" a écrit dans le message de news:
Bonjour,
J'ai dans un classeur Excel une liste de données sur des clients. Colonne A : nom du client Colonne B : Adresse ...
Prenons par exemple les données se trouvant dans la ligne 2. J'aimerai que lorsque je clique sur H2, il m'ouvre un fichier 'modele.xls' et qu'il me remplisse ce fichier en pompant les infos dans la base. SAchant que dans mon fichier modèle j'ai nommé mes cellules. Par exemple, la cellule qui comportera le nom du client est nommée 'client'. Une fois celà fait, qu'il me sauvegarde le fichier modele sous le nom du client.
J'ai réussi à faire en sorte que lorsque je clique sur H2 je lance ma macro, et j'arrive à ouvrir le fichier modèle. Mais ensuite je bloque. Je suppose que la formule sera du style :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim NomCli As String, AdrCli As String
If Intersect(Target, Range("H:H")) Is Nothing Then Exit Sub
NomCli = Target.Offset(0, -7).Value
AdrCli = Target.Offset(0, -6).Value
Workbooks.Open Filename:="c:TonRepertoiremodele.xls"
ActiveSheet.Range("nom").Value = NomCli
ActiveSheet.Range("adresse") = AdrCli
Workbooks("modele.xls").SaveAs Filename:="c:TonRepertoire" & NomCli
Workbooks("modele.xls").Close
End Sub
Cordialement.
Daniel
"Laurent" <Gadeyne.laurent@wanadoo.fr> a écrit dans le message de news:
e8UzJqUjFHA.320@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'ai dans un classeur Excel une liste de données sur des clients.
Colonne A : nom du client
Colonne B : Adresse
...
Prenons par exemple les données se trouvant dans la ligne 2.
J'aimerai que lorsque je clique sur H2, il m'ouvre un fichier 'modele.xls'
et qu'il me remplisse ce fichier
en pompant les infos dans la base. SAchant que dans mon fichier modèle
j'ai nommé mes cellules. Par exemple, la cellule qui comportera le nom du
client est nommée 'client'.
Une fois celà fait, qu'il me sauvegarde le fichier modele sous le nom du
client.
J'ai réussi à faire en sorte que lorsque je clique sur H2 je lance ma
macro, et j'arrive à ouvrir le fichier modèle.
Mais ensuite je bloque.
Je suppose que la formule sera du style :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim NomCli As String, AdrCli As String If Intersect(Target, Range("H:H")) Is Nothing Then Exit Sub NomCli = Target.Offset(0, -7).Value AdrCli = Target.Offset(0, -6).Value Workbooks.Open Filename:="c:TonRepertoiremodele.xls" ActiveSheet.Range("nom").Value = NomCli ActiveSheet.Range("adresse") = AdrCli Workbooks("modele.xls").SaveAs Filename:="c:TonRepertoire" & NomCli Workbooks("modele.xls").Close End Sub
Cordialement. Daniel
"Laurent" a écrit dans le message de news:
Bonjour,
J'ai dans un classeur Excel une liste de données sur des clients. Colonne A : nom du client Colonne B : Adresse ...
Prenons par exemple les données se trouvant dans la ligne 2. J'aimerai que lorsque je clique sur H2, il m'ouvre un fichier 'modele.xls' et qu'il me remplisse ce fichier en pompant les infos dans la base. SAchant que dans mon fichier modèle j'ai nommé mes cellules. Par exemple, la cellule qui comportera le nom du client est nommée 'client'. Une fois celà fait, qu'il me sauvegarde le fichier modele sous le nom du client.
J'ai réussi à faire en sorte que lorsque je clique sur H2 je lance ma macro, et j'arrive à ouvrir le fichier modèle. Mais ensuite je bloque. Je suppose que la formule sera du style :