Nouvelle feuille Excel - VB/VBA/VBS - Programmation
Marsh Posté le 05-07-2010 à 10:18:53
Hello
Sois plus précis...
Tu créés des feuilles dont le nom est stocké dans une feuille, pourquoi ne pas repartir a partir de cette meme feuille ?
Ou tu veux faire des operations juste apres la creation ?
Marsh Posté le 05-07-2010 à 10:46:36
J'ai une feuille Excel qui retrace toutes les opérations comptables de l'entreprise (environ 2500 lignes). Ces valeurs comptables sont assimilées à différents projets. Je dois donc répartir automatiquement ces valeurs classées par projets et par catégorie (une dizaine de catégorie par projet). J'ai réussi à faire une macro ou il fallait juste changer le nom du projet mais je devais alors créer manuellement une nouvelle feuille par projet avec les différentes catégories :
Sub Bouton9_Clic()
Set wks1 = Worksheets("journal" ) 'journal reprend la totalité des opérations comptables
Set wks2 = Worksheets("cuentas" ) 'cuentas reprend les différentes catégories de chaque projet
'Set wks3 = Worksheets("projets" )
Set wks4 = Worksheets("TATA" ) 'TATA est un nom de projet
'With wks
'.Select
'.Cells.Select
a = 9 ' le tableau débute à la ligne 9
For i = 1 To 2385 ' nombre de lignes comptable
For k = 1 To 13 'catégories par projet
If wks1.Cells(i, 13) = "TATA" Then ' ligne comptable de tel ou tel projet
If wks1.Cells(i, 4) >= 600000 Then ' charges de l'entreprise classe 6
If wks1.Cells(i, 4) < 700000 Then ' charges de l'entreprise classe 6
If wks1.Cells(i, 16) = wks2.Cells(k, 9) Then 'catégorie de la charge
wks4.Cells(a, k) = wks1.Cells(i, 11) ' rangement dans un tableau
a = a + 1
End If
End If
End If
End If
Next k
Next i
End Sub
Marsh Posté le 05-07-2010 à 10:49:12
On peut avoir un exemple de cette feuille ? (En mettant des exemples bidons biensur... Confidentialité toussa...)
En fonction de la tronche de la feuille, si ca se trouve un rapport de tableau croisé dynamique peut suffire...!
Marsh Posté le 05-07-2010 à 11:08:19
je dois ainsi créer une nouvelle feuille par projet (colonne M). Et dans chaque nouvelle feuille classer les dépenses (valeur de la colonne K si compte supérieur à 600000 de la colonne D) par type de frais (colonne P) !!!
Marsh Posté le 05-07-2010 à 11:09:18
Et en fait tu veux quoi ?
Un regroupement de toutes les transaction sur la classe 6 sur une feuille ?
Ou regroupé par fournisseur ? (D'ailleurs pourquoi utiliser un compte générique 401...? Ah non autant pour moi, j'avais pas vu la référence du compte auxiliaire.)
Marsh Posté le 05-07-2010 à 11:13:23
Ok alors imaginons pour les lignes 17 à 18 et 19 à 21. Une a de la tva, l'autre pas.
A quoi ressemble la feuille qui recupere les infos por otros gastos et contabilidad ?
Marsh Posté le 05-07-2010 à 11:19:32
juste 2 colonnes avec numéro de compte et à quoi ça correspond. Une macro compare les comptes et marque dans la colonne P à quoi cela correspond
Marsh Posté le 05-07-2010 à 11:24:52
Genre pour otros gastos :
606300 champion
625700 palais st lazarre
Etc.
??
Marsh Posté le 05-07-2010 à 11:28:22
Non une colonne n° de compte, une autre type de frais :
601920 Fungibles / expendable
611000 Subcontratas / subcontracts
613200 Alquilar / Rent
613210 Alquilar / Rent
613500 Alquilar / Rent
613520 Viajes / Trip
Marsh Posté le 05-07-2010 à 12:31:47
Et elles sortent d'où les infos de la seconde colonne ?
Marsh Posté le 05-07-2010 à 13:39:46
Elles sont rentrées à la main. Et sortent d'une grille imposée par la direction.
Donc ce que je désire faire c'est classer toutes les charges (compte >=600000 et <700000) par catégorie (otros gastos, viajes, alquilar...) dans chaque feuille projet correspondante.
C'est faisable ???
Marsh Posté le 05-07-2010 à 14:05:40
Désolé je ne pige pas...
Avec le tableau que tu montres, nul part il y a les infos type "Alquilar / Rent ".
Comment la macro peut savoir que le compte 613200 c'est "Alquilar / Rent " ??
Où sont ces infos ? Dans un autre fichier ? Dans une autre feuille ?
Dans ta macro tu fais :
wks4.Cells(a, k) = wks1.Cells(i, 11) ' rangement dans un tableau
Or, la colonne 11 c'est le débit... Chose qui ne ressort pas dans ton exemple :
Citation : 601920 Fungibles / expendable |
Marsh Posté le 05-07-2010 à 14:23:36
Sur une autre feuille j'ai la correspondance entre le numéro de compte (613210 par exemple) et sa définition (Alquilar/Rent en l'occurence). Une macro marque en face de chaque ligne comptable la correspondance dans la colonne P :
Sub Bouton1_Clic()
Set wks1 = Worksheets("journal" )
Set wks3 = Worksheets("cuentas" )
'With wks
'.Select
'.Cells.Select
For i = 1 To 1699
For j = 1 To 75
If wks1.Cells(i + 1, 4) = wks3.Cells(j + 1, 1) Then
wks1.Cells(i + 1, 16) = wks3.Cells(j + 1, 2)
j = 75
End If
Next j
Next i
'End With
Ce que je souhaite faire dans ma nouvelle macro c'est classer par projet les dépenses, c'est pourquoi je prend la colonne 11.
Mon problème c'est comment ranger ces "débits" dans une feuille que je vien de créer dans la macro, grâce à "Sheets.Add.Name = wks3.Cells(i, 1)" , tu comprends ce que je recherche à faire ?
Marsh Posté le 05-07-2010 à 14:31:27
Donc tu veux :
Je prends ton image pour exemple :
- Une feuille Otros gastos/Others expenses
- Dedans :
606300 | 9.02 |
Si oui, le 625700 doit il etre sommé ?
:
606300 | 9.02 |
Marsh Posté le 05-07-2010 à 14:41:35
non, juste un descriptif des opérations qui ont eu lieu...classées par catégorie de dépense
Marsh Posté le 05-07-2010 à 14:44:34
Quelque chose comme ça :
Sauf qu'ici c'est moi qui ai fait chaque tableau, en ouvrant une nouvelle feuille et en l'appelant avec le nom du projet et il faudrai plutôt que tout se fasse automatiquement
Marsh Posté le 05-07-2010 à 14:55:00
Non fanchement la je ne pige rien...
Explique point par point ce que tu veux car la ca part en sucette.
Un coup tu me dis que tu veux ca :
pouchelop a écrit : 601920 Fungibles / expendable |
Derriere tu me montres un tableau recapitulatif ou chaque occurence de la colonne P sont mises en colonne... Alors que tu parles d'une feuille par projet.
Non vraiment il n'y a rien de clair. Et c'est tout sauf constructif.
Pose ce que tu souhaites, clairement, étapes par étapes.
Si vraiment je dois repondre connement, sans m'interresser aux details, a cette question :
pouchelop a écrit : Donc ce que je désire faire c'est classer toutes les charges (compte >=600000 et <700000) par catégorie (otros gastos, viajes, alquilar...) dans chaque feuille projet correspondante. |
Je te dirais oui, il suffit de mettre ton code dans la boucle qui passe chaque occurence de ta colonne P
Mais je ne pense pas que ca t'aide vraiment. Or pour te filer un coup de main, si je n'ai pas les tenants et les aboutissants mes réponses seront aussi vagues que tes questions.
Marsh Posté le 05-07-2010 à 15:14:14
Ce que je veux c'est mon dernier screen. Avoir tous les débits classés par "catégorie" (Alquilar, viajes...) pour chaque "projet" (ici le projet TOTO). (Alquilar, viajes, fungibles... ne sont pas des projets mais des catégories de dépense, je me suis peut-être mal exprimé).
J'y suis arrivé par le tout premier code que je t'ai montré et cela a donné mon dernier screen. Le problème c'est que je devais pour chaque projet :
1. Ouvrir une nouvelle feuille et la renommer par le nom du projet.
2. Faire le tableau ci-dessus
3. Modifier le code en changeant le nom du projet à chaque fois
Marsh Posté le 05-07-2010 à 15:17:02
Pour faire plus simple je souhaite faire :
Sheets.Add.Name = wks1.Cells(i, 1), je crée ainsi une feuille par projet.
Mais ensuite comment je peux faire des opérations dans ces nouvelles feuilles ?
Marsh Posté le 05-07-2010 à 15:25:36
Entre temps j'ai fait une macro qui fait ce que je disais, a savoir créér un onglet pour chaque occurence de ce qu'il y a dans la colonne P et y mettre tous les débits.
Code :
|
Tu devrais pouvoir trouver ce que tu cherches, moi je ne comprends toujours pas. Il doit faire trop chaud surement...
EDIT : OK ! Mais tes projets sont en colonne M, et tu n'en avais pour le moment jamais parlé................................!!!
Pis tu me montres un projet TOTO, or dans ton tableau, il y a REMORA, F09-VARI Etc.
Bon je zieute ca...
En fait tu veux un onglet pour chaque projet, et pour chaque projet un découpage en colonne de chaque occurence de la colonne P ? Histoire qu'on soit ok cette fois
Marsh Posté le 05-07-2010 à 15:34:02
Oui c'est ça !!! Un onglet par projet de la colonne M désolé...
Marsh Posté le 05-07-2010 à 15:37:36
Ok je zieute ca
Ma macro precedente n'en est finalement pas tres loin
Marsh Posté le 06-07-2010 à 09:18:12
Question, le tableau du projet TOTO contient toutes les references de la colonne P ? Tu as 13 "categories" ?
Marsh Posté le 06-07-2010 à 10:01:27
ReplyMarsh Posté le 06-07-2010 à 16:08:31
Je prefere bosser sur la colonne M, car je n'ai aucune correspondance entre ce qu'il y a dans la Feuil1 et ce qu'il y a dans la Feuil2...
A moins que tu l'aies ?
Edit : Meme, avec ton fichier exemple j'ai pas assez d'infos... Si je créé un onglet pour chaque occurence de la colonne M, je n'ai pas assez d'info pour remplir le tableau...
Ex : F09-E c'est toujours otros gastos ??
Marsh Posté le 06-07-2010 à 16:31:51
Heu non pas toujours je crois... Enfin vaut mieux faire comme si c'était différent
Marsh Posté le 06-07-2010 à 22:22:50
Donc il faut créer un onglet F09-E et mettre les montants de débits dans chacune des colonnes : otros gastos etc. ?
Marsh Posté le 07-07-2010 à 09:32:28
Pour chaque projet de la colonne M, il aut créer un nouvel onglet. Et dans chaque nouvel onglet classer les débits des comptes 6 par type de frais de la colonne P
Marsh Posté le 08-07-2010 à 17:06:01
Pour ceux que ca interresse, le code :
Code :
|
Marsh Posté le 05-07-2010 à 09:52:13
Salut,
j'ai besoin de faire une macro qui va créer de nouvelles feuilles portant chacune un nom de projet différent rentré au préalable dans un feuille Excel : "Sheets.Add.Name = wks1.Cells(i, 1)" jusque la tout va bien.
Il me faudrai ensuite pouvoir faire des opérations à l'intérieur de ces feuilles, et là je bloque... Comment appeler la ou les nouvelles feuilles créées ? wksi me semble impossible donc je vois pas trop.
PS : j'y connaîs pas grand chose en programmation mais c'est pour mon boulot
Merci d'avance.