Erreur dans une application VBA

Le
Tchantchet
Bonjour à tous,

J'ai réalisé une application en VBA assez importante. Celle-ci utilise
des fichiers indexés (random) et des fichiers d'index.
Les fonctions :
ouverture : Open "D:CMKCMKFICHEMACHINE.IND" For Random As #1 Len =
Len(MRECORD)
Ecriture : Put #1, INDEX, MRECORD
Lecture : Get #1, INDEX, MRECORD

MRECORD état définit dans les déclarations Public MRECORD As
MACHINERECORD
et MACHINERECORD définit l'enregistrement de 279 caractères de champs
différents.

J'ai créé plusieurs modules qui traitent différents sujets dans cette
application. En en-tête de chaque module, j'ai reporté les mêmes
déclarations de variables, tableaux, et enregistrements, ce qui est
inutile vraisemblablement puisque toutes ces variables sont déclarées
"publiques".

Soit Lors de la lecture ou l'écriture d'un enregistrement dans un
fichier indexé, Il me vient de temps en temps une erreur " Longueur
d'enregistrement incorrecte". L'arrêt du programme cause un problème
sérieux en écriture bien entendu.

Il y a tellement longtemps que je cherche d'où provient cette erreur
que j'ai remarqué que la réinitialisation du programme faisait
disparaître cette erreur. Pour ce faire, je dois neutraliser une ligne
quelconque dans la plage des déclarations, compiler, puis rendre la
ligne à nouveau active et recompiler.
J'ai déjà contrôlé maintes fois la longueur d'enregistrement et n'a=
i
jamais trouvé d'erreur et je crois que l'erreur désignée n'est pas la
vraie erreur.

Auriez-vous une idée pour résoudre ce problème ou tout au moins pour
trouver l'erreur.

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #17850431
Tu trouves un bon livre (chapitre) sur la déclaration
et l'utilisation des variables et tu fais un brin de lecture !

Si tu déclares comme "Public" un nom de variable dans
plusieurs modules "Standard", La variable "Public" déclarée
dans un module aura préséance lors de l'exécution du code
sur la variable Public du même nom déclarée dans un autre
module. La conséquence de tout ceci, non seulement excel
aura de la difficulté à s'y retrouver, mais toi, tu risques d'avoir
de sérieux mots de tête à débugger ton application.

Chaque variable peut avoir 255 caractères ce qui donne suffisamment
de souplesse pour éviter "à tout prix" les doublons dans le nom de
celle-ci.

Si tu as vraiment besoin de variables "Public", Tu peux te créer un module
standard dont la fonction sera de contenir leur déclaration si le nombre le
justifie.

Dans un module de classe tel que les modules "Feuille", "ThisWorkbook" ou
"module de classe" que tu peux ajouter à ton programme, la déclaration
d'une variable Public crée une "PROPRIÉTÉ" appartenant à cette classe
d'objet et non une variable... et pour faire référence à cette propriété, tu
dois utiliser le nom de l'objet devant la propriété comme :
Feuil1.MaVariable
pour y faiire référence ailleurs que dans le module où elle a été créée.

Organise ta déclaration de variable et observe si tu as toujours le même
problème !



"Tchantchet"
Bonjour à tous,

J'ai réalisé une application en VBA assez importante. Celle-ci utilise
des fichiers indexés (random) et des fichiers d'index.
Les fonctions :
ouverture : Open "D:CMKCMKFICHEMACHINE.IND" For Random As #1 Len Len(MRECORD)
Ecriture : Put #1, INDEX, MRECORD
Lecture : Get #1, INDEX, MRECORD

MRECORD état définit dans les déclarations Public MRECORD As
MACHINERECORD
et MACHINERECORD définit l'enregistrement de 279 caractères de champs
différents.

J'ai créé plusieurs modules qui traitent différents sujets dans cette
application. En en-tête de chaque module, j'ai reporté les mêmes
déclarations de variables, tableaux, et enregistrements, ce qui est
inutile vraisemblablement puisque toutes ces variables sont déclarées
"publiques".

Soit ... Lors de la lecture ou l'écriture d'un enregistrement dans un
fichier indexé, Il me vient de temps en temps une erreur " Longueur
d'enregistrement incorrecte". L'arrêt du programme cause un problème
sérieux en écriture bien entendu.

Il y a tellement longtemps que je cherche d'où provient cette erreur
que j'ai remarqué que la réinitialisation du programme faisait
disparaître cette erreur. Pour ce faire, je dois neutraliser une ligne
quelconque dans la plage des déclarations, compiler, puis rendre la
ligne à nouveau active et recompiler.
J'ai déjà contrôlé maintes fois la longueur d'enregistrement et n'ai
jamais trouvé d'erreur et je crois que l'erreur désignée n'est pas la
vraie erreur.

Auriez-vous une idée pour résoudre ce problème ou tout au moins pour
trouver l'erreur.

Merci d'avance
Tchantchet
Le #17850571
On 15 nov, 13:14, "michdenis"
Tu trouves un bon livre (chapitre) sur la déclaration
et l'utilisation des variables et tu fais un brin de lecture !

Si tu déclares comme "Public" un nom de variable dans
plusieurs modules "Standard", La variable "Public" déclarée
dans un module aura préséance lors de l'exécution du code
sur la variable Public du même nom déclarée dans un autre
module. La conséquence de tout ceci, non seulement excel
aura de la difficulté à s'y retrouver, mais toi, tu risques d'avoir
de sérieux mots de tête à débugger ton application.

Chaque variable peut avoir 255 caractères ce qui donne suffisamment
de souplesse pour éviter "à tout prix" les doublons dans le nom de
celle-ci.

Si tu as vraiment besoin de variables "Public", Tu peux te créer un mod ule
standard dont la fonction sera de contenir leur déclaration si le nombr e le
justifie.

Dans un module de classe tel que les modules "Feuille", "ThisWorkbook" ou
"module de classe" que tu peux ajouter à ton programme, la déclaratio n
d'une variable Public crée une "PROPRIÉTÉ" appartenant à cette cl asse
d'objet et non une variable... et pour faire référence à cette prop riété, tu
dois utiliser le nom de l'objet devant la propriété comme :
Feuil1.MaVariable
pour y faiire référence ailleurs que dans le module où elle a ét é créée.

Organise ta déclaration de variable et observe si tu as toujours le m ême
problème !

"Tchantchet"
Bonjour à tous,

J'ai réalisé une application en VBA assez importante. Celle-ci utilis e
des fichiers indexés (random) et des fichiers d'index.
Les fonctions :
ouverture : Open "D:CMKCMKFICHEMACHINE.IND" For Random As #1 Len =
Len(MRECORD)
Ecriture : Put #1, INDEX, MRECORD
Lecture : Get #1, INDEX, MRECORD

MRECORD état définit dans les déclarations Public MRECORD As
MACHINERECORD
et MACHINERECORD définit l'enregistrement de 279 caractères de champs
différents.

J'ai créé plusieurs modules qui traitent différents sujets dans cet te
application. En en-tête de chaque module, j'ai reporté les mêmes
déclarations de variables, tableaux, et enregistrements, ce qui est
inutile vraisemblablement  puisque toutes ces variables sont déclar ées
"publiques".

Soit ... Lors de la lecture ou l'écriture d'un enregistrement dans un
fichier indexé, Il me vient de temps en temps une erreur " Longueur
d'enregistrement incorrecte". L'arrêt du programme cause un problème
sérieux en écriture bien entendu.

Il y a tellement longtemps que je cherche d'où provient cette erreur
que j'ai remarqué que la réinitialisation du programme faisait
disparaître cette erreur. Pour ce faire, je dois neutraliser une ligne
quelconque dans la plage des déclarations, compiler, puis rendre la
ligne à nouveau active et recompiler.
J'ai déjà contrôlé maintes fois la longueur d'enregistrement et n 'ai
jamais trouvé d'erreur et je crois que l'erreur désignée n'est pas la
vraie erreur.

Auriez-vous une idée pour résoudre ce problème ou tout au moins pou r
trouver l'erreur.

Merci d'avance



Je te remercie michdenis. Je vais tâcher de mettre de l'ordre dans
cette application.
Jacquouille
Le #17856091
Bonsoir Denis
Puisque nous en sommes à la longueur...
En VBA, le nombre de caractères est-il libre ou limité à un certain nombre
pour l'écriture d'une ligne ?
Merci et Bonne soirée à toi

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"michdenis" %
Tu trouves un bon livre (chapitre) sur la déclaration
et l'utilisation des variables et tu fais un brin de lecture !

Si tu déclares comme "Public" un nom de variable dans
plusieurs modules "Standard", La variable "Public" déclarée
dans un module aura préséance lors de l'exécution du code
sur la variable Public du même nom déclarée dans un autre
module. La conséquence de tout ceci, non seulement excel
aura de la difficulté à s'y retrouver, mais toi, tu risques d'avoir
de sérieux mots de tête à débugger ton application.

Chaque variable peut avoir 255 caractères ce qui donne suffisamment
de souplesse pour éviter "à tout prix" les doublons dans le nom de
celle-ci.

Si tu as vraiment besoin de variables "Public", Tu peux te créer un module
standard dont la fonction sera de contenir leur déclaration si le nombre
le
justifie.

Dans un module de classe tel que les modules "Feuille", "ThisWorkbook" ou
"module de classe" que tu peux ajouter à ton programme, la déclaration
d'une variable Public crée une "PROPRIÉTÉ" appartenant à cette classe
d'objet et non une variable... et pour faire référence à cette propriété,
tu
dois utiliser le nom de l'objet devant la propriété comme :
Feuil1.MaVariable
pour y faiire référence ailleurs que dans le module où elle a été créée.

Organise ta déclaration de variable et observe si tu as toujours le même
problème !



"Tchantchet" news:

Bonjour à tous,

J'ai réalisé une application en VBA assez importante. Celle-ci utilise
des fichiers indexés (random) et des fichiers d'index.
Les fonctions :
ouverture : Open "D:CMKCMKFICHEMACHINE.IND" For Random As #1 Len > Len(MRECORD)
Ecriture : Put #1, INDEX, MRECORD
Lecture : Get #1, INDEX, MRECORD

MRECORD état définit dans les déclarations Public MRECORD As
MACHINERECORD
et MACHINERECORD définit l'enregistrement de 279 caractères de champs
différents.

J'ai créé plusieurs modules qui traitent différents sujets dans cette
application. En en-tête de chaque module, j'ai reporté les mêmes
déclarations de variables, tableaux, et enregistrements, ce qui est
inutile vraisemblablement puisque toutes ces variables sont déclarées
"publiques".

Soit ... Lors de la lecture ou l'écriture d'un enregistrement dans un
fichier indexé, Il me vient de temps en temps une erreur " Longueur
d'enregistrement incorrecte". L'arrêt du programme cause un problème
sérieux en écriture bien entendu.

Il y a tellement longtemps que je cherche d'où provient cette erreur
que j'ai remarqué que la réinitialisation du programme faisait
disparaître cette erreur. Pour ce faire, je dois neutraliser une ligne
quelconque dans la plage des déclarations, compiler, puis rendre la
ligne à nouveau active et recompiler.
J'ai déjà contrôlé maintes fois la longueur d'enregistrement et n'ai
jamais trouvé d'erreur et je crois que l'erreur désignée n'est pas la
vraie erreur.

Auriez-vous une idée pour résoudre ce problème ou tout au moins pour
trouver l'erreur.

Merci d'avance




michdenis
Le #17856351
| En VBA, le nombre de caractères est-il libre ou limité
| à un certain nombre pour l'écriture d'une ligne ?


Une ligne de code dans l'éditeur vba ne peut pas dépasser 1024 caractères...
comprenant caractères, espace et guillemets...

Je n'ai jamais eu besoin d'aller au delà !
Publicité
Poster une réponse
Anonyme