Icône de la ressource

Archivage_Code_VBA_ou_Texte Version 15

  • Initiateur de la discussion Initiateur de la discussion VIARD
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VIARD

XLDnaute Impliqué
VIARD a soumis une nouvelle ressource:

Archivage_Code_VBA_ou_Texte - Archivage VBA

Archive VBA Excel :
Recueil_Codes_VBA :

Testé également sur Office 365.
Stocke indifféremment Textes ou codes, quelques exemples dans l’application.
Vous pouvez supprimer une archive ou créer une nouvelle archive.
Supprimer un module.
Pour plus d’infos voir l’archive "Utilisation"

Capacité de stockage :

Une archive comprend 3 colonnes (une de séparation, une de titre (module), une de code ou texte).
Ce qui donne : 16384 colonnes divisé par 3 pour Excel 2007...

En savoir plus sur cette ressource...
 
VIARD a soumis une nouvelle ressource:

Archivage_Code_VBA_ou_Texte - Archivage VBA



En savoir plus sur cette ressource...
bonjour,
ça plante...
1750091593387.png

je n'ai pas cherché à debugger je te laisse faire
1750091583142.png


et plus haut une assignation numérique
1750091731510.png

1750091723854.png


1750091644609.png


Désolé mais je trouve que le code non indenté, variables déclarées "on fly" ainsi que la boîte de dialogue.... on a un peu de mal à s'y retrouver

VB:
Sub Textbox1_change()
Dim Col%
Col = Sheets("Feuil1").Cells(2, 3).Value
Call ChargementListBox(Col)
End Sub

c'est mieux comme ceci
VB:
Sub Textbox1_change()
    Dim Col As Integer
    Col = Sheets("Feuil1").Cells(2, 3).Value
    Call ChargementListBox(Col)
End Sub
 
Dernière édition:
bonjour,
ça plante...
Regarde la pièce jointe 1219385
je n'ai pas cherché à debugger je te laisse faire
Regarde la pièce jointe 1219384

et plus haut une assignation numérique Regarde la pièce jointe 1219388
Regarde la pièce jointe 1219387

Regarde la pièce jointe 1219386

Désolé mais je trouve que le code non indenté, variables déclarées "on fly" ainsi que la boîte de dialogue.... on a un peu de mal à s'y retrouver

VB:
Sub Textbox1_change()
Dim Col%
Col = Sheets("Feuil1").Cells(2, 3).Value
Call ChargementListBox(Col)
End Sub

c'est mieux comme ceci
VB:
Sub Textbox1_change()
    Dim Col As Integer
    Col = Sheets("Feuil1").Cells(2, 3).Value
    Call ChargementListBox(Col)
End Sub
Re..
pour t'aider.... je suspecte un écart de versions non ?
tu n'as peut-être pas "loadé" la dernière version celle sur laquelle tu ne rencontres pas ce prb...
ça arrive... on sélectionne le mauvais...
 
Bonjour @oguruma

j'ai de nouveau regardé la version est correcte,
par contre je suis sous Excel2007, peut-être es la raison ?
par contre j'ai vu une anomalie.
Ligne 1129

Code:
Sub ChargementListBox(Col) 'Les procédures listbox1
Dim J&, Y%, Z%
Dim F1$, DerLig&, NbP&

Application.ScreenUpdating = False
F1 = "Feuil1"
Sheets(F1).Activate
Z = 0
Call TitreArchive
Call TitreListBox1
Call NombreDeProcedure(Col, Z)
'----------- Gabari ------------
la variable "Z" n'était pas initialisée.
je ne pense pas que ça résolve le problème.
Je continue de chercher, pas évident vue que ça fonctionne chez moi.

Amicalement
Jean-Paul
 
Bonjour @oguruma

j'ai de nouveau regardé la version est correcte,
par contre je suis sous Excel2007, peut-être es la raison ?
par contre j'ai vu une anomalie.
Ligne 1129

Code:
Sub ChargementListBox(Col) 'Les procédures listbox1
Dim J&, Y%, Z%
Dim F1$, DerLig&, NbP&

Application.ScreenUpdating = False
F1 = "Feuil1"
Sheets(F1).Activate
Z = 0
Call TitreArchive
Call TitreListBox1
Call NombreDeProcedure(Col, Z)
'----------- Gabari ------------
la variable "Z" n'était pas initialisée.
je ne pense pas que ça résolve le problème.
Je continue de chercher, pas évident vue que ça fonctionne chez moi.

Amicalement
Jean-Paul
Bonjour,
je reste surpris car initialement elle est allouée avec une valeur numérique. Je ne suis pas parti en "spéléo" pour voir comment elle était typée.
Alors 2007 serait plus permissif dans les casts ?
Ne serait-elle pas du type variant par un simple Dim MaVar sans préciser son type ? ça c'est à éviter absolument. Malheureusement on le rencontre encore trop souvent.
Il est préférable de déclarer Dim MaVar as Variant.
je suis sur O365 et donc il est plus vigilent dans les cast.
Attention le .Caption renvoie un String et regarde comment tu as typé NumL ça fonctionne peut-être en 2007 mais pas en O365 !
Quand je type un variant je le préfixe selon le contexte par "v". Dim vMaVar as variant.

Un objet Variant faisant référence à un variant (cas des Late Binding) je le préfixe par "o" ou aussi Dim oFSO as Object.
C'est ce que l'on appelle la notation hongroise, certes critiquée de nos jours selon certain mais personnellement cette méthode me convient parfaitement.
Bon 2007 n'est pas la meilleure version d'Excel. A sa sortie il y a eu une floppée de Bug accompagnée d'une série de HotFix. Ma société en fait les frais quand nous saisissions nos CRA sous Excel. Bref une horreur ça sonnait dans tous les coins sur des actions qui fonctionnaient très bien en v2003. Le concepteur du fichier Excel en a "sué comme un Russe" pour le corriger. Il faut savoir que les CRA dans une ESN (SSII) c'est ce qui génère la production pour la facturation des TJM aux clients 🙂 😉
Je t'invite à bien typer tes variables et de manière explicite. Je n'ai jamais été fan des j& i% et j'en passe. C'est bien en BASICA dans les années 1981. GW_BASIC a amené le type du genre As String pour le "$" par exemple.
Cette notation directe a été conservée pour des raisons de compatibilité. Je ne comprends pas pourquoi on continue à utiliser cette notation. Serait-ce par paraisse d'écrire As String ?
Bon je te laisse à tes chères études de debug 🙂
Bientôt je vais publier une version 3.4 de LIBMAC qui propose un archivage plus avancé si je peux me permettre. Tu l'as peut-être testé ce qui t'a donné l'idée de ton projet ? 😉
Je t'invite à t'inspirer de ma forme de code bien que critiqué comme ACABIT 😀 mais il a l'avantage d'être lisible, indenté, aligné et les variables toutes typées par thème avec un bon nombre commentaires présentés également quand cela est nécessaire.
Bon courage.
 
Dernière édition:
Bonjour @oguruma , @TooFatBoy et à tous

@TooFatBoy, "Modif Titre Procédure, aucun soucis tout fonctionne, les nouvelles versions sont plus pointilleuses.
mais ça m'amène à faire les déclarations en bon et dû formes.
@oguruma, tu as raison je vais revoir tout le code pour les déclarations il y a du travail, en espérant que les versions plus récente accepte.
Tu sembles dire que je me suis inspiré de LIBMAC, et bien non, c'est venu en travaillant sur les codes postaux, ce sont des idées qui viennent
comme ça.
De toute façon, ça me permet de remettre les choses à plat. j'ai surtout travaillé en LSE aujourd'hui abandonné.
Merci pour votre intervention.
Cordialement
Jean-Paul
 
"Modif Titre Procédure, aucun soucis tout fonctionne, les nouvelles versions sont plus pointilleuses.
mais ça m'amène à faire les déclarations en bon et dû formes.
Je n'ai pas une version récente d’Excel et pourtant ça plante quand même, et le problème ne vient pas de la déclaration de la variable mais de son assignation.
 
Bonjour @oguruma , @TooFatBoy et à tous

@TooFatBoy, "Modif Titre Procédure, aucun soucis tout fonctionne, les nouvelles versions sont plus pointilleuses.
mais ça m'amène à faire les déclarations en bon et dû formes.
@oguruma, tu as raison je vais revoir tout le code pour les déclarations il y a du travail, en espérant que les versions plus récente accepte.
Tu sembles dire que je me suis inspiré de LIBMAC, et bien non, c'est venu en travaillant sur les codes postaux, ce sont des idées qui viennent
comme ça.
De toute façon, ça me permet de remettre les choses à plat. j'ai surtout travaillé en LSE aujourd'hui abandonné.
Merci pour votre intervention.
Cordialement
Jean-Paul
Re, LSE ? tu veux dire LotusScript ?
 
Ah ALGOL, je connaissais pas, par contre le "LSD" a été utilisé pour commander des appareils de mesure en entrée/sortie,
Bus IEEE etc. pour vérifier le bon fonctionnement d'un matériel, bref le langage de programmation est surement plus évolué aujourd'hui.
ça rajeunie pas.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour