Macro pour dupliquer des tables selon une colonne
Résolu
Niquo69
Messages postés
5
Statut
Membre
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
Bonjour les experts,
Etant novice en matière de macro, j'aimerai recevoir vos lumières pour une manipulation que vous trouverez sans doute simple, voir simpliste.
Voila mon problème :
J'ai deux fichiers excel :
- Le 1er contient simplement une colonne avec des noms de clients : DUPONT, BERTRAND, etc.
Le 2nd fichiers excel est un questionnaire.
Je souhaiterai générer automatiquement des questionnaires (2nd fichier) reprenant les noms des clients.
A titre d'illustration, mon 1er fichier contient deux clients : Monsieur DUPONT et Monsieur BERTRAND.
Je souhaiterai générer une macro qui me permettrait de générer automatiquement un questionnaire reprenant le nom du client par exemple : DUPONT_QUESTIONNAIRE.
Bien entendu, mon 1er fichier contient une centaine de nom et je ne souhaite pas taper les noms de mes questionnaires à la main.
Merci pour vos lumières.
Au plaisir de vous lire.
Niquo69
Etant novice en matière de macro, j'aimerai recevoir vos lumières pour une manipulation que vous trouverez sans doute simple, voir simpliste.
Voila mon problème :
J'ai deux fichiers excel :
- Le 1er contient simplement une colonne avec des noms de clients : DUPONT, BERTRAND, etc.
Le 2nd fichiers excel est un questionnaire.
Je souhaiterai générer automatiquement des questionnaires (2nd fichier) reprenant les noms des clients.
A titre d'illustration, mon 1er fichier contient deux clients : Monsieur DUPONT et Monsieur BERTRAND.
Je souhaiterai générer une macro qui me permettrait de générer automatiquement un questionnaire reprenant le nom du client par exemple : DUPONT_QUESTIONNAIRE.
Bien entendu, mon 1er fichier contient une centaine de nom et je ne souhaite pas taper les noms de mes questionnaires à la main.
Merci pour vos lumières.
Au plaisir de vous lire.
Niquo69
A voir également:
- Macro pour dupliquer des tables selon une colonne
- Dupliquer ecran - Guide
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Table des matières word - Guide
5 réponses
Bonjour,
Il faut que votre classeur Questionnaire soit dans le même dossier que le classeur ayant les noms. Je l'ai nommé "questionnaire" a vous de l'adapter.
Mettre dans le classeur et la feuille ayant les noms ce code.
Pour accéder au code faites AltF11:
@+ Le Pivert
Il faut que votre classeur Questionnaire soit dans le même dossier que le classeur ayant les noms. Je l'ai nommé "questionnaire" a vous de l'adapter.
Mettre dans le classeur et la feuille ayant les noms ce code.
Pour accéder au code faites AltF11:
Option Explicit--
Dim nom As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
nom = Target.Value
Workbooks.Open (ThisWorkbook.Path & "\questionnaire.xls") 'extension à adapter
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
MsgBox "votre classeur est enregistré à cet emplacement: " & ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
End Sub
@+ Le Pivert
Un grand MERCI pour ta réponse Pivert :)
J'ai crée un bouton dans mon ficheir excel auquel j'ai associé la macro suivante :
Option Explicit
Dim nom As String
Private Sub Bouton4_Clic(ByVal sel As Range)
If Target.Value = "" Then Exit Sub
nom = Target.Value
Workbooks.Open (ThisWorkbook.Path & "\questionnaire.xls") 'extension à adapter
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
MsgBox "votre classeur est enregistré à cet emplacement: " & ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
End Sub
Une fois lancée, j'ai un message d'erreur me disant "argument non facultatif".
Ai-je loupé une étape importante ? Si oui laquelle ?
Un grand MERCI pour ton retour.
Niquo69
J'ai crée un bouton dans mon ficheir excel auquel j'ai associé la macro suivante :
Option Explicit
Dim nom As String
Private Sub Bouton4_Clic(ByVal sel As Range)
If Target.Value = "" Then Exit Sub
nom = Target.Value
Workbooks.Open (ThisWorkbook.Path & "\questionnaire.xls") 'extension à adapter
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
MsgBox "votre classeur est enregistré à cet emplacement: " & ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
End Sub
Une fois lancée, j'ai un message d'erreur me disant "argument non facultatif".
Ai-je loupé une étape importante ? Si oui laquelle ?
Un grand MERCI pour ton retour.
Niquo69
Bonjour,
Tu t'es créé une procédure en ajoutant un paramètre (inutile d'ailleurs). Donc excel te demande ce paramètre, normal.
Il n'y a que dans les évènements connus et géré par excel que ce passage de paramètre est automatique (ce qu'avait utilisé picvert).
Fais plutôt qcq chose comme ça :
Ensuite ajoute ton bouton.
Si c'est un bouton Formulaire, fais le lien vers cette procédure.
Si c'est un bouton ActiveX, appelle cette procédure dans son code (double-cliquer sur le bouton pour se mettre dans l'évènement click).
Sélectionnes A6:A10 avant de cliquer pour créer ces 5 fichiers.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(devise Shadok)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Tu t'es créé une procédure en ajoutant un paramètre (inutile d'ailleurs). Donc excel te demande ce paramètre, normal.
Il n'y a que dans les évènements connus et géré par excel que ce passage de paramètre est automatique (ce qu'avait utilisé picvert).
Fais plutôt qcq chose comme ça :
Sub creerFichiers()
Dim c As Range
For Each c In Selection
' ton code utilisant c.value comme variable et non pas target qui n'existe pas
Next c
End Sub
Ensuite ajoute ton bouton.
Si c'est un bouton Formulaire, fais le lien vers cette procédure.
Si c'est un bouton ActiveX, appelle cette procédure dans son code (double-cliquer sur le bouton pour se mettre dans l'évènement click).
Sélectionnes A6:A10 avant de cliquer pour créer ces 5 fichiers.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(devise Shadok)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Merci Eric pour ta réponse.
J'ai crée un bouton active X et je lui ai attribué le code suivant :
Private Sub CommandButton1_Click()
Dim c As Range
For Each c In Selection
If Target.Value = "" Then Exit Sub
nom = Target.Value
Workbooks.Open (ThisWorkbook.Path & "\questionnaire.xls") 'extension à adapter
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
MsgBox "votre classeur est enregistré à cet emplacement: " & ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
End Sub
J'ai un message d'erreur en retour me disant qu'il y a une erreur de compilation "For sans Next"".
Pourrais-tu m'éclairer ?
Merci d'avance
J'ai crée un bouton active X et je lui ai attribué le code suivant :
Private Sub CommandButton1_Click()
Dim c As Range
For Each c In Selection
If Target.Value = "" Then Exit Sub
nom = Target.Value
Workbooks.Open (ThisWorkbook.Path & "\questionnaire.xls") 'extension à adapter
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
MsgBox "votre classeur est enregistré à cet emplacement: " & ThisWorkbook.Path & "\" & nom & "_questionnaire.xls" 'extension à adapter
End Sub
J'ai un message d'erreur en retour me disant qu'il y a une erreur de compilation "For sans Next"".
Pourrais-tu m'éclairer ?
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question