Macro pour dupliquer des tables selon une colonne
Résolu
Niquo69
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
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