IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

VBA plante à cause d'un Frame


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut VBA plante à cause d'un Frame
    Bonjour,

    J'utilise le site depuis quelques temps maintenant pour y trouver des infos, toujours avec succès jusqu'à présent.
    J'ai créé un macro dans Word pour générer un document et le pré-remplire en fonction d'éléments renseignés dans un Userform.
    Il y'a quelques combobox rempli au démarrage du formulaire et un Multipage.
    Ce Multipage comporte une page au démarrage, générée dynamiquement avec à l'intérieur quelques Textbox auxquelles s'ajoutent un nom indéfini de Combobox en fonction des besoins de l'utilisateur (ajout/suppreesion via un bouton). Tout ce qui se passe sur ces combobox et boutons est géré par Module de classes (Merci Silkyroad!!!!).

    Tout fonctionnant à merveille, je décide donc d'amméliorer un peu la présentation. Tous mes élements à remplire / choisir étant classés dans des Frame, sauf , je souhaite rajouter un Frame histoire d'harmoniser le tout.

    Mon problème arrive là, lorsque je rajoute un Frame (quel qu'en soit les parametres, name, caption, taille, position....), Word plante au démarrage.
    Il plante tellement bien qu'il me propose d'envoyer un message d'erreur à Crosoft et me ferme brutalement Word en me porposant de récupérer mon document.
    Je suis passé sur toute ma procédure au pasà pas jusqu'à l'erreur qui se situe au moment ou j'ajoute une page à mon multipage (lui même dans un frame). La formule que j'utilise (qui fonctionne lorsqu'il n'y à pas ce nouveau frame) est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    USF_Nom.MultiPage_Materiel.Pages.Add.Caption = "Unité " & N + 1
    Ou USF_Nom est le nom de mon Formulaire et Multipage_Materiel le nom de mon multipage.

    J'avoue être perdue il n'y a aucun lien entre le multipage et le nouveau Frame (même lorsque le nouveau frame est vide).

    Quelqu'un d'entre vous aurais-t-il une idée pour m'aider?

    Idéalment je ne souhaite pas mettre mon document à disposition, c'est un document de ma société.

    Cordialement,

    Safra

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Santé

    Informations forums :
    Inscription : Août 2009
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Hello,

    je viens de tester un petit code:

    Dans une userform1, je créé un cadre Frame1 à l'interieur duquel je créé un multipage1.

    Un bouton placé sur ma userform mais à l'extérieur du cadre avec cette commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UserForm1.MultiPage1.Add.Caption = "Nouvelle page"
    ça marche très bien.

    Essaye d'enlever le .pages de ton code.

    Sylvain

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Hello Sylvain,

    Merci d'avoir répondu à ma question.
    Malheureusement, lorsque je tente ta solution, j'obtiens une erreur :
    Erreur d'execution '-2147417848(80010108)':
    Erreur Automation
    L'objet invoqué s'est déconnecté de ses clients
    Ce soir je n'ai plus le temps, je tenterais de regarder demain matin sur le web par rapport à ce message d'erreur.

    Cordialement,

    Nicolas

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Santé

    Informations forums :
    Inscription : Août 2009
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Bonjour Nicolas,

    Voici un fichier Word avec quelques petits codes qui pourraient te servir...

    Bon amusement,


    Sylvain
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Bonjour Sylvain,

    Merci pour ta réponse ainsi que pour le fichier d'exmple.
    Les macro ajoutant et supprimant les multipage sont très proches de celles que j'utilise déjà, à la différence, que tu précise que le multipage est dans le frame, ce que je ne faisais aps.

    J'ai donc tenté d'ajouter .frame4 à la bonne place, mais toujours le même effet.

    J'ai à nouveau la même erreur que cité précédement (Erreur D'automation, l'objet s'est déconnecté de ses clients).

    La petite nouvelle est que le fichier ne fais plus planter word, il m'indique le message d'erreur puis retourne à l'éditeur de macro.

    Je pense que je vais me résigner à lésiner sur l'esthétisme de mon formulaire

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Santé

    Informations forums :
    Inscription : Août 2009
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Bah, c'est dommage que tu ne passe pas ton fichier sur le forum, on trouverai plus vite la solution, mais je comprends, si c'est professionnel...

    Peut-être peux tu me l'envoyer via message privé...

    comme tu veux.

    Sylvain

    EDIT: ah non, on ne peut pas attacher de pièce jointe en mp...

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Rebonjour à tous,

    Je viens de faire le ménage dans mon document pour enlever tout ce qui pourrais être plus ou moins une donnée sensible.
    Je joins donc mon fichier avec sa macro.

    Soyez indulgent, j'ai viré des macros et le contenu à la va vite, il y'a probablement des fonctionnalitées qui peuvent toujours êtres appelées mais qui n'existent plus dans les macros.
    Pour la petite histoire, ce fichier permet de générer un devis pour les commerciaux de ma boite qui fais du traitement des gazs.

    Je me permet de rappeler que dans l'état actuel, votre word plantera lorsque vous cliquerez sur 'TEST'!!

    L'objet qui pose problème est le Frame5 de USF_Nom situé à côté du bouton Annuler. En théorie, il est censé encadré les boutons - & + et sont texte.
    Le bug se situe dans le Module MODULE_USF, Sub Generer_Onglet, ligne USF_Nom.MultiPage_Materiel.Pages.Add.Caption = "Unité " & N + 1

    Pour voir le fichier fonctionner, supprimer simplement ce frame5 et tout ira bien...

    Nota : J'ai déjà tenté en changeant le nom et en faisant tous les autres changements décrits plus tôt dans ce forum sans effet positif.

    N'hésitez pas si vous avez des questions de compréhension!!

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Je ne comprend pas très bien ce que tu veux faire.
    ça ressemble à une usine à gaz.

    Pourquoi veux-tu ajouter des pages à un multipage de façon dynamique ?
    Multipage qui es vide au départ, le count donne 0 comme valeur à N
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Effecteivement, ça peut être une usine à gaz...
    J'avoue ne rien avoir appris à la programmation et avoir tout appris depuis 6 mois "sur le tas"... J'ai une formation en chimie analytique et industrielle et en commercial, pas en informatique

    Concernant le fonctionnement, le principe est le suivant : En tant que commerciaux, je suis amené avec mes collègues à faire des devis assez souvent et on passe notre temps à faire du copier/coller entre pleins de modèles.
    Ma macro est censé générerun devis a partir d'un seule modèle.
    La génération des pages est dynamique parce que je ne sais pas à l'avance combien il y aura de matériel à installer.
    Pour l'exemple, chaque page correspond à une voiture, chaque combobox à un équipement ajouté à la voiture. La génération dynamique permet que l'utilisateur choisisse le nombre de voiture du projet et le nombre d'équipement de chaque voiture.

    Ca vous aide à mieux comprendre?

    Pour ce qui est de a propreté du projet... un jour je tenterais de prendre des cours de programmation pour faire tout ça un peu plus propre mais pour le moment c'est du "hobby", merci d'être indulgent!

  10. #10
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    C'est un peu plus clair.

    Pour ce qui est de la programmation, je suis mécano, donc très loin de ce qui est informatique.
    Repousser l'apprentissage et l'application de certaines notions ou règles n'est pas la solution, pour se débarasser des mauvaises habitudes prises peut prendre des années.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Salut Heureux-oli,

    Je comprend tout à fait, cependant je n'ai personne qui peut m'apprendre les notions, règles et bonne habitudes en programmation.
    J'ai bien essayé de chercher une fois (rapidement c'est vrai) si un topic sur donnais quelques lignes directrices sans succès, si tu a quelques liens pour moi je suis preneur.

    Ceci à part, pas d'idée pour mon soucis de plantage?

  12. #12
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Rien que dans ma signature.

    Il y a deux liens.

    Le premier c'est pour les bases en VBA et le second plus particulièrement sur Word VBA.

    Vu la complexité de tes devis, je pense qu'il serait plus intéressant de gérer les données en Access et de les exporter vers Word ensuite.

    Cette méthode de travail permet d'utiliser certaines relations entre les différentes données.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Hello,

    Merci Heureux Oli, je vais regarder ces liens ce week end.
    Concernant la base de donnée, j'ai écarté cette possibilité pour deux raison :
    1. Personne n'est équipé d'access au niveaux des commerciaux chez nous et le service informatique n'est pas pret à l'investissement
    2. Ce qui est généré est des pages de descriptif qui est en fait un copié/collé de modèle de descriptif. La complexité de chaque objet décrit, de la mise en page de chaque page et des intégration d'image m'ont découragé dedfaire une base de donnée et de privilégié cette solution un peu plus "bricolage"

Discussions similaires

  1. [11g] SQL*Plus plante à cause de OCI.DLL
    Par Pomalaix dans le forum Installation
    Réponses: 2
    Dernier message: 15/01/2012, 23h11
  2. [WD-2007] Userform plante à cause d'un frame
    Par Safra dans le forum VBA Word
    Réponses: 1
    Dernier message: 05/01/2010, 14h06
  3. [AC-2003] Requête plante à cause d'un trop grd nbr de lignes
    Par jimay dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/06/2009, 15h55
  4. Application qui plante à cause des tabs ?
    Par astrolus dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/05/2008, 22h54
  5. [VBA-E] ecrire dans un frame ..
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/10/2006, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo