Macro pour dupliquer des tables selon une colonne
Résolu/Fermé
Niquo69
Messages postés
5
Date d'inscription
mercredi 2 avril 2014
Statut
Membre
Dernière intervention
11 mai 2015
-
2 avril 2014 à 17:15
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 4 avril 2014 à 12:26
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 4 avril 2014 à 12:26
A voir également:
- Macro pour dupliquer des tables selon une colonne
- Dupliquer ecran - Guide
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Table des matières word - Guide
- Trier colonne excel - Guide
5 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
3 avril 2014 à 12:02
3 avril 2014 à 12:02
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
Niquo69
Messages postés
5
Date d'inscription
mercredi 2 avril 2014
Statut
Membre
Dernière intervention
11 mai 2015
Modifié par Niquo69 le 4/04/2014 à 09:56
Modifié par Niquo69 le 4/04/2014 à 09:56
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
4 avril 2014 à 10:36
4 avril 2014 à 10:36
Je n'ai pas dit de créer un button. J'ai dit de mettre ce code dans la feuille concernée (celle où tes noms sont saisis). La procédure ce déclenche quand tu cliques sur un nom avec:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 4/04/2014 à 10:17
Modifié par eriiic le 4/04/2014 à 10:17
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
Niquo69
Messages postés
5
Date d'inscription
mercredi 2 avril 2014
Statut
Membre
Dernière intervention
11 mai 2015
4 avril 2014 à 10:52
4 avril 2014 à 10:52
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
4 avril 2014 à 11:03
4 avril 2014 à 11:03
Si tu ne lis attentivement ce qu'on écrit ça peut durer longtemps, vba ne supporte pas l'approximation, et encore moins l'invention.
Lis aussi les messages d'erreur, il est explicite : "For sans Next"
Et relis le code que je t'ai proposé, y compris le commentaire (2nde erreur).
eric
Lis aussi les messages d'erreur, il est explicite : "For sans Next"
Et relis le code que je t'ai proposé, y compris le commentaire (2nde erreur).
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Niquo69
Messages postés
5
Date d'inscription
mercredi 2 avril 2014
Statut
Membre
Dernière intervention
11 mai 2015
4 avril 2014 à 11:14
4 avril 2014 à 11:14
Je débute en VBA, c'est tjs un peu compliqué :D
En tous les cas, je viens de trouver la solution à mon problème grâce à vous.
Un très grande MERCI pour ce gain de temps.
Niquo69
En tous les cas, je viens de trouver la solution à mon problème grâce à vous.
Un très grande MERCI pour ce gain de temps.
Niquo69
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 4/04/2014 à 12:26
Modifié par eriiic le 4/04/2014 à 12:26
Et c'est comme ça qu'on progresse aussi, en cherchant un peu et en étant attentif ;-)
N'oublie pas de mettre en résolu stp
eric
N'oublie pas de mettre en résolu stp
eric