archivage excel - VB/VBA/VBS - Programmation
Marsh Posté le 16-11-2006 à 19:12:54
Merci pour la reponse mais ca ne fonctionne pas. Je vais poser mon probleme autrement. Mon but est que lorsque je fais une facture, qu'une copie de cette facture soit dirigée dans un autre classeur qui agit comme archive. Naturellement cela doit se faire automatiquement.
Voilà. Et il faut que la feuille de cette copie porte le numero de facture pour pouvoir y accéder si besoin.
Et puis pouvoir procéder ainsi à chaque facture
Bonne fin de journée
Marsh Posté le 16-11-2006 à 21:11:40
Bonjour,
"via le macro recorder "" ok j'ai compris ce que tu voulais dire et j'ai presque trouvé la solution. A chercher j'ai réussi à transférer les factures dans le classeur Archive. Il reste juste une chose et je n'ai pas réussi.
Lorsque le transfert est effectué sur une nouvelle feuille dans Archive, comment faire pour que l'onglet porte le numero inscrit en A1 sur cette feille par exemple
Merci
Michel
Marsh Posté le 16-11-2006 à 22:20:43
A tester et adapter
|
Marsh Posté le 16-11-2006 à 22:33:58
Un gros merci pour ton aide, je l'apprécie beaucoup.
Je vais le tester et t'en donnerai des nouvelles. Je vais en profiter pour en apprendre plus en étudiant cela en détail.
Encore une fois merci
Michel
Marsh Posté le 17-11-2006 à 08:20:53
|
Marsh Posté le 17-11-2006 à 17:03:36
Bonjour.
La premiere formule hélas ne fonctionne pas mais je viens de lire la dernière et je vais tenter. Où j'en sui rendu présentement:
Je génère une facture
Je copie cette facture
Je vais dans mon classeur Archive (copier dans classeur fermé à venir)
J'ajoute une nouvelle feuille (insertion)
Et je colle la copie de la facture
Tout va très bien
Le numéro de fact (ex:23) est en A1.
Je dois nommer l'onglet "23" et c'est ici que je suis bloqué.
J'ai tenté de plusieurs facons et aussi en utilisant le macro recorder mais rien.
Merci beaucoup de ton aide et bonne journée
Michel
Marsh Posté le 17-11-2006 à 21:22:32
Bonjour
J'ai trouvé la formule pour renommer tous les onglets et pour un onglet alors adapter. J'ai trouvé ceci au travers de toutes mes recherches. S'il y en a qui veulent en profiter alors voici:
Si les noms sont en A1 de chaque feuille:
On Error Resume Next
For Each sht In ActiveWorkbook.Worksheets
Sheets(sht.Name).Name = Sheets(sht.Name).[A1]
Next
Bonne fin de journée
Michel
Marsh Posté le 18-11-2006 à 08:54:42
Bonjour le forum
Bonjour Kiki, Michel
Si je peux me permettre, je trouve que stocker des "feuilles" dans un autre fichier ne me parait pas être la meilleure solution, surtout si tu as plusieurs dizaines de factures => combien de feuilles !!!!! merci la recherche après.
J'avais trouvé une astuce, sur un autre site, qui donnait la solution suivante : stocker toute une facture en ligne, cad 1 ligne = 1 facture, voir 2 lignes si tu as beaucoup de cellules à conserver, et tout ceci soit dans le même fichier que l'original de la facture ce qui est la meilleure solution, soit bien entendu dans un fichier "archive".
Si cela t'interresse, dépose ton fichier .
A+
Marsh Posté le 18-11-2006 à 23:41:16
Bonsoir
Tu propose une piste intéressante. Je vais suivre ton conseil et de toute facon je t'en donnerai des nouvelles. Sinon je déposerai le fichier
Encore une fois merci
Michel
Marsh Posté le 19-11-2006 à 20:20:31
Bonjour Erick455 et Kiki29. En fait le programme que je fais pour un ami qui a un commerce.
Si je n'utilise pas un autre classeur pour les archives, alors tu ne crois pas que mon programme (qui est assez imposant) deviendrait surchargé par l'accumulation de toutes ces factures. Le nombre de feuilles serait élevé.
C'est pourquoi j'ai pensé à un autre classeur pour l'archivage. Qu'en penses-tu? Y aurait-il un probleme à ne pas utiliser de classeur externe au niveau de la performance.
Pour les codes j'ai tout essayé mais je ne trouve pas de solution:
Quand je fais une facture, j'envoie une image de cette facture dans un autre classeur "Archives".
Et là le problème: Quand l'image de la facture arrive dans ce classeur, ce classeur créé une nouvelle feuille pour recevoir l'image. Donc je ne peux pas définir le nom à l'avance.
J'ai pratiquement tout tenté et aussi avec le macro recorder.
Je te donne un exemple
.--------
Dim nom as string
nom=sheets("feuil1" ).range("g2" ).text ' g2 contenant le no facture
sheets.add.name=nom
.-----------
Cette formule fontionne très bien sauf le ("feuil1" )
Mais le nom=sheets("feuil1" ) il faut qu'il devienne: nom=sheets("Mon Numéro de Facture" )
Alors voila et à l'Aide !!!
Merci beaucoup.
Marsh Posté le 19-11-2006 à 20:57:52
La suggestion d'eric455 m'apparait à priori excellente car cela reduirait la taille de l'archivage avec ,suivant le nb de factures,pourquoi pas une feuille annuelle ou mensuelle
D'autre part as-tu esayé qqch de bestial mais qui fonctionne :
ThisWorkbook.Sheets("Feuil1" ).Name = ThisWorkbook.Sheets("Feuil1" ).Range("A1" )
Ma proposition via une fonction était plus généraliste et evitait les erreurs possibles
Tu comprendras aisement qu'avec le peu de renseignements fournis il soit difficile de savoir ou se situe le(les) erreurs
Marsh Posté le 19-11-2006 à 21:48:49
Bonsoir le forum
Bonsoir Kiki, Michel
Je ne voudrais surtout pas que Michel soit vexé par mon intervention. Dhabitude je ne le fais pas, mais dans le cas présent, ce nest pas son code qui est critiqué, mais japporte une solution que tu navais pas envisagée et donc « demandée ».
Dans ton cas avec image : 1 image = 10Ko (~) par feuille, on peut avoir +. Si tu as 100, voir 500 factures, ouille ouille ouille le poids du fichier, et en plus jai un doute sur le nombre de feuilles max dans un fichier.
Dans mon cas, aucune image, 2 feuilles, et x lignes (x factures) sur la deuxième feuille, doù 1 fichier pour 65535 factures, ton ami peut faire des affaires. Et récupération (copie) sur la feuille 1 des anciennes factures
.. Cétipabeaussa ? ? ? ? ?
Voilà cqfd
Si tu veux, tu peux envoyer ton fichier « feuille facture » pour que lon puisse concrétiser cela, soit par cjoint.com, ou yousendit.com, car je crois que lon ne peut pas joindre de fichier sur ce site
A+
PS : je navais pas vu ta réponse Kiki, merci pour « excellente » jaime bien
lol
Marsh Posté le 20-11-2006 à 16:07:28
Bonjour eric455 et kiki29.
Merci à vous deux de prendre le temps de répondre. Eric sois rassuré je ne suis nullement vexé de ton intervention. Au contraire je constate l'entraide qui est super ici. Je dois partir au boulot. Je tente ta proposition Kiki ce soir.
Avant de quitter,je constate Eric qu'après tes explications je n'ai plus de crainte de tout mettre dans le même classeur.
Merci beaucoup à vous deux
Michel
Marsh Posté le 16-11-2006 à 16:05:02
Bonjour à tous. Malgré mes nombreuses recherches je dois faire appel à vous.
J'ai 2 classeurs (A et B) Dans le classeur A j'ai deux feuilles (A et B). Comment proceder pour que je puisse envoyer une copie de la feuille A du classeur A dans le classeur B . Puis envoyer une copie de la feuille B dans le classeur B qui maintenant possede 2 feuilles. Le but est d'archiver des données.
Merci beaucoup pour votre aide