begin process at 2012 02 16 10:53:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Probleme de compilation incomprehensible


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de compilation incomprehensible

jeudi 9 octobre 2008 à 11:03:29 | Probleme de compilation incomprehensible

Morgoline

Bonjour a tous,

je poste un nouveau message toujours concernant mon probleme de macro excel au comportement etrange.

alors j'ai modifié mon code depuis et simplifier mon application et je pense avoir identifier le probleme.

voila je demande via une Msg box a l'utilisatuer de mon fichier excel si il veut creer des boutons graphiques pour chaque feuille du classeur. j'ai donc une application sub dans un module qui me permet de de gerer les differentes reponse de l'utilisateur et d appeler la procedure de creation de buton. jsuque la ok ... la macro d interaction avec l utilsateur etant appeler des l'ouverture du classeur ,.

mais voila quand je ceer un bouton la procedure se deroule normalement jusqu'a la fin car s'affiche un message qui ne fait pas parti de la prcedure elle meme juste apres la creation du bouton sur la feuille. mais au monent ou je click sur ce message bime .... plantage Excel tout s'arrete , se ferme, et message  : la memoire ... ne pas pas etre ecrite apparait  !!!

ce qui me chiffone c'est que si je lance ma procedure de creation independament elle marche tres bien pour chaque feuille.
de plus et c'est la le plus etrange, si j'ouvre le classeur que je refuse de mettre des bouton et que je vais dans VBa editor, que la je fais debug > compiler et que je relance le programme au niveau de l'ouverture de classeur tout se deroule pour le mieux .

en revanche si je ferme le classeur et que je le reouvre et que je fais directement ce que la macro me demande la j'ai a nouveau une erreur et tout plante ...

alors se peut il que mon projet ne se compile pas a l'ouverture?
y a t il moyen de forcer la compilation a l'ouverture quelque chose du style application.debug.run
ou voyez vous une erreur dan mon code ..

merci de m'aider car la je suis pommé j'ai tout eclusé comme pirouette pour me debarraser de cela mais rien y fait et je ne trouve rien sur le net a ce propos .

voila mon code si vous pouvez le tester pour me dire ce qui vous en pensé je vous en serai tres obligé...

PROCEDURE D INTERFCE AVEC UTILISATEUR
Sub Open_Workbook()
Dim j As Integer

Dim error As Boolean
Dim obj As OLEObject

New_try:
Dim i As Long
Dim answser 'idéclaration de la variable, avec reponse comme nom
Dim answser_graphs

 ActiveWorkbook.Activate
 answser = MsgBox("Do you want to add Graphical Application ?", vbYesNo + vbQuestion, "Validation")

    Select Case answser
    Case vbYes       'on click yes
   
    On Error GoTo Problem
       
      For i = 1 To Worksheets.Count
            Worksheets(i).Activate
            Worksheets(i).Visible = True
           
            error = False

            For Each obj In Worksheets(i).OLEObjects
                 
                    If obj.Name = "GraphButton" Or obj.Name = "ValidationButton" Then
                        error = True
                        Exit For
                    End If
                   
            Next obj
       
            answser_graphs = MsgBox("Add Graphical Application on sheet : " & Worksheets(i).Name, vbYesNo + vbQuestion, "Sheet Insertion Button")
       
            Select Case answser_graphs
                    Case vbYes       'on click yes
                        If error = False Then
                        Call Module1.Button_Graph_creation(Worksheets(i).Name)  ||||ICI J APPEL MA CREATION DE BOUTON
                        MsgBox " Graphs Buttons added successfully !", vbInformation ||||| LA CA PASSE
                        |||||||| LA CA PLANTE
                        Else
                        MsgBox " Sheet : " & ActiveSheet.Name & " already contains Graphs applications ", vbInformation
                       
                        End If
                   
                    Case vbNo        'on click no
                    MsgBox " No Button added !", vbInformation
            End Select        'end
           
        Next i
   
   
    Case vbNo        'on click no
   
    End Select        'end

Exit Sub

Problem:
   
    MsgBox "Error occured, please try again !", vbInformation
    j = j + 1
    If j < 3 Then
        GoTo New_try
    Else
        MsgBox " This error need you to restar Excel if you want to add the Graphs, sorry", vbInformation
       
        Exit Sub
    End If
End Sub


PROCEDURE DE CREATION DE BOUTON DYNAMIQUE
'Purpose: Allow to create dynamically 2 Buttons on the sheet to add graph application

Sub Button_Graph_creation(Worksheet_Name As String) ' Worksheet_Name is the name of the sheet were we place the buttons
Dim Code As String 'code will contain the code of the bur´toon we will create
Dim NextLine As String ' to situate where we are placing the code
Dim Last_cell As Long ' to know where is the last cell in used
Dim oOLE_G As Object ' object type to identifie an create the button Graph
Dim oOLE_V As Object ' object type to identifie an create the button Validation
Dim Ws As Worksheet ' the worksheet where we will use the button

'Application.ScreenUpdating = False

Set Ws = Worksheets(Worksheet_Name)
Last_cell = Ws.UsedRange.Columns.Count ' to know what is the last column in used

'to add a first button
Set oOLE_G = Ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
        Link:=False, DisplayAsIcon:=False, Left:=Ws.Cells(1, Last_cell).Left, Top:=5, Width:=100, Height:=50)

' to change the name of this button and it captation
With oOLE_G
        .Name = "GraphButton"
        .Object.Caption = "Graphs"
    'Ws.OLEObjects(Ws.OLEObjects.Count).Object.Caption = "Graphs"
End With

' the code we are placing in the procedure which is called after a click on this buton
    Code = "Sub GraphButton_Click()" & vbCrLf
    Code = Code & " Load Menu " & vbCrLf
    Code = Code & "Menu.Show " & vbCrLf
    Code = Code & "End Sub"

    With ActiveWorkbook.VBProject.VBComponents.Item(Ws.CodeName).CodeModule
        NextLine = (.CountOfLines + 1)
        .insertlines NextLine, Code
    End With

Set oOLE_G = Nothing ' realse the parameter
Set Ws = Nothing ' realse the parameter

'Application.ScreenUpdating = True

End Sub

PROCEDURE D APPEL AU DEMARRAGE
Sub Workbook_Open()
Call Open_Workbook
End Sub

samedi 18 octobre 2008 à 22:23:00 | Re : Probleme de compilation incomprehensible

rvblog

Membre Club
Salut Morgoline,

bon, je ne viens pas avec une solution toute faite, dommage! Mais comme tu n'as pas eu beucoup de réponses, ben ça en fait au moins une.

Cependant, ça ne m'enlèvre pas le droit de soulever quelques points:
Que se passe-t-il si tu n'affiches pas la MsgBox (dans le cas d'un succès d'ajout, de toutes façons, il parait inutile de confirmer la création, après avoir demandé une confirmation de la volonté de création, ça fait beaucoup de messages)?
Qu'en est-il de ce "Menu" qu'on charge dans le code non compilé (celui qui est ajouté à la volée dans la procédure Button_Graph_creation)? Vu le côté "tardif" du plantage (peut-être lié à l'affichage modal de la MsgBox), il s'agit peut-être d'un problème avec ce "Menu".

dis nous en plus, et continue à ne pas baisser les bras,

rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!

jeudi 23 octobre 2008 à 10:21:29 | Re : Probleme de compilation incomprehensible

Morgoline

Bonjour Msieur...

Alors desole our la repose tardive mais j'ai abandonné l'idee de trouver une solution a ce probleme de M...bip bip!

je reprends quand meme au cas ou quelqu un tombe dans la meme panique que moi !

Donc si je retire la message box a la noix qui dit " Boutons added sucessfully " ca ne change rien du tout toujours le meme souci.

Menu est un formulaire independant de cette procédure il est appelé lors du clic sur le bouton ajouté a la feuille et c'est donc pour cela que je n'en ais pas parlé :

en fait ce que fais mon programme de facon sequenciel et en francaios c'est cela :

-demander a utilisateurs si il desire creer une appilaction graphique sur la feuille active
-si oui appelle a la creation automatique de bouton
-puis passage a une autre feuille

et ainsi de suite jusqu a ce que toutes les feuilles aient visitées

a ce moment la une procedure graphique est appellée a chaque clic sur le bouton d'une des feuilles

voila, je confirme quand meme le soucis de ce probleme de compilation car je ne comprends decidement pas pourquoi le fait de compiler le programme ne le fais pas planter...
jeudi 23 octobre 2008 à 10:37:02 | Re : Probleme de compilation incomprehensible

rvblog

Membre Club
Salut,

essaies de charger un autre formulaire que Menu (un qui ne fait rien, pour exclure la possibilité que Menu fasse quelque chose de pas bien).
essaies aussi de charger ce formulaire plus convenablement, en gardant une référence à lui (pour éviter la multi-instanciation).
essaies aussi de t'assurer de ne pas l'afficher modalement.

à+
jeudi 23 octobre 2008 à 10:43:28 | Re : Probleme de compilation incomprehensible

baloc

a tu essayé de rajouter un
on error resume next.

sa te feras sauté le problème pour voir si il ne vient pas de plus loin.

et une victoire de plus pour Mr canard
vendredi 18 novembre 2011 à 09:30:53 | Re : Probleme de compilation incomprehensible

ocibert

Peut-on connaître la fin de l'histoire ? Le on error resume a-t-il été la solution
Merci à tous
vendredi 18 novembre 2011 à 11:59:59 | Re : Probleme de compilation incomprehensible

ucfoutu

Membre Club

Peut-on connaître la fin de l'histoire ? Le on error resume a-t-il été la solution
Merci à tous


Non seulement je ne le crois pas, mais j'insiste de surcroît sur la nécessite d'éviter, sauf pour traiter des erreurs imprévisibles, toute espèce de gestion d'erreur.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient


Cette discussion est classée dans : end, code, to, ws, name


Répondre à ce message

Sujets en rapport avec ce message

Plantage Excel raison inconnue et suspicieuse [ par Morgoline ] Bonjour a tous et a toutes,je me resouds finalement a poster ici une question qui me turlyupine depuis 1 semaisne et que je n'arrive pas a resoudre so [Catégorie modifiée VB6 -> VBA] adapter un code [ par rocket4 ] bonjour ,je travail sur excel et je n'arrive pas à adapter le code suivant à une page que je nommerai "recherche" et dont les resultats seraient donné modifier un code [ par rocket4 ] bonjour je souhaiterai modifier le code suivant qui est destiné à exporter des données d'une feuille (qui supporte le code )vers une autre feuille nom différence entre deux dates [ par joujma5 ] bonjour, je travail sur un petit programme et je veux garder la date du lot d'un produit la plus proche puis l'afficher.voici le bout de code: [code=v Vérifier si la connexion internet fonctionne [ par jx53 ] salut, j'ai trouvé sur internet plusieurs code pour savoir si l'ordinateur est connecté a internet ou pas que j'ai ensuite modifié pour qu'il m'affich Lire des données xml avec visual basic 2010 [ par maxkun ] Bonjour, voila, j'aimerai lire des données XML en vb, mais je débute et je ne vois pas comment faire, quelqu'un pourrait m'aider??? En gros j'ai le c [Catégorie modifiée VB6 ->.Net] Les fonctions et les class [ par lunnorey ] Bonjour, Je viens de commencer à programmer un VB est j'apprends par internet. ce n'est pas facile pour des explication plus précise. OBJECTIF : uti VBA-Excel: Utiliser calendrier [ par lorhass ] Bonjour a tous je travail sur un projet et j aimerais utiliser le calendrier dans VBA comme décrit sur l image ci-dessous: [img] http://cjoint.com/?0 Constante en VBS [ par MacGaliver ] Bonjour, Je voudrais savoir si il serait possible de créer un constante car je ne suis pas un pro. Si oui comment faire car je suis une biche en VBS


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,058 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales