begin process at 2012 02 17 03:18:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)


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

Message d'erreur impossible à désactier??? (VBA sur Word, Office 2003)

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 Administrateur CodeS-SourceS
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 Administrateur CodeS-SourceS
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ée 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 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 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 [ par sancho12345 ] Bonsoir à vous, Pourriez-vous m’aider à résoudre un problème. Le voici : Le code ci dessous permet d’ouvrir un fichier Excel,si ce fichier est prés VBA EXCEL [ par scromania ] Bonjour, Je vous résume le problème,nous passons de 2000 Pro avec office 2003 sur du vista entreprise office 2007. Certain fichier excel possède des


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,622 sec (3)

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