Programmer sur excel ou visual basic
j'ai besoin d'un coup de main concernant une programme assez complexe que je veux mettre sur pied. Il s'agit de plusieurs feuilles de calcul(cinq), contenant des mises à jour de différentes commandes. Seulement, les commandes non livrées se répètent dans chaque feuille jusqu'à ce que la livraison soit totale. Tandis que celles livrées sont supprimées de la feuille mise à jour. Par exemple, si en janvier j'ai 600 commandes enregistrées dans une feuille, et qu'à la mise à jour de mars 250 sont livrées, la feuille de mise à jour ne contiendra que les 350 commandes restantes, plus les nouvelles commandes reçues.
Je voudrais donc créer un programme qui me permettra de retrouver facilement les 250 commandes livrées et celles non livrées.
J'espère avoir été suffisamment explicite afin de pouvoir bénéficier de votre aide.
Merci d'avance.
Configuration: Windows XP Internet Explorer 6.0
51 réponses
Un outil dans Excel est envisagé pour suivre des commandes réparties sur cinq feuilles, où les commandes non livrées se répètent jusqu’à livraison et les livrées sont retirées des feuilles mises à jour. Plusieurs répondants proposent d'utiliser VBA pour automatiser le tri et l’agrégation entre les commandes à livrer et celles déjà livrées, ou d’envisager une base de données Access ou MySQL pour gérer les données. Des propositions incluent la création d’un bouton personnalisé pour lancer une macro, l’utilisation d’un fichier maître ou macros personnelles, et l’exploration de solutions externes comme le stockage dans une base relationnelle. D'autres intervenants discutent aussi des aspects pratiques, tels que l'importation de données externes et les besoins de confidentialité lors du partage de fichiers.
-
Bonjour,
Le Set permet de créer un objet et de l'instancier.
-
bonjour et merci Nico!
Il faut dire qu'en vous soumettant mes difficultés je n'arrête pas de chercher les solutions de mon côté également. Je me suis rendu compte de l'option "le faire en deux étapes" et voici ma macro:
sub macro()
dim source
Application.Workbooks.Open Application.GetOpenFilename()
source = ActiveWorkbook.Name
end sub.
Elle marche mais j'ai un tout petit problème avec la vôtre: elle ne me permet d'ouvrir le fichier désiré. Ainsi, elle affecte à la variable "source" le nom d'un autre classeur actif au moment de l'exécution de la macro.
Ce que j'aimerai comprendre c'est le rôle de "fileToOpen". J'ai également lu dans un tutoriel que pour pouvoir travailler avec deux classeurs simultanément il faut écrire la macro suivante:
sub macro
dim objworkbooksource, objworkbookcible
set objworkbooksource=application.workbook.open(application.getopenfilename)
set objworkbookcible=application.workbooks.add
...
end sub
Pouvez-vous m'expliquer littéralement cette macro? A quoi sert le "set"?
J'ai essayé de résoudre le problème que je vous ai posé avec cette macro. L'instruction est exécutée mais apparemment elle n'affecte aucune donnée aux variables.
Pourquoi?
Merci d'avance. -
En fait il fqut que tu le fasses en deux étapes:
Sub macro()
Dim source
fileToOpen = Application .GetOpenFilename(°
source = ActiveWorkbook.Name
End Sub
A+
Nico -
Bonjour,
j'aimerais pouvoir affecter à une variable le nom du fichier que j'ouvre avec l'objet getopenfilename et je n'ai aucune notion sur le sujet. Pour l'instant l'instruction que j'ai écrite est:
Sub macro()
dim source
source = Application.Workbooks.Open(Application.GetOpenFilename())
end sub
Naturellement, cela me crée un bug. Pourquoi et comment déboger alors?
Merci d'avance! -
c'est ok pour le lien Polux je me suis retrouvée.
je me débrouillerai et ne manquerai de vous faire signe au cas où.
Bonne continuation -
Bonjour,
De rien Ariel ... Pour la question "n'y a-t-il pas une propriété sur VBA qui permet d'ouvrir un fichier existant mais fermé?
", il me semble que oui. Fais un tour sur le site http://www.developpez.com, onglet Visual Basic, la F.A.Q. VBA, je crois qu'il y a une question la dessus ...
Bonne continuation
;o)
Polux -
Bonjour à tous et merci à Polux pour son intervention. j'ai essayé et ça marche.
Bonne journée à vous! -
bonjour Ariel,
Juste pour répondre sur la protection ... Tu peux protéger tes modules par Outils -> Propriétés de VBAProject ... puis sur l'onglet protection dans l'éditeur VB. Tu tapes un mot de passe. Le code ne sera être vu que si l'on donne le mot de passe.
;o)
Polux -
Bonjour à vous!
J'ai réussi l'enregistrement dans dans le "classeur des macros personnelles", merci Nico pour la leçon.
La remarque que je ferai est le fait que la macro ne s'exécutera que si les classeurs concernés sont au préalable ouverts. Alors, n'y a-t-il pas une propriété sur VBA qui permet d'ouvrir un fichier existant mais fermé?
Autre chose, s'il vous plaît. (Ah, j'ai tellement de questions auxquelles j'arrive pas à donner de réponses que je me sens lourde. Excusez-moi si c'est le cas)
Y a-t-il un moyen sur VBA de protéger une macro de toute modification étrangère: un système de protection en lecture et en écriture, mots de passe par exemple?
Merci encore! -
http://homepage.ntlworld.com/nicolas.doulin/Macroperso.pdf
Va sur ce lien et si c pas clair dit le moi je changerai mon topic
a+ -
bonsoir!
juste de question de mettre à jour ma discussion afin d'augmenter mes chances d'avoir un élément de réponse au problème que j'ai énoncé à la discussion précédente pour Nico et celle N°39 pour tous.
Merci d'avance! -
Entierement d'accord avec Polux31
On attend une reponse de Ariel et pas un sujet qui n'a rien a voir
A+
Nico -
salut tout le monde
je veux programer la resoulutuion d'un programe linéaire de la recherche operationnelle avec le langage visual basic mais je sais pas exactement avec quelle boucle je peux travailler.
s'il vous plez aider moi car j'ia un examen autour de ça.
et merci d'avance. -
Salut Ariel,
Desole mais nouveau boulot donc moins disponible
Ton probleme en fait n'est pas du VBA, mais plus le comment faire...
Le problème c'est que ton fichier mqitre doit chercher les fichiers, et il faudrait que je cherche pour savoir comment en vba scanner le contenu d'un fichier (je suis sur que c'est possible)
Mais une autre solution, si ton fichier maitre ne conteint que la macro de tri, c'est d'enregister ta macro en macros personnelles. Ces macros sont enregister dans un fichier qui s'appelle PERSO.XLS et qui s'ouvre en meme temps que Excel
Pour enregistrer dans ce fichier, ils uffit d'enregistrer une macro comme d'hab mais quand tu ta tapes le nom dans l'ascenseur en dessous tu changes et tu mets Classeur des Macros Personnelles.
C'est super utile, moi j'ai mis dans ce cmasseru mes macros de presentation, mise en forme, ....
Tiens moi au courant
PS: desole pour la qualite de mon texte mais travaillant à CArdiff, j'ai pris l'habitude des claviers QWERTY sans accent
A+
Nico-
bonjour Nico et merci pour ta disponibilité!
Ton message, je l'ai lu sauf que j'ai l'habitude d'enregistrer mes documents en appuyant "ctrl+S". J'ai essayer de faire ce que tu m'as indiquée mais en vain. Plus spécifiquement je suis allé dans les menus "fichier" et "outils" mais ils ne me permettent pas d'enregistrer une macro, et encore moins de l'enregistrer dans "Classeur des Macros Personnelles". Peux- tu me donner d'amples informations, stp?
-
-
bonjour,
désolée de mon insistance, mais j'ai besoin d'une piste de solution; bref avec quelles options de vba gérer le problème que j'ai sus-posé (discussion 39).
merci d'avnace. -
Bonjour,
J'espère que vous vous portez bien!
Je reviens avec un nouveau sujet de discussion sur le thème "programmer sur excel ou visual basic".
Il s'agit en fait de créer un "fichier maître" qui contiendra le petit programme que j'ai écrit.
Le but est de le maître en liaison avec d'autres fichiers dont les noms auront une syntaxe particulière (exemple: tri xxxx).
Le résultat serait le suivant: lorsque par exemple un fichier "tri 2010" sera créé, en 2010, le programme contenu dans "le fichier maître" exécutera le tri dans le fichier nouvellement créé après en avoir reçu l'ordre.
Pas très compliqué l'explication j'espère!
Merci d'avance. -
Salut!
comment allez-vous?
Juste pour vous signaler que je pense que mes problèmes sonf fin résolus: depuis "programmer sur excel ou visual basi" à "créer un bouton personnalisé associé à une macro dans la barre d'outils".
J'ai pu écrire un programme et même un deuxième question de me rassurer, qui tous les deux me donnent le même résultat; et je leur ai associé à chacun un bouton personnalisé. Je crois que je n'aurais pas de problèmes à défendre mes idées ou à conseiller une solution mieux que l'autre car je sais ce que j'ai fait, écrit. C'est toujours important de savoir; non seulement pour la culture mais aussi afin d'être mieux parer aux confrontations d'idées d'intellectuels, surtout s'ils sont du domaine. Bref toujours avoir son mot à dire!!!
Merci encore pour votre aide précieuse!
A bientôt de vous relire sur ce forum!
;o) -
Entièrement d'accord avec toi Polux,
il n'y a pas trsè longtemps que je vais sur ces forums
Avant je les utilisais pour choper qq infos, et un jour je me suis dit que ce serait bien rendre l'appareil... Je suis d'accord avec toi que certains veulent avoir leur solution et c'est tout et ils ne veulent pas chercher plus loin
J'aime bien ce sujet car Ariel me parait très sérieuse, elle cherche à comprendre et c'est comme cela que l'on progresse
J'essaie de donner le maximum d'infos. Cela se voit tout de suite, si tu fils un code et que l'on te répond juste "Merci" c'est que cela marche et que l'on essaie pas de comprendre. La synthxe vba c'est pas simple
Je vais pas plus polluer ce sujet avec nos discussions ce qui compte c'est d'aider Ariel pour qu'enfin elle aboutisse à ses fins
A+
Nico -
Merci Nico ... mais c'est pas grave, je commence a être habitué à ce genre de réponse sur ce forum ... qui n'est pas mieux ni moins bien que les autres forums du même genre sur le net.
Ce que je déplore un peu, c'est qu'avant qu'il y ai internet, lorsque l'on avait besoin d'infos, il fallait se débrouiller et faire des recherches dans les bibliothèques. Aujourd'hui, on trouve tout ce que l'on veut sur le net, si on se donne la peine de chercher. Mais ce n'est pas suffisant. Il faut aussi qu'on fasse tout à leur place ... une aide n'est même plus suffisante ...
;o)
polux -
désolé, je voulais vexer personne.
merci.
- 1
- 2
- 3