Macro pour nouveau fichier
red-69
Messages postés
15
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
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 bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
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+
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.
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+
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 ?
j'utilise ta macro et j'ai une erreur 1004 au niveau de la ligne ActiveWorkbook.SaveAs Filename:=NomFich
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.
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 +