Macro pour nouveau fichier
Fermé
red-69
Messages postés
15
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
-
7 mai 2008 à 14:15
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 mai 2008 à 10:00
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 mai 2008 à 10:00
Bonjour,
Dans un tableur excel ,je voudrais créer une macro pour avoir un nouveau fichier qui se créer en fonction des dates qui se situent dans la colonne H.
J'aimerai avoir un fichier si la date est inférieur à 31/12/2008; un fichier pour 2009; un pour 2010 et un autre pour le reste. Est-ce que cela est possible ?
Dans un tableur excel ,je voudrais créer une macro pour avoir un nouveau fichier qui se créer en fonction des dates qui se situent dans la colonne H.
J'aimerai avoir un fichier si la date est inférieur à 31/12/2008; un fichier pour 2009; un pour 2010 et un autre pour le reste. Est-ce que cela est possible ?
A voir également:
- Macro pour nouveau fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
7 mai 2008 à 15:50
7 mai 2008 à 15:50
c'est effectivement plus claire..
Voila un début de macro qui te donne les lignes à suivre, à toi de la complèté, revient si tu veux avec quelques détails et les lignes que tu y aurras ajouté.
A+
Voila un début de macro qui te donne les lignes à suivre, à toi de la complèté, revient si tu veux avec quelques détails et les lignes que tu y aurras ajouté.
Sub TrieNom() Dim i As Long, e As Long, D As String, NomFich As String Dim NomAverifie As String, CeClasseur As String ' NomAverifie = ? je ne sais Sheets("Feuil1").Activate 'A adapter au nom de la feuille CeClasseur = ActiveWorkbook.Name For i = 1 To Range("G1").SpecialCells(xlCellTypeLastCell).Row NomAverifie = Cells(i, 7).Value If i > 1 Then 'vérifié si ce nom existe déjà For e = 1 To i - 1 If UCase(Cells(e, 7).Value) = UCase(NomAverifie) Then 'le nom existe déjà ouvrir le fichier D = Year(Cells(i, 8).Value) NomFich = "C:\NOM\DATE\" & D & ".xls" Workbooks.Open NomFich 'ICI ajouté les données dans le classeur 'Ensuite sauver ActiveWorkbook.Save Workbooks(CeClasseur).Activate Workbooks(NomFich).Close GoTo Continuer End If Next e GoTo CreeLigne Else 'c'est la 1ère ligne CreeLigne: 'initialiser le chemin en fonction de la date D = Year(Cells(i, 8).Value) NomFich = "C:\NOM\DATE\" & D & ".xls" 'Créer fichier en fonction de la date Workbooks.Add 'ici mettre les données dans le nouveau classeur 'sauver le classeur sous nouveau nom ActiveWorkbook.SaveAs Filename:=NomFich Workbooks(CeClasseur).Activate Workbooks(NomFich).Close End If Continuer: Next i End Sub
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
7 mai 2008 à 17:03
7 mai 2008 à 17:03
Je pense a une chose, avais tu créer les répertoirs ? je crois que non, alors l'erreur vient de là, tu doit d'abord créer le répertoir
si oui tu doit donc aussi créer un répertoir ?
Je comprend pas bien, parce qu'alors suffirais de créer manuellement 4 classeurs et alors ajouté dedans !
Mais une autre chose m'interpelle... est-ce que NOM doit être remplacé par le nom du client ?
par exemple C:\George\2008 mais si c'est comme ca tu va surcharger le root, vaudrait mieux créer un rep par exemple
C:\Client\George\2008
C:\Client\André\2009
C:\Client\André\Avant2008
Tâche d'éclaircir ce sujet.
si oui tu doit donc aussi créer un répertoir ?
Je comprend pas bien, parce qu'alors suffirais de créer manuellement 4 classeurs et alors ajouté dedans !
Mais une autre chose m'interpelle... est-ce que NOM doit être remplacé par le nom du client ?
par exemple C:\George\2008 mais si c'est comme ca tu va surcharger le root, vaudrait mieux créer un rep par exemple
C:\Client\George\2008
C:\Client\André\2009
C:\Client\André\Avant2008
Tâche d'éclaircir ce sujet.
red-69
Messages postés
15
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
8 mai 2008 à 17:30
8 mai 2008 à 17:30
tu as raison lermite222. je n'avais ni créé par avant les répertoires car je croyais que la macro le ferait d'elle même et d'autre part il serait plus judicieux de créer un rep, ca sera plus simple pour retrouver les fichiers.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
>
red-69
Messages postés
15
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
9 mai 2008 à 10:00
9 mai 2008 à 10:00
Tu n'a pas répondu à la 2èm question. Si j'ai vu juste ce serrait mieux de créer les sous-rep par macro.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
7 mai 2008 à 14:25
7 mai 2008 à 14:25
Bonjour,
Nouveau fichier ? , nouveau classeur ? nouvelle feuille ? autre ?
Suivant ta réponse nous pourront t'aiguillé, mais donner une solution à toutes les possibilités serrait trop long
A+
Nouveau fichier ? , nouveau classeur ? nouvelle feuille ? autre ?
Suivant ta réponse nous pourront t'aiguillé, mais donner une solution à toutes les possibilités serrait trop long
A+
red-69
Messages postés
15
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
8 mai 2008
7 mai 2008 à 14:45
7 mai 2008 à 14:45
je m'explique mieux :
j'ai un tableau excel avec une colonne NOM en G et une colonne DATE en H.
il me faudrait une macro créant un nouveau classeur à chaque nouveau nom (si le nom revient plusieurs fois il faudrait que la macro compile les données dans un seul classeur), qu'elle copie les données propres à chaque nom et qu'en fonction de cela, elle créer un nouveau classeur avec un tri effectué sur les date.
le fichier final devrait avoir un chemin du genre : C:\NOM\DATE\2008 puis C:\NOM\DATE\2009 puis C:\NOM\DATE\2010 et enfin C:\NOM\DATE\2012
est-ce plus compréhensible ?
j'ai un tableau excel avec une colonne NOM en G et une colonne DATE en H.
il me faudrait une macro créant un nouveau classeur à chaque nouveau nom (si le nom revient plusieurs fois il faudrait que la macro compile les données dans un seul classeur), qu'elle copie les données propres à chaque nom et qu'en fonction de cela, elle créer un nouveau classeur avec un tri effectué sur les date.
le fichier final devrait avoir un chemin du genre : C:\NOM\DATE\2008 puis C:\NOM\DATE\2009 puis C:\NOM\DATE\2010 et enfin C:\NOM\DATE\2012
est-ce plus compréhensible ?
7 mai 2008 à 16:19
j'utilise ta macro et j'ai une erreur 1004 au niveau de la ligne ActiveWorkbook.SaveAs Filename:=NomFich
7 mai 2008 à 16:24
Sauve ton fichier principal sous un autre nom en cas de fausse manip dans la macro.
Oublie pas, tu doit le fermer et réouvrir le bon.
7 mai 2008 à 16:41
mais en fait je me rends compte qu'il n'est pas nécessaire d'avoir 2 fois la date dans le chemin. avoir une chemin C:\NOM\2008 serait plus adapté. IL faudrait alors ajouter une ligne indiquant que pour les dates < 2008, les ranger dans le fichier C:\NOM\2008
pour 2008< date < 2009 : C:\NOM\2009
pour 2009< date < 2010 : C:\NOM\2010
pour date > 2010 : C:\NOM\2011 plus
a +