Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003) [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (Polack77)

mardi 9 mai 2006 à 10:18:09 | Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

Polack77

    En deux mots: j'ai une macro qui met en page des fichiers Word. Dans ces fichiers se trouve des tableaux Excel que je dois (entre autre) mettre en tableau Word. Problème il arrive parfois que j'ai des tableaux Excel avec liaison mais pas le fichier Excel lié! Lorsque j'applique mon code un message apparait ("C'ette objet est altérer ou n'est plus disponible") et il me faut alors cliquer sur "OK" or je développe un robot (il ne faut donc pas avoirs à faires quoi que ce soit pour que le code s'exécute).

     Si vous avez une solution (que se soit pour tester si c’est un objet Excel lié, empêcher ce message d’apparaître ou n’importe quoi d’autre) faite le mois savoir s’il vous plaît. J’en ai mare  cas fait 3 semaine que j’ai cette erreur (a vrais dire j’ai plus ou moins léser tomber  et je pris pour que qu’un réponde à ma question)

     Pour reproduire ce problème :
          -> Ouvrir Word et Excel
          -> Mettre des données dans le tableau Excel et le copier
          -> Faire un collage spécial sous Word pour coller le fichier avec liaison
                   ·         
Edition
                   ·          Collage spécial
                   ·          Coller avec liaison
                   ·          Feuille de calcul Microsoft Office Excel Object

          -> Fermer Excel

     Si vous tenter d’ouvrir cette objet en code ou avec l’interface ce ù$¤£µ de message  apparaît.

P.S. : "On error resume next" et "Application.DisplayAlerts" ne sont pas sufisant!

D'oh! Nuts!
Mmmmm...
 DONUTS

mardi 9 mai 2006 à 16:02:56 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

clementio

Administrateur CodeS-SourceS
Je suis pas très doué en VBA (j'ai laissé tomber depuis longtemps) mais je pense que le plus simple serait de simuler un click pour fermer le message d'erreur. Déjà il te faut utiliser les API. Déclare ça au début de ton code: Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Ensuite à la suite de ton code qui fait apparaître le message, mets ça: Dim lHwnd As Long Sleep 1000 Doevents lHwnd = FindWindow(vbNullString, "AAAA") 'AAA à remplacer par le titre de la fenêtre du message d'erreur If lHwnd Then SendKeys "{ENTER}" End If Et c'est tout... Dis-moi si ça marche, Clm.

mardi 9 mai 2006 à 16:16:12 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

NHenry

Membre Club
Bonjour

Peux-tu mettre ton code (ou la partie qui pose pb si c'est trop long), et éventuellement la ligne qui te génère cette erreur.
Car vu la description, je ne peux pas en dire plus.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

mardi 9 mai 2006 à 17:36:45 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

Polack77

Heeeee, j'ai fini ma journée à demain. J'ai commancer à regarder ta solution clementio je fini demain (je pense que ça dois être possible de faire comme tu dit).
Je met le code qui me posse problème :

Function CopyDonnéeExcel(ByVal RangeTravail As Range) As String
Dim CptLigne As Long 'Copteur ligne
Dim CptColone As Long 'Compteur Colone
Dim PremLigne As Long 'Sauvgarde de la position de la "NomVariable"
Dim PremColone As Long 'Sauvgarde de la position de la "NomVariable"
Dim DerLigne As Long 'Sauvgarde de la position de la "NomVariable"
Dim DerColone As Long 'Sauvgarde de la position de la "NomVariable"
Dim ColoneVide As Boolean 'Flag colone vide
Dim TemponPosition As String 'Saugarde de la postion de l'objet excel (pour remplacement)
Dim CptElement As Integer
Dim MyXl As Object ' Variable devant contenir la référence à Microsoft Excel.
    Do While CptElement < RangeTravail.InlineShapes.Count
        CptLigne = 0
        CptColone = 0
        PremLigne = 0
        PremColone = 0
        DerLigne = 0
        DerColone = 0
        TemponPosition = ""
        CptElement = CptElement + 1
        On Error Resume Next 'Si une rerrur se produit continuer le code
        RangeTravail.InlineShapes(CptElement).OLEFormat.DoVerb VerbIndex:=wdOLEVerbHide 'ouvre excel avec la feille afficher C là que cas fait mal
        DoEvents 'Ouvre excel
        DoEvents 'Ouvre la feuille
        If Err.Number = 0 Then 'Si aucune erreur ne s'est produite lors de l'ouverture de l'élément
            On Error GoTo 0
            Set MyXl = GetObject(, "Excel.Application") 'Recu de l'adrs d'excel
            'MyXl.Application.DisplayAlerts = False 'Excel ne remonte pas d'erreur


Se reposé c important

mercredi 10 mai 2006 à 09:50:05 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

Polack77

Alors pour la solus de clementio, ca me marche pas. J'ai fait ca:

        On Error Resume Next 'Si une rerrur se produit continuer le code
****RangeTravail.InlineShapes(CptElement).OLEFormat.DoVerb VerbIndex:=wdOLEVerbHide 'ouvre excel avec la feille afficher
'--------------------------------
        Sleep 1000
        DoEvents
       
        lHwnd = FindWindow(vbNullString, "Microsoft Office Word") 'AAA à remplacer par le titre de la fenêtre du message d'erreur
       
        If lHwnd Then
           SendKeys "{ENTER}"
        End If
'---------------------------------------
        DoEvents 'Ouvre excel
        DoEvents 'Ouvre la feuill

Mon execution se stop à la ligne "****" et attend que je click sur "OK" pour continuer son exection soit passer à la ligne "sleep 1000" (ou alors il faut que je mette le sleep avant ma ligne ****, ça ne me parit pas être possible vue que le sleep stop simplement mon exection durant 1s???)

A votre avis passer un PC pare la fenêtre du 3éme est un motif de licenciement?


D'oh! Nuts!
Mmmmm...
 DONUTS

mercredi 10 mai 2006 à 09:57:28 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

NHenry

Membre Club
Bonjour

L'utilisation de OLe avec VBA excel, je ne manipule pas du tout.

Oui, cela peut-être un motif de liscenciement.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

jeudi 11 mai 2006 à 11:37:09 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

Polack77

Heeeeeeeeeee, ca marche toujours pas et je vais me faire licencier (piouf le PC) car ça commence à MENERVER voire même à me les brouter menues mais alors menues (désol c un peut vulgaire comme expression mais c la plus approprié il me semble)

D'oh! Nuts!
Mmmmm...
 DONUTS

jeudi 11 mai 2006 à 12:56:50 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

rvblog

Membre Club
Salut Polack77, salut clementio, salut NHenry,

bon, Polack77, je vois que tu traines toujours ce calvaire derrière toi. Il va falloir sortir l'artillerie lourde (rassures-toi, juste en VBA d'abord). Sutout, ne passe pas ton PC par la fenêtre, mais plutôt le patron qui oserait te licencier pour ça :)

Je vais te faire, ici, une réponse que tu n'aurais pas appréciée si je te l'avais faite dès ton 1er post, mais qui passera mieux maintenant.
Dans ton problème se cache un autre problème : ton code est brouillon. Ben oui, il faut bien te le dire. Ca se soigne, mais dans ton cas, avec l'artillerie lourde. Et il faut savoir aussi que cela ne va pas forcément résoudre ton problème initial. Ben oui, ça aussi, il faut le dire.

On commence :

- D'abord, (il me semble que je t'en avais déjà parlé, dans un sujet avec Mortalino) nier une erreur ne la résoud pas (On Error Resume Next = nier une erreur). Je sais bien que tu ne cherches pas à la nier, mais tu la nies quand même.
- Ne mélange pas le bout de code qui te pose problème avec le code qui marche. Ca veut dire, fais une fonction séparée pour la ligne qui pose problème. Exemple (pour reprendre tes mots) :

Private Function ClaQueCasFaitMal(Byref MaRange As Excel.Range, _
                                                         Byval CptElementRecu As Integer) As Boolean
On Error Goto ClaQueCasFaitMalErr
   'pas d'argument nommé, il n'y en a qu'un
   MaRange .InlineShapes(CptElementRecu).OLEFormat.DoVerb wdOLEVerbHide
   'rapport de succès
   ClaQueCasFaitMal=False
Exit Function
ClaQueCasFaitMalErr:
   MsgBox Err.Number & vbCrLf & Err.Description
   'rapport d'échec
   ClaQueCasFaitMal=
True
End Function


Ensuite, appelles la fonction, exemple :

         ...
        CptElement = CptElement + 1
        'si ça ne fait pas mal alors
        If Not ClaQueCasFaitMal() Then
           'fais ce que tu veux
           Set MyXl = GetObject(, "Excel.Application") 'Recu de l'adrs d'excel
        End If
         ...

et dis-nous que cela donne (n° erreur et message, s'il y en a, et s'il n'y en a pas, ne t'inquiètes pas, dis-le, et on continue).

Je te fais faire cela, parce que dans ton cas, ça servira toujours pour plus tard, et parce que, pendant ce temps, je peux investiguer de mon côté (et puisque c'est ce que je vais commencer par faire, si tu le fais, tu trouveras peut-être avant moi [comme d'habitude])

à+

rvblogn
Je veux ton bien... et je l'aurais... mais jamais avant la page 4


jeudi 11 mai 2006 à 13:34:43 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

rvblog

Membre Club
bon, déjà, apparemment, erreur 16389, et pour l'instant, impossible d'empêcher l'affichage de la boite de message tant redoutée.

mais on avance.

à+

rvblogn
Je veux ton bien... et je l'aurais... mais jamais avant la page 4


jeudi 11 mai 2006 à 13:41:35 | Re : Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

Polack77

Tout pareil.
En tout cas mille fois merci de t'intéresser à mon problème (je m'apprêtait à balancer l'écran lol)


D'oh! Nuts!
Mmmmm...
 DONUTS


1 2 3

Cette discussion est classé dans : message, erreur, excel, office, word


Répondre à ce message

Sujets en rapport avec ce message

Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003) [ par Polack77 ] Bon j'ai un bug qui m'enerve. Je veut programmer un "robot" qui verifie tout les fichier Word contenu dans un dossier et y fait des traitements, tel q Message d'erreur sur une combobox [ par nanardino64 ] Bonjour tout le monde,Après de longues vacances paisibles le retour cruel à la dure réalité et déjà les premiers problèmes!!! J'ai crée une combobox s graphique excel [ par xman696214 ] salut tt le mondeje veu créer un graphique à partir d'un tableau excel que j'ai déja rempli, mais le pb c que une fois que j'exécute le programme, un Message d'erreur bizarre [ par Feas_Kaertes ] Lors de l'enregistrement d'un fichier au format excel, Windows NT me met un message d'erreur : "Impossible d'ouvrir une feuille modulable", sans que e VBA excel : message d'erreur apres fermeture classeur contenant macros [ par Yrdev ] Salut a tous et a toutes !J'ai un petit probleme avec VBA sous Excel, j'essaie d'etre clair (!?!!) :1) un classeur excel Essai.xls contient des macros Erreur avec une dll en utilisant une automation avec Excel [ par roda ] J'ai créé une automation entre Access 97 et Excel 97.Sur la majorité des poste tout fonctionne sauf quelqu'uns. Je m'explique : Lorsque je lance mon a Pb suppression ligne VB / EXCEL ! ( message erreur ) [ par sabou94 ] Salut, mon probleme est que j'essaie de supprimer une ligne d'une feuille excel à partir d'une application visual basic. Lorsque je supprime la dernie Acquitement d'un message d'impression word ou excel [ par auke29 ] auke29J'ai réalisé un petit programme pour ma boite ,il permet d'imprimer des dossiers de lot.à base de documents Word ou excelil ouvre les différents Erreur à l'ouverture [ par ydu ] Bonjour à tous,Un classeur excel à été crée sur un environnement Excel XP. Je l'ai ensuite ouvert puis modifier sur un environnement Excel 2003.Au mom Message d'erreur après compil [ par mich95 ] Mich95Bonjour à tous.J'ai fait un prog pour lire le contenu d'une page internet.Pas de problème lors de la création, et cela fonctionne bien en mode d


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,61 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.