Excell-VB

Dindon -  
 Dindon -
Salut à tous,
J'aurai aimé savoir comment faire pour générer automatiquement chaque jour un nouveau fichier Excell (selon un certain modèle).
De plus, j'aimerai charger dans ce fichier des données provenant d'autres fichiers Excell déjà existants, comment ça Marche???
Merci.
A voir également:

3 réponses

Utilisateur anonyme
 
"comment ça Marche??? "

ben avec les méthodes de l'objet Excel.Application

kinder.surprise,
le maton du matou
0
Dindon
 
en fait, je débute en excel-vb donc "méthodes de l'objet Excel.Application " ça me dit pas grand chose, pourrais-tu me dire à quoi ça correspond concrétement, quels genres d'opérations je vais devoir faire
Merci, ça m'aiderait beaucoup
0
Utilisateur anonyme
 
il faudrait déjà que tu débroussailles un peu. Déjà, parles-tu bien de VB ou parles tu de VBA, la portion de VB qui accompagne Excel? et de quelles versions parles-tu?

Générer un nouveau fichier suivant un modèle, ça peut être aussi simple que simplement créer une tâche planifiée, avec une ligne de commande comme
excel.exe /t"C:\Program Files\Microsoft Office\Modèles\ton_modèle.xlt"

si ensuite sur ouverture tu as une procédure alimentant le fichier avec les données d'autres fichiers, voilà, chaque jour à la même heure, tu as ton fichier créé suivant ledit modèle et rassemblant tes données.

Pour ce qui est de rassembler les données, comme je te dis, c'est à toi de commencer à apprendre l'utilisation de VBA, qui est très simple, faut un peu se pencher dessus et surtout lire consciencieusement le fichier d'aide.

A partir de là, on peut te montrer comment boucler sur les cellules de tes fichiers d'origine, et insérer ces valeurs dans ton fichier de destination.

Mais bon, là, pour ton cas, je me demande s'il ne vaudrait pas mieux laisser de côté la programmation, et tout bêtement lier les fichiers.

Par exemple, si tu veux que telle cellule ait la valeur d'une cellule d'un autre fichier, ben la syntaxe est
='[tonclasseur.xls]ta_feuille'!$A$1 par exemple (bon, avec la référence que tu veux et pas forcément en absolu)

Maintenant, si ça consiste à aller chercher des données dans des fichiers dont tu ne connais ni les noms ni le nombre voire le chemin, à exécuter des calculs sur ces données et à les insérer suivant certaines conditions dans ton classeur de destination, inutile de te dire qu'il faudra commencer par te former aux bases de la prog VBA après quoi nous pourrons intervenir si tu bloques sur des points précis (par bloquer, j'entends "j'ai tel algorithme qui me renvoie telle erreur et je ne comprends pas l'aide relative à l'erreur " et non pas "je veux récupérer les données de fichiers et je ne sais pas comment faire", personne ici ne peut instruire par le menu un cours complet de prog VBA ou VB surtout sachant qu'il y a tout pour bien démarrer dans l'aide et le MSDN si tu l'as).

En résumé, il faut préciser la demande, le cas échéant te mettre à la prog, et dès que ça coince, on fait tout ce qu'on peut pour décoincer. La finalité c'est d'éviter à tous, y compris à toi, de perdre du temps, et ce que j'appelle perdre du temps, c'est de rester planté devant ses lignes de codes sans savoir pourquoi ça ne marche pas.

Que sais-tu exactement pour le moment? tu débutes à quel point en fait? quelles ressources as-tu déjà consultées?

Mais bon, si ça se trouve il n'y aura pas besoin d'une seule ligne de code (encore que je t'enjoins à t'y intéresser, c'est passionnant la programmation, même quand le développement se fait sous VB, le principe de la programmation est carrément ennivrant.

kinder.surprise,
le maton du matou
0
Dindon
 
Merci j'y vois déjà plus clair.
Pour t'expliquer mon cas, je suis sur le point d'obtenir mon DUT Informatique, j'ai donc plus qu'un stage à réaliser ces vacances. Durant le stage je travaille sur Excel et VBA, donc en programmation pure, en algo ça va mais le truc c'est qu'en DUT on t'apprend pas vba (sous pretexte que c'est trop simple, on préfère t'apprendre des langages comme Cobol ou Ada qui te serviront jamais), donc je suis en train de m'y mettre sérieusement.
Avant j'avais jamais utilisé excel avec vba, tout ce que je savais faire c'est utiliser excel et faire des macros bidons à la limite mais sans passer par l'éditeur vba.
Le prob c'est que j'ai du mal à cerner les limites entre ce que excel peut faire seul et ce que vba peut t'apporter en plus
Pour apprendre j'ai emprunté 2 bibles Excel-VBA mais c'est tellement énorme que je sais pas trop par où commnencer là dedans.
0
Utilisateur anonyme
 
mais le truc c'est qu'en DUT on t'apprend pas vba (sous pretexte que c'est trop simple, on préfère t'apprendre des langages comme Cobol ou Ada qui te serviront jamais)

ouh là, faut que tu consultes fr.emploi.offres, ou même le serveur de l'ANPE, ce que tu dis est très inexact, il y a beaucoup plus de demandes de compétences COBOL et parfois ADA que tu ne crois alors que du VBA, c'est rare et ce n'est jamais tout seul justement parce que c'est trop simple. Non, franchement, je trouve leur démarche très pragmatique, au contraire. Moi-même j'ai fait les frais de la situation inverse, mes formateurs consacraient leurs cours à des conneries comme VBA sous Excel ou Access qu'il est simple de prendre en main, si bien que sur le marché du travail je me suis retrouvé le bec dans l'eau.

faudrait que tu consultes le fichier exemples.xls qui pourrait peut-être déjà t'aider à cerner l'apport de VBA, faudrait aussi que tu t'imagines un objectif assez ardu à atteindre, puis progresser sur cet exercice jusqu'au moment où tu réalises que tu ne peux plus te passer de VBA

Deux bibles c'est trop, tu en feuillette une jusqu'au chapitre où ça commence à aborder VBA, ils présenteront surement des "cas d'école" où VBA est indispensable

kinder.surprise,
le maton du matou
0
Dindon
 
Me revoilà, j'ai un peu potassé et ça va mieux.
Juste une question de syntaxe, comment faire pour copier mettons la cellule a1 d'un fichier "a.xls" dans la cellule b2 d'un fichier "b.xls" ? J'arrive à le faire mais salement c'est à dire qu'à l'exécution de la macro on voit le fichier a qui se réduit l'autre qui est agrandit puis inversement, en fait je cherche les fonctions pour faire ça proprement
merci
0