Suite =E0 une r=E9installation de poste, une macro qui=20
fonctionn=E2t, plante avec une erreur 5 (Appel de proc=E9dure=20
ou argument incorrect).
Il plante sur l'instruction .Filename :
Private Sub Document_Close()
Selection.HomeKey Unit:=3DwdStory
Selection.MoveRight Unit:=3DwdCell, Count:=3D17
s =3D Selection
f =3D "C:\MES DOCUMENTS\" & s & ".doc"
Set fs =3D Application.FileSearch
With fs
Application.ScreenUpdating =3D False
.LookIn =3D "C:\MES DOCUMENTS"
.FileName =3D "*.doc"
If .Execute > 0 Then
For i =3D 1 To .FoundFiles.Count
Fic =3D .FoundFiles(i)
If Fic =3D f Then
MsgBox "R=E9f d=E9j=E0 existante" & Chr(13) _
& "changer le n=B0 d'identification"
Exit Sub
End If
Next i
End If
End With
If s =3D "X" Then Exit Sub
ActiveDocument.SaveAs FileName:=3D"C:\MES DOCUMENTS\" &=20
s & ".doc"
End Sub
Une id=E9e du probl=E8me ? Merci en tous cas,
Camille
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guy Moncomble
Bonjour à tous, dans le message : 099101c355b1$510c9fa0$,
| Bonjour, | | Suite à une réinstallation de poste, une macro qui | fonctionnât, plante avec une erreur 5 (Appel de procédure | ou argument incorrect). | Il plante sur l'instruction .Filename : | | Private Sub Document_Close() | Selection.HomeKey Unit:=wdStory | Selection.MoveRight Unit:=wdCell, Count: | s = Selection | f = "C:MES DOCUMENTS" & s & ".doc" | Set fs = Application.FileSearch | With fs | Application.ScreenUpdating = False | .LookIn = "C:MES DOCUMENTS" | .FileName = "*.doc" | If .Execute > 0 Then | For i = 1 To .FoundFiles.Count | Fic = .FoundFiles(i) | If Fic = f Then | MsgBox "Réf déjà existante" & Chr(13) _ | & "changer le n° d'identification" | Exit Sub | End If | Next i | End If | End With | If s = "X" Then Exit Sub | ActiveDocument.SaveAs FileName:="C:MES DOCUMENTS" & | s & ".doc" | End Sub | | Une idée du problème ? Merci en tous cas, | Camille
A priori, l'instruction dont tu parles n'est pas en cause, mais comme tu ne donnes pas le message d'erreur ! Cela dit je pense que le problème vient de ta sélection qui, apparemment se trouve dans un tableau. Dans ce cas, si la cellule est entièrement sélectionnée, il faut enlever la marque de fin de tableau, donc couper les deux derniers caractères de la sélection. -- A+
Quand on pend un raciste, il devient tout noir.
P.-S. Comme çà pour les strings tu connaitras toutes les ficelles (:-D
Bonjour à tous,
dans le message : 099101c355b1$510c9fa0$a301280a@phx.gbl,
| Bonjour,
|
| Suite à une réinstallation de poste, une macro qui
| fonctionnât, plante avec une erreur 5 (Appel de procédure
| ou argument incorrect).
| Il plante sur l'instruction .Filename :
|
| Private Sub Document_Close()
| Selection.HomeKey Unit:=wdStory
| Selection.MoveRight Unit:=wdCell, Count:
| s = Selection
| f = "C:MES DOCUMENTS" & s & ".doc"
| Set fs = Application.FileSearch
| With fs
| Application.ScreenUpdating = False
| .LookIn = "C:MES DOCUMENTS"
| .FileName = "*.doc"
| If .Execute > 0 Then
| For i = 1 To .FoundFiles.Count
| Fic = .FoundFiles(i)
| If Fic = f Then
| MsgBox "Réf déjà existante" & Chr(13) _
| & "changer le n° d'identification"
| Exit Sub
| End If
| Next i
| End If
| End With
| If s = "X" Then Exit Sub
| ActiveDocument.SaveAs FileName:="C:MES DOCUMENTS" &
| s & ".doc"
| End Sub
|
| Une idée du problème ? Merci en tous cas,
| Camille
A priori, l'instruction dont tu parles n'est pas en cause, mais comme tu
ne donnes pas le message d'erreur !
Cela dit je pense que le problème vient de ta sélection qui, apparemment
se trouve dans un tableau. Dans ce cas, si la cellule est entièrement
sélectionnée, il faut enlever la marque de fin de tableau, donc couper
les deux derniers caractères de la sélection.
--
A+
Quand on pend un raciste, il devient tout noir.
P.-S. Comme çà pour les strings tu connaitras toutes les ficelles (:-D
Bonjour à tous, dans le message : 099101c355b1$510c9fa0$,
| Bonjour, | | Suite à une réinstallation de poste, une macro qui | fonctionnât, plante avec une erreur 5 (Appel de procédure | ou argument incorrect). | Il plante sur l'instruction .Filename : | | Private Sub Document_Close() | Selection.HomeKey Unit:=wdStory | Selection.MoveRight Unit:=wdCell, Count: | s = Selection | f = "C:MES DOCUMENTS" & s & ".doc" | Set fs = Application.FileSearch | With fs | Application.ScreenUpdating = False | .LookIn = "C:MES DOCUMENTS" | .FileName = "*.doc" | If .Execute > 0 Then | For i = 1 To .FoundFiles.Count | Fic = .FoundFiles(i) | If Fic = f Then | MsgBox "Réf déjà existante" & Chr(13) _ | & "changer le n° d'identification" | Exit Sub | End If | Next i | End If | End With | If s = "X" Then Exit Sub | ActiveDocument.SaveAs FileName:="C:MES DOCUMENTS" & | s & ".doc" | End Sub | | Une idée du problème ? Merci en tous cas, | Camille
A priori, l'instruction dont tu parles n'est pas en cause, mais comme tu ne donnes pas le message d'erreur ! Cela dit je pense que le problème vient de ta sélection qui, apparemment se trouve dans un tableau. Dans ce cas, si la cellule est entièrement sélectionnée, il faut enlever la marque de fin de tableau, donc couper les deux derniers caractères de la sélection. -- A+
Quand on pend un raciste, il devient tout noir.
P.-S. Comme çà pour les strings tu connaitras toutes les ficelles (:-D
Geo
Bonsoir Guy
Bonjour à tous, A priori, l'instruction dont tu parles n'est pas en cause, mais comme
tu ne donnes pas le message d'erreur !
Si : erreur 5 etc., ce n'est pas très explicite et c'est effectivement une anomalie difficile à trouver. et si je me souviens bien elle n'apparaît pas sur la bonne ligne. Peut-être en ajoutant des debug.print pour isoler l'instruction qui plante.
Cela dit je pense que le problème vient de ta sélection qui, apparemment se trouve dans un tableau. Dans ce cas, si la cellule est
entièrement sélectionnée, il faut enlever la marque de fin de tableau, donc couper les deux derniers caractères de la sélection.
Et pour savoir si le fichier existe déjà, il y a quand même plus simple que de rechercher tous les fichiers word et vérifier s'ils portent le même nom. Si j'ai bien compris le but du code...
A+
Bonsoir Guy
Bonjour à tous,
A priori, l'instruction dont tu parles n'est pas en cause, mais
comme
tu ne donnes pas le message d'erreur !
Si : erreur 5 etc., ce n'est pas très explicite et c'est effectivement
une anomalie difficile à trouver.
et si je me souviens bien elle n'apparaît pas sur la bonne ligne.
Peut-être en ajoutant des debug.print pour isoler l'instruction qui
plante.
Cela dit je pense que le problème vient de ta sélection qui,
apparemment se trouve dans un tableau. Dans ce cas, si la cellule
est
entièrement sélectionnée, il faut enlever la marque de fin de
tableau, donc couper les deux derniers caractères de la sélection.
Et pour savoir si le fichier existe déjà, il y a quand même plus
simple que de rechercher tous les fichiers word et vérifier s'ils
portent le même nom.
Si j'ai bien compris le but du code...
Bonjour à tous, A priori, l'instruction dont tu parles n'est pas en cause, mais comme
tu ne donnes pas le message d'erreur !
Si : erreur 5 etc., ce n'est pas très explicite et c'est effectivement une anomalie difficile à trouver. et si je me souviens bien elle n'apparaît pas sur la bonne ligne. Peut-être en ajoutant des debug.print pour isoler l'instruction qui plante.
Cela dit je pense que le problème vient de ta sélection qui, apparemment se trouve dans un tableau. Dans ce cas, si la cellule est
entièrement sélectionnée, il faut enlever la marque de fin de tableau, donc couper les deux derniers caractères de la sélection.
Et pour savoir si le fichier existe déjà, il y a quand même plus simple que de rechercher tous les fichiers word et vérifier s'ils portent le même nom. Si j'ai bien compris le but du code...
A+
Ellimac
Bonjour,
L'erreur 5 ne pointe pas forcément sur la ligne fautive, c'est bien embêtant. Y a t'il une solution pour repérer la cause de l'erreur ? Je ne connais pas l'utilisation de Debug.print : si tu as des exemples je suis preneur.
Il y a d'autres moyens pour rechercher si un fichier existe : je veux bien aussi un exemple.
Contact :
Merci Camille
-----Message d'origine----- Bonsoir Guy
Bonjour à tous, A priori, l'instruction dont tu parles n'est pas en cause, mais
comme
tu ne donnes pas le message d'erreur !
Si : erreur 5 etc., ce n'est pas très explicite et c'est effectivement
une anomalie difficile à trouver. et si je me souviens bien elle n'apparaît pas sur la bonne ligne.
Peut-être en ajoutant des debug.print pour isoler l'instruction qui
plante.
Cela dit je pense que le problème vient de ta sélection qui,
apparemment se trouve dans un tableau. Dans ce cas, si la cellule
est
entièrement sélectionnée, il faut enlever la marque de fin de
tableau, donc couper les deux derniers caractères de la sélection.
Et pour savoir si le fichier existe déjà, il y a quand même plus
simple que de rechercher tous les fichiers word et vérifier s'ils
portent le même nom. Si j'ai bien compris le but du code...
A+
.
Bonjour,
L'erreur 5 ne pointe pas forcément sur la ligne fautive,
c'est bien embêtant. Y a t'il une solution pour repérer la
cause de l'erreur ? Je ne connais pas l'utilisation de
Debug.print : si tu as des exemples je suis preneur.
Il y a d'autres moyens pour rechercher si un fichier
existe : je veux bien aussi un exemple.
Contact : Ellimac_cremelier@hotmail.com
Merci
Camille
-----Message d'origine-----
Bonsoir Guy
Bonjour à tous,
A priori, l'instruction dont tu parles n'est pas en
cause, mais
comme
tu ne donnes pas le message d'erreur !
Si : erreur 5 etc., ce n'est pas très explicite et c'est
effectivement
une anomalie difficile à trouver.
et si je me souviens bien elle n'apparaît pas sur la
bonne ligne.
Peut-être en ajoutant des debug.print pour isoler
l'instruction qui
plante.
Cela dit je pense que le problème vient de ta sélection
qui,
apparemment se trouve dans un tableau. Dans ce cas, si
la cellule
est
entièrement sélectionnée, il faut enlever la marque de
fin de
tableau, donc couper les deux derniers caractères de la
sélection.
Et pour savoir si le fichier existe déjà, il y a quand
même plus
simple que de rechercher tous les fichiers word et
vérifier s'ils
portent le même nom.
Si j'ai bien compris le but du code...
L'erreur 5 ne pointe pas forcément sur la ligne fautive, c'est bien embêtant. Y a t'il une solution pour repérer la cause de l'erreur ? Je ne connais pas l'utilisation de Debug.print : si tu as des exemples je suis preneur.
Il y a d'autres moyens pour rechercher si un fichier existe : je veux bien aussi un exemple.
Contact :
Merci Camille
-----Message d'origine----- Bonsoir Guy
Bonjour à tous, A priori, l'instruction dont tu parles n'est pas en cause, mais
comme
tu ne donnes pas le message d'erreur !
Si : erreur 5 etc., ce n'est pas très explicite et c'est effectivement
une anomalie difficile à trouver. et si je me souviens bien elle n'apparaît pas sur la bonne ligne.
Peut-être en ajoutant des debug.print pour isoler l'instruction qui
plante.
Cela dit je pense que le problème vient de ta sélection qui,
apparemment se trouve dans un tableau. Dans ce cas, si la cellule
est
entièrement sélectionnée, il faut enlever la marque de fin de
tableau, donc couper les deux derniers caractères de la sélection.
Et pour savoir si le fichier existe déjà, il y a quand même plus
simple que de rechercher tous les fichiers word et vérifier s'ils
portent le même nom. Si j'ai bien compris le but du code...
A+
.
geo
Bonjour Camille
-----Message d'origine----- Bonjour,
L'erreur 5 ne pointe pas forcément sur la ligne fautive, c'est bien embêtant. Y a t'il une solution pour repérer la
cause de l'erreur ? Je ne connais pas l'utilisation de Debug.print : si tu as des exemples je suis preneur.
Guy répète inlassablement qu'il ne fait pas hésiter à user le bouton F1 pour consulter l'aide. il y a un exemple donné dans l'aide à "Print, méthode, exemple"
Ce qui n'est eput être pas très clair : Ces instructions ne sont intéressantes que quand on "surveille" le déroulement de la macro, donc surtout quand on la lance à la main dans VBE. Il faut que la fenêtre "Exécution" soit affichée. Debug.print affiche dans cette fenêtre ce qu'on lui a demandé, constante ou variable. Si tu mets : debug.print "ligne 20 " & f il va afficher cette valeur quand il sera passé sur cette instruction. Au pire tu mets un debug.print entre chaque ligne debug.print "ligne 1" debug.print "ligne 2" et tu sais exactement où ton programme est passé et par déduction l'endroit exact du blocage.
Il y a d'autres moyens pour rechercher si un fichier existe : je veux bien aussi un exemple.
Déja dans ton code tu recherche tous les fichiers en .doc pourquoi ne pas rechercher ton fichier seulement ? .FileName = s & ".doc" If .Execute > 0 Then 'existe déjà MsgBox "Réf déjà existante" & Chr(13) _ & "changer le n° d'identification" Exit Sub End If
Il y a aussi l'instruction Dir qui dans ton cas serait encore un peu plus simple, des exemples dans l'aide à : "Dir, fonction, exemple"
A+
Bonjour Camille
-----Message d'origine-----
Bonjour,
L'erreur 5 ne pointe pas forcément sur la ligne fautive,
c'est bien embêtant. Y a t'il une solution pour repérer
la
cause de l'erreur ? Je ne connais pas l'utilisation de
Debug.print : si tu as des exemples je suis preneur.
Guy répète inlassablement qu'il ne fait pas hésiter à user
le bouton F1 pour consulter l'aide.
il y a un exemple donné dans l'aide à
"Print, méthode, exemple"
Ce qui n'est eput être pas très clair :
Ces instructions ne sont intéressantes que quand
on "surveille" le déroulement de la macro, donc surtout
quand on la lance à la main dans VBE.
Il faut que la fenêtre "Exécution" soit affichée.
Debug.print affiche dans cette fenêtre ce qu'on lui a
demandé, constante ou variable.
Si tu mets :
debug.print "ligne 20 " & f
il va afficher cette valeur quand il sera passé sur cette
instruction.
Au pire tu mets un debug.print entre chaque ligne
debug.print "ligne 1"
debug.print "ligne 2"
et tu sais exactement où ton programme est passé et par
déduction l'endroit exact du blocage.
Il y a d'autres moyens pour rechercher si un fichier
existe : je veux bien aussi un exemple.
Déja dans ton code tu recherche tous les fichiers en .doc
pourquoi ne pas rechercher ton fichier seulement ?
.FileName = s & ".doc"
If .Execute > 0 Then 'existe déjà
MsgBox "Réf déjà existante" & Chr(13) _
& "changer le n° d'identification"
Exit Sub
End If
Il y a aussi l'instruction Dir qui dans ton cas serait
encore un peu plus simple,
des exemples dans l'aide à :
"Dir, fonction, exemple"
L'erreur 5 ne pointe pas forcément sur la ligne fautive, c'est bien embêtant. Y a t'il une solution pour repérer la
cause de l'erreur ? Je ne connais pas l'utilisation de Debug.print : si tu as des exemples je suis preneur.
Guy répète inlassablement qu'il ne fait pas hésiter à user le bouton F1 pour consulter l'aide. il y a un exemple donné dans l'aide à "Print, méthode, exemple"
Ce qui n'est eput être pas très clair : Ces instructions ne sont intéressantes que quand on "surveille" le déroulement de la macro, donc surtout quand on la lance à la main dans VBE. Il faut que la fenêtre "Exécution" soit affichée. Debug.print affiche dans cette fenêtre ce qu'on lui a demandé, constante ou variable. Si tu mets : debug.print "ligne 20 " & f il va afficher cette valeur quand il sera passé sur cette instruction. Au pire tu mets un debug.print entre chaque ligne debug.print "ligne 1" debug.print "ligne 2" et tu sais exactement où ton programme est passé et par déduction l'endroit exact du blocage.
Il y a d'autres moyens pour rechercher si un fichier existe : je veux bien aussi un exemple.
Déja dans ton code tu recherche tous les fichiers en .doc pourquoi ne pas rechercher ton fichier seulement ? .FileName = s & ".doc" If .Execute > 0 Then 'existe déjà MsgBox "Réf déjà existante" & Chr(13) _ & "changer le n° d'identification" Exit Sub End If
Il y a aussi l'instruction Dir qui dans ton cas serait encore un peu plus simple, des exemples dans l'aide à : "Dir, fonction, exemple"
A+
Guy Moncomble
Bonjour à tous, dans le message : 081401c3566e$d7d9c3b0$,
| Guy répète inlassablement qu'il ne fait pas hésiter à user | le bouton F1 pour consulter l'aide.
Je ne m'en lasse pas !
| Il y a aussi l'instruction Dir qui dans ton cas serait | encore un peu plus simple, | des exemples dans l'aide à : | "Dir, fonction, exemple"
Je crois qu'il est préférable d'utiliser FileDateTime qui, avec une bonne gestion d'erreurs, sait faire la différence entre un chemin erroné et un fichier inexistant. Pour l'utiliser avec Word97, il faut référencer Microsoft scripting. -- A+
Quand on pend un raciste, il devient tout noir.
Bonjour à tous,
dans le message : 081401c3566e$d7d9c3b0$a501280a@phx.gbl,
| Guy répète inlassablement qu'il ne fait pas hésiter à user
| le bouton F1 pour consulter l'aide.
Je ne m'en lasse pas !
| Il y a aussi l'instruction Dir qui dans ton cas serait
| encore un peu plus simple,
| des exemples dans l'aide à :
| "Dir, fonction, exemple"
Je crois qu'il est préférable d'utiliser FileDateTime qui, avec une
bonne gestion d'erreurs, sait faire la différence entre un chemin erroné
et un fichier inexistant. Pour l'utiliser avec Word97, il faut
référencer Microsoft scripting.
--
A+
Bonjour à tous, dans le message : 081401c3566e$d7d9c3b0$,
| Guy répète inlassablement qu'il ne fait pas hésiter à user | le bouton F1 pour consulter l'aide.
Je ne m'en lasse pas !
| Il y a aussi l'instruction Dir qui dans ton cas serait | encore un peu plus simple, | des exemples dans l'aide à : | "Dir, fonction, exemple"
Je crois qu'il est préférable d'utiliser FileDateTime qui, avec une bonne gestion d'erreurs, sait faire la différence entre un chemin erroné et un fichier inexistant. Pour l'utiliser avec Word97, il faut référencer Microsoft scripting. -- A+