Macro a l'ouverture

Bonjour à tous,

Je voudrai savoir s'il y a la possibilité de créer une Macro qui à l'ouverture d'un fichier pourrait mettre ce dernier en forme.

Merci d'avance

Noel

bonjour,

sur MAC je ne sais pas...

sur PC ça se passe dans ThisWorkbook.

YAKA suivre les flêches :

Nota : il est souvent préférable de faire cette mise en forme avant la fermeture (Before_Close)

A+

Bonjour,

Galopin j'espère que tu as passé de bonne fêtes.

Merci pour ton explication J vais faire un essi.

Je ne comprends pas très bien où cela peut m'emmener!

C'est bine une Macro que je voudai installer à l'ouverture du fichier pour qu'il me met en forme c'est à dire qu'il mettra en fonction une macro définie.

@+

Noel

Bonjour,

Cette macro s'exécute à chaque ouverture du classeur. Elle fera donc ce que tu lui demande...

Si tu mets dedans un simple :

MsgBox "Bonjour"

... tu auras un message à chaque ouverture...

Si tu veux formater ta fenêtre à la taille d'un confetti, masquer certaines feuilles ou en activer d'autres, YAKA rajouter les instructions KIVONBIEN !

A+

Bonjour à tous

Galopin je te remercie c'est bien ce que je veux, mais voilà je crois que je me suis fais mal comprendre pour mes besoins proprement dit c'est à dire que je suis dans l'obligation de tlécharger un fichier à partir d'un logiciel des adhérents en .XLS. Il me semble que demblé il ne peut pa savoir ce VBA dans le fichier. IL faut tout d'abord l'ouvrir installer le VBA.

Ce que je voudrai c'est ouvrir Excel et dans le menu de ce dernier installer un bouton à demeure pour que quand je lui demande d'ouvrir le fichier concerné il puisse le formter selon ma demande dans une Macro.

Est-ce possible cette fonction?

C'est sure qu'Excel ne sait ou ne peut pas faire cette commande. C'est ce que je voudrai savoir.

Quant à ton explication je l'utiliserai dans mes projets existants pour un message Bonjour ou de bien venu dans ce programme. Serait excellent de le faire pour que les utilisateurs soient de bon humeur.

Merci

@+

Noel

bonjour,

ben... pour l'instant ta demande est plutôt formaté en 'ti nèg' ! Pour moi c'est limite incompréhensible.

Il faut faire un effort pour employer les mots juste ou il faut sinon on peut comprendre n'importe quoi... et son contraire !

Je comprend que tu veux "télécharger" (est-ce bien le mot ?) sur internet un fichier d'adhérent qui n'a pas de macro.

Et le mettre en forme "à ta façon" à partir de ta macro maison. C'est bien ça ?

A+

Bonjour à tous,

Galopin

Un proverbe créole dit : avec un cochon i faut pas un cheval de course.

c'est mon cas. Je ne sais comment faire pour expliquer. Mais tu as bien compris ce que je voulais donc tu comprends petit nègre.

Exactement télécharger le fichier adhérent en .XLS bien sure sans Macro et le mettre en forme à façon cfn3cfn comme tu dis à partir d'une Macro maison.

Amicalement

Noël

ben... ça me parait pas insurmontable. ça me semble même un bon entraînement pour un apprenti VéBéiste

Evidemment avec juste une boule de cristal, ça complique un peu. mébon...

Je vais voir ce que je peux faire.

A+

Re,

Merci d'avance bon courage

@+

Noel

Bah... j'ai pas fatigué !

Cette macro importe un fichier d'adhérent (de mon site internet) et l'enregistre dans ton répertoire par défaut.

Sub test()
ActiveWorkbook.FollowHyperlink Address:="http://perso.orange.fr/galopin01/Pers08/BDW.xls"
Workbooks("BDW.xls").SaveAs "toto.xls"
Workbooks("toto.xls").Worksheets("BDLic").Range("A1:D13").Font.ColorIndex = 3
End Sub

Ensuite j'ai fait une mise en forme minimum : mise du texte en rouge.

Mais au niveau des mises en forme tu peux broder tant que tu veux. En fait c'est un fichier comme un autre :

Une fois importé, tu le tritures, tu le malaxes selon ton besoin...

A+

Bonjour à tous,

Mon cher Galopin, ta réflexion a été rapide.

J'ai bien compris l'astuce. Pour cela il faut que le fichier que je dois importé est .XLS Alors que ce fichier ne l'est pas . Il faut qu'à partir du logiciel de gestion des Adhérents qui se trouve sur un serveur dont nous gérons en commun, et qu'à partir de ce logiciel j'importe le fichier en .XLS.

C'est à partir de mon bureau que ce fichier doit-être traité .

C'est avant l'ouverture de ce fichier que je voudrai le mouliner avec une Macro qui me permettrai de le mettre en forme comme tu dis "le broder comme je veux".

Ta macro proposée m'intéresse au cas où j'aurai à faire un téléchargement directe d'internet un fichier en .XLS. Mais alors tu me diras comment faire. Je pense pour cela qu'il faudrai que je crée un tableur vierge avec cette macro.

En plus simple j'ai un fichier XLS importé sur mon PC ou Mac que je puisse avant l'ouverture de ce dernier que je puisse le mouliner à ma convenance.

.

Je m'excuse de te mettre à contribution par mes explications à la noix.

Si tu peux faire à partir d'un fichier sur internet il te sera d'autant plus facie à partir d'un fichier se trouvant sur mon ordi.

Merci d'avance

Noel

bonsoir,

Etre ou ne pas être (.xls) ne semble pas un problème : Comme c'est un forum Excel j'ai supposé que tu voulais importer des données Excel. Mébon... Faut voir ! Je ne suis pas très bon au petit jeu des devinettes...

Par contre tripatouiller dans un fichier sans l'ouvrir, là tu fais fort... Pourquoi sans l'ouvrir ? Qu'est-ce que ça peut te faire qu'on l'ouvre ou non ? Et si on te dit pas qu'on l'ouvre, ça ira quand même ?

Bon y va falloir que tu sois plus explicite avec fichier joint à l'appui.

Exposé du problème et démonstration du résultat attendu.

Parce que pour l'instant je vois pas ou tu veux en venir...

A+

Bonjour à tous,

Mon cher Galopin, comment t'expliquer avec des mots simples ce que je veux.

Bien sur il faut que j'ouvre le fichier pour pouvoir y travailler .

Tu m'as donné un excellent exercice sur le téléchargement d'un fichier à partir d'internet et l'ouvrir.

Ce que je désir c'est quand ce fichier est déjà téléchargé sur mon ordi, je voudrai à l'ouverture de ce fichier une macro qui me permettrai une mise en forme c'est à dire qu'avec cette macro j'élimine des colonnes ou les cacher et encore déplacer certaines colonnes.

Voici le fichier

le premier onglet nommé Export c'est le fichier importé brut

le deuxième onglet nommé Modifié c'est le fichier que j'ai trifouillé en cachant des colonnes, en déplaçant d'autres comme tu pourras te rendre compte de visu en comparant les 2 onglets.

https://www.excel-pratique.com/~files/doc/liste_Adh.xls.

Au lieu de cacher les colonnes, je préfère les supprimer

J'espère que j'ai été beaucoup plus explicite et que tu cernes bien mes besoins.

Merci d'avance

@+

Noel

ton lien ne fonctionne pas !

Re,

Je te retransmets le fichier

https://www.excel-pratique.com/~files/doc/RnspkMacro.xls

Merci

@+

bonsoir,

ton

en retour

YAKA exécuter la Sub Galopin()

La macro modifie directement la feuille 1 (exporté)

A+

Bonjour à tous,

Bonjour Galopin,

Ta macro marche très bien.

Je voudrai avoir quelques précisions telles que:

  • Function ColW!(i%) le "k" correspond à quoi ainsi que le chiffre à côté?
  • Sub DimColW(Bidon)
  • Sub RenCol(Bidon)
  • Function HeadL$(i%)
Cette dernière fonction si j'ai bien compris c'est pour changer les entêtes de colonne, mais à quoi correspond le "z"?

Sinon j'ai un petit souci sur la 5ème colonne il m'efface le contenu de la colonne "Lieu-Dit".

Peux-tu voir cela un peu de plus près.

Merci

@+

Noel

PS : Ets-il possible que j'installe cette Macro dans un petit tableau et que je fasse exécuter cette macro par un bouton qui me permettrai d'ouvrir le fichier (Jusque là je suis arrivé à ouvri le fichier) qui se trouve sur mon bureau sous le nom de "liste_personne.XLS avec le mise en forme ci-dessus.

En tout cas je vais essayer de mon côté. Pour le moment laisse tomber cette demande, je te tiendrai au courant de l'avancement de ma recherche.

Merci d'avance.

bonjour,

Function ColW sert à déterminer la largeur des colonnes

Le chiffre correspont à la largeur des colonnes que tu as établi dans ta feuille (modifié)

tu peux ainsi régler la largeur des colonnes "au quart de poil" près...

k est une variable (single) temporaire qui stocke cette valeur avant de la retourner en dernière ligne à la macro appelante (DimColW qui dimensionne ainsi successivement les 14 colonnes)

C'est la même chose pour la Function HeadL le z (string) sert à renvoyer l'en tête de colonne qui correspond. Cette valeur de z est renvoyé en dernière ligne à la macro appelante (RenCol qui renomme ainsi successivement les 14 colonnes)

(Bidon) est un artifice : une variable "bidon" qui ne sert à rien d'autre qu'à masquer la macro dans la liste des macros afin qu'on ne puisse pas la voir donc qu'on ne risque pas de l'appeler à tort.

Encore une fois je n'ai pas de boule de cristal !

Si la colonne "lieu dit" ne renvoie rien c'est que je ne peux pas deviner ce qu'elle devait renvoyer... Comme il n'existe pas de colonne "lieu dit" dans la la feuille exporté j'ai du imaginer et j'ai choisi ce qui me semblait le plus vraisemblable : la colonne N de la feuille exporté. ([Adresse prioritaire lieu] Description)

Pour modifier cette valeur, il faut modifier la ligne :

.Columns("J:J").Cut

Tu mets à la place

.Columns("I:I").Cut 'pour renvoyer la colonne M [Adresse personne] Code tournée facteur

ou...

.Columns("K:K").Cut 'pour renvoyer la colonne O [Adresse prioritaire lieu] Immeuble bat, résidence

ou...

.Columns("L:L").Cut 'pour renvoyer la colonne P [Adresse prioritaire lieu] Mention de distribution

Pour exécuter cela au moment de l'importation YAKA appeler la Sub Galopin à la fin de ta macro d'importation et de renommage.

Avec ma macro d'origine ça donnerait ;

Sub test() 
ActiveWorkbook.FollowHyperlink Address:="http://perso.orange.fr/galopin01/Pers08/BDW.xls" 
Workbooks("BDW.xls").SaveAs "toto.xls" 
Galopin
End Sub

A+

Re,

Cher ami,

J'ai bien pris note de tout dans ton descriptif.

J'ai mis en ordre tout ça et ça marche très bien. J'ai pu réaliser une Macro qui me permet d'ouvrir le fichier exporté et de le triturer avec ta Macro

Merci de tout ton et ton effort et le mise en oeuvre de toutes tes cellules grise.

Amicalement

Noel

Rechercher des sujets similaires à "macro ouverture"