Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2983 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Faire rapparaitre un onglet caché dans les fichiers d'un dossier (VBA)

n°2248451
Marc L
Posté le 15-01-2015 à 09:48:13  profilanswer
 

Reprise du message précédent :
 
           Normalement lors de la fin d'une procédure toutes ses variables locales non statiques sont effacées.
           Mais en ce qui concerne une variable objet, mieux vaut libérer ainsi les ressources allouées au pointage de cet objet …
 
           Pour le choix d'un module normal ou d'un module de classe du classeur ou d'une feuille,
           je n'indiquerais pas de meilleur emplacement car c'est un choix personnel, une habitude, une facilité même …
           C'est comme pour le café, certains le préfèrent fort, d'autres allongé, sucré ou pas …
 
           Lorsqu'il s'agit d'exploiter un évènement du classeur ou d'une feuille, il n'y a pas le choix,
           le code doit se situer dans le module de classe correspondant au classeur ou à la feuille !
           Et si dans ce code une fonction ou procédure est appelée, par simplicité autant qu'elle se trouve dans le même module …
 
           L'avantage d'un module normal serait la réutilisation d'un code générique dans d'autres classeurs, suffit de l'exporter
           d'un classeur source pour le sauvegarder sur le disque dur et lors de la création d'un nouveau classeur,
           importer ce module éviterait de réécrire des procédures similaires …
 
           Lorsqu'un projet comporte des milliers de lignes, il est plus simple pour s'y retrouver
           de séparer par thème les procédures dans plusieurs modules …
 
           De mon côté, c'est souvent du sur-mesure. L'avantage de coder directement dans un module de classe d'un classeur ou
           d'une feuille permet en cas d'omission de toute référence à un classeur ou à une feuille de faire de facto référence
           à ce classeur ou à cette feuille, simplifiant et sécurisant ainsi le code, même si un évènement change le classeur ou la feuille active !
 
           Par exemple l'instruction Range, sans être précédée par une référence à une feuille de calculs, dans un module normal,
           fait donc référence à la feuille active, ce qui s'avère problématique lorsqu'une autre feuille devient active …
           Tandis que cette même instruction dans le module d'une feuille de calculs fait de facto référence à cette feuille
           quelle que soit la feuille active !
 
           Autre point à prendre en compte : lors de la copie d'une feuille de calculs vers un nouveau classeur par exemple,
           le module de classe de cette feuille y étant rattaché se retrouve aussi dans la destination, tout dépend du contexte donc …
 
           Récemment sur un autre forum, un intervenant était fier de présenter une solution d'environ 200 lignes
           dont le demandeur signalait sa difficulté à s'y retrouver dans ce code pour l'adapter à son besoin - simple - et parfois
           un fonctionnement aléatoire dans son environnement multi-feuilles.
           Un autre intervenant et moi-même avons chacun proposé une solution tenant en un maximum de 30 lignes de code
           bien plus efficace, sûre et plus facile pour le demandeur à appréhender.
 
           Mais le primo intervenant nous a fustigé (du domaine de la cour de récréation en élémentaire !),
           qu'on avait rien compris à son code, que le sien était modulaire (pourtant une vraie usine à gaz !)
           et qu'il lui était ainsi plus facile pour l'utiliser dans divers classeurs …
           J'ai l'impression qu'il était resté au moins vingt ans en arrière même s'il semble plus jeune de vingt ans !
           Tout dépend donc de l'expérience de chacun et de la souplesse d'esprit, c'est comme les goûts, les couleurs …
 
           Pour éviter souci et perte de temps, ne pas oublier la hiérarchie objet d'Excel :
           Application (Excel) / Workbook / Worksheet / Range / méthode ou propriété …
 
           Le Générateur de macros est un outil pratique pour voir quels objets, méthodes et propriétés sont utilisés lors de manipulation.
           Mais ensuite il faut nettoyer le code afin qu'il devienne plus efficient
           car travailler directement sur les objets est bien plus efficace et sûr, voir l'exemple en lien dans ce post …  
 

mood
Publicité
Posté le 15-01-2015 à 09:48:13  profilanswer
 

n°2248483
yanounou91
Posté le 15-01-2015 à 14:18:57  profilanswer
 

Merci pour ces explications. Cela me servira de lexique ^^.
Sinon, il faut en effet savoir se remettre en question pour progresser. Surtout qu'avec un code de 200 lignes, j'imagine qu'il avait un très bon niveau. Le code que vous lui avez présenté devait etre comprehensible pour lui, l'effort pour y arriver (et aquérir) ne devait pas etre si élevé ^^.
 
En tout cas pour nous autres financiers/gestionnaires, VBA est un moindre mal comparé à des C++, java et autres. Meme si on maitrise pas, on peut faire pas mal de choses (aussi avec de l'aide et de la recherche).
 
Je suis vraiment content de ma macro questionnaire (un userform av copie des données dans une feuille du classeur) et de ma macro sondage résultat.
 
Merci pour votre aide. et du temps passer à lire mes questions. je dois apprendre à écrire moins de lignes ^^.
 
Yannick


Message édité par yanounou91 le 15-01-2015 à 14:19:53
n°2248596
yanounou91
Posté le 16-01-2015 à 16:06:01  profilanswer
 

Bonjour,
 
Je devrais peut etre rouvrir une question, mais je me demandais si vous saviez comment détourner la limite de 255 caracteres pour les valeurs de champs dans le cas où il y a du texte.
 
Dans un champs DATA de ma base de données du fichier Résultats sondage, il peut y avoir des commentaires textes. Lors de l'appréciation des résultats avec un Tableau croisé dynammique, les commentaires sont affichés du moment que je place le champ DATA en etiquette de ligne et également en etiquette de valeur.
 
En revanche, les commentaires sont tronqués au 255e caractère, savez vous comment dépasser ce problème et afficher toute la valeur (le commentaire) ?
 
En vous remerciant.
 
yannick

n°2248604
Marc L
Posté le 16-01-2015 à 17:18:59  profilanswer
 

 
           Désolé, je n'en sais rien …
 
           Certaines limitations ne sont pas contournables, cela peut dépendre aussi de la version d'Excel
           car depuis la version 2003, chaque nouvelle mouture a vu évolué les TCD !
 
           Commencer d'abord par une recherche globale sur le net …
 
           ____________________________________________________________________________
           Tous unis, tous Charlie
 

n°2248606
yanounou91
Posté le 16-01-2015 à 17:40:31  profilanswer
 

OK je vous remercie, je vais continuer à chercher. Je vais questionner les forums egalement.
 
Yannick

n°2248628
yanounou91
Posté le 16-01-2015 à 22:35:21  profilanswer
 

Le net semble parsemé d'impasses. La seule solution que je trouve est d'avoir une deuxième colonne à coté du champ où il y a des commentaires. Dans cette colonne, je vais faire une formule du genre stxt(J2;256;255). Ainsi j'aurai la 2e partie du commentaire dans un autre champ que je mettrai au TCD. C'est pas parfait mais cela permet d'afficher le commentaire en entier dans le TCD.
 
Yannick
 
Voici ma solution artisanale : http://cjoint.com/?EAra3KhoMzh C'est pas parfait mais cela permet de ne rien changer à la structure de la base de données, seulement d'ajouter une formule dans le code VBA.


Message édité par yanounou91 le 17-01-2015 à 00:48:50
n°2248640
Marc L
Posté le 17-01-2015 à 10:51:44  profilanswer
 

 
 
           Et tu as eu une solution sur l'autre forum …
 

n°2248643
yanounou91
Posté le 17-01-2015 à 12:48:45  profilanswer
 

Yes, j'ai vu cela. Mais je voulais savoir ce que vous pensez de ma solution.
 
Sinon, c'est une bonne solution. Faut que je fasse mon choix (entre les deux) car ma solution permet de ne rien toucher (niveau structure de la base de données) et permet de rester dans le cadre du TCD à 100%. Mais du coup, j'ai découvert la fonction Index, meme si je dois encore potasser pour bien comprendre comment cela fonctionne.
 
Très bon week end.
 
Yannick

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Mon lien ne s'ouvre que quand je clique ouvrir dans un nouvel ongletverouiller un dossier par un mots de passe + cryptage
fichiers et fonctionsMacro vba récupérant les données de fichiers de sous dossiers
[VBA] Recherche de fichiers et opérations entre ces fichiersRécupérer TOUT les fichiers contenus dans TOUT les dossiers
Recuperer des fichiers txt d'un ftp sur access 2013Recherche dans arborescence et exclure dossier
fichier bat pour copie de fichiers anterieur a une dateRenommer fichiers avec le nom de leurs dossier
Plus de sujets relatifs à : Faire rapparaitre un onglet caché dans les fichiers d'un dossier (VBA)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR