Une bonne série de vb se termine pour moi !
J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test()
Dim TabNomFic() As String
Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String
Dim appWord As Word.Application
Dim aMarks() As Object
Dim aBookmark As Bookmark
Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch
.NewSearch
.LookIn = "C:\Documents and Settings\fgonon\Mes documents\MesDoc\Part\InfoClient\"
.SearchSubFolders = True
.FileName = "*SGBDR*.doc"
If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count)
NbFichiersTrouves = .FoundFiles.Count
For i = 1 To NbFichiersTrouves
TabNomFic(i) = .FoundFiles(i)
Next i
End If
End With
For i = 1 To NbFichiersTrouves
bufNomEtChemin = "C:\Program Files\Microsoft Office\Office10\winword.exe " & TabNomFic(i)
With appWord
.Documents.Open(TabNomFic(i)).Activate
.Visible = True
.WindowState = wdWindowStateMaximize
.Activate
End With
Debug.Print TabNomFic(i)
CheminEtFichier = TabNomFic(i)
For k = Len(CheminEtFichier) To 1 Step -1
If Mid(CheminEtFichier, k, 1) = "\" Then Exit For
Next
NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier))
'Documents(NomFicSeul).Activate
NbBookmark = ActiveDocument.Bookmarks.Count
'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count
Debug.Print NbBookmark
========== C'est en dessous que mes problèmes de nom de fichier se retrouve.
= 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là
aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ????
= 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une
erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un
Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par
l'espion
=Où j'ai pas bon ?
===========
If NbBookmark >= 1 Then
ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
j = 0
ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks
Debug.Print j
aMarks(j) = aBookmark.Name
j = j + 1
Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark
End If
Next i
Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet.
J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans
ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution.
Merci d'avoir lu jusque là.
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
Bonsoir à tous, Oups mes problèmes de vb ne sont pas en cause dans mon absence de salutation de vous tous ce soir mes plutôt mes problème d'Oe qui me force à faire des copies de mes messages et là dans une copie, ouh la la le bonsoir à la trappe l'interface de saisie de vb n'a pas les mêmes problèmes donc mes erreurs ne doivent pas venir de là. Merci d'avoir lu jusque là.
Bonsoir à tous,
Oups mes problèmes de vb ne sont pas en cause dans mon absence de salutation de vous tous ce soir mes plutôt mes problème d'Oe qui
me force à faire des copies de mes messages et là dans une copie, ouh la la le bonsoir à la trappe l'interface de saisie de vb n'a
pas les mêmes problèmes donc mes erreurs ne doivent pas venir de là.
Merci d'avoir lu jusque là.
Bonsoir à tous, Oups mes problèmes de vb ne sont pas en cause dans mon absence de salutation de vous tous ce soir mes plutôt mes problème d'Oe qui me force à faire des copies de mes messages et là dans une copie, ouh la la le bonsoir à la trappe l'interface de saisie de vb n'a pas les mêmes problèmes donc mes erreurs ne doivent pas venir de là. Merci d'avoir lu jusque là.
Anacoluthe
Bonjour !
Pas eu le temps de passer cette macro au scanner mais l'erreur de fichier fait penser que le tableau TabNomFic() est vide ou que NbFichiersTrouves est à zéro ...
Anacoluthe « L'expérience est le nom que chacun donne à ses erreurs. » - Oscar WILDE
'@pollo' nous a écrit ...
Une bonne série de vb se termine pour moi ! J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test() Dim TabNomFic() As String Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String Dim appWord As Word.Application Dim aMarks() As Object Dim aBookmark As Bookmark Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch .NewSearch .LookIn = "C:Documents and SettingsfgononMes documentsMesDocPartInfoClient" .SearchSubFolders = True .FileName = "*SGBDR*.doc" If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count) NbFichiersTrouves = .FoundFiles.Count For i = 1 To NbFichiersTrouves TabNomFic(i) = .FoundFiles(i) Next i End If End With For i = 1 To NbFichiersTrouves bufNomEtChemin = "C:Program FilesMicrosoft OfficeOffice10winword.exe " & TabNomFic(i) With appWord .Documents.Open(TabNomFic(i)).Activate .Visible = True .WindowState = wdWindowStateMaximize .Activate End With
Debug.Print TabNomFic(i) CheminEtFichier = TabNomFic(i) For k = Len(CheminEtFichier) To 1 Step -1 If Mid(CheminEtFichier, k, 1) = "" Then Exit For Next NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier)) 'Documents(NomFicSeul).Activate NbBookmark = ActiveDocument.Bookmarks.Count 'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count Debug.Print NbBookmark ========== C'est en dessous que mes problèmes de nom de fichier se retrouve. = 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ???? = 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par l'espion =Où j'ai pas bon ? ========== > If NbBookmark >= 1 Then ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1) j = 0 ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks Debug.Print j aMarks(j) = aBookmark.Name j = j + 1 Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark End If
Next i Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet. J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution. Merci d'avoir lu jusque là.
Bonjour !
Pas eu le temps de passer cette macro au scanner mais l'erreur
de fichier fait penser que le tableau TabNomFic() est vide
ou que NbFichiersTrouves est à zéro ...
Anacoluthe
« L'expérience est le nom que chacun donne à ses erreurs. »
- Oscar WILDE
'@pollo' nous a écrit ...
Une bonne série de vb se termine pour moi !
J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test()
Dim TabNomFic() As String
Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String
Dim appWord As Word.Application
Dim aMarks() As Object
Dim aBookmark As Bookmark
Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch
.NewSearch
.LookIn = "C:Documents and SettingsfgononMes documentsMesDocPartInfoClient"
.SearchSubFolders = True
.FileName = "*SGBDR*.doc"
If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count)
NbFichiersTrouves = .FoundFiles.Count
For i = 1 To NbFichiersTrouves
TabNomFic(i) = .FoundFiles(i)
Next i
End If
End With
For i = 1 To NbFichiersTrouves
bufNomEtChemin = "C:Program FilesMicrosoft OfficeOffice10winword.exe " & TabNomFic(i)
With appWord
.Documents.Open(TabNomFic(i)).Activate
.Visible = True
.WindowState = wdWindowStateMaximize
.Activate
End With
Debug.Print TabNomFic(i)
CheminEtFichier = TabNomFic(i)
For k = Len(CheminEtFichier) To 1 Step -1
If Mid(CheminEtFichier, k, 1) = "" Then Exit For
Next
NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier))
'Documents(NomFicSeul).Activate
NbBookmark = ActiveDocument.Bookmarks.Count
'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count
Debug.Print NbBookmark
========== C'est en dessous que mes problèmes de nom de fichier se retrouve.
= 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là
aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ????
= 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une
erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un
Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par
l'espion
=Où j'ai pas bon ?
========== > If NbBookmark >= 1 Then
ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
j = 0
ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks
Debug.Print j
aMarks(j) = aBookmark.Name
j = j + 1
Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark
End If
Next i
Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet.
J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans
ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution.
Merci d'avoir lu jusque là.
Pas eu le temps de passer cette macro au scanner mais l'erreur de fichier fait penser que le tableau TabNomFic() est vide ou que NbFichiersTrouves est à zéro ...
Anacoluthe « L'expérience est le nom que chacun donne à ses erreurs. » - Oscar WILDE
'@pollo' nous a écrit ...
Une bonne série de vb se termine pour moi ! J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test() Dim TabNomFic() As String Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String Dim appWord As Word.Application Dim aMarks() As Object Dim aBookmark As Bookmark Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch .NewSearch .LookIn = "C:Documents and SettingsfgononMes documentsMesDocPartInfoClient" .SearchSubFolders = True .FileName = "*SGBDR*.doc" If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count) NbFichiersTrouves = .FoundFiles.Count For i = 1 To NbFichiersTrouves TabNomFic(i) = .FoundFiles(i) Next i End If End With For i = 1 To NbFichiersTrouves bufNomEtChemin = "C:Program FilesMicrosoft OfficeOffice10winword.exe " & TabNomFic(i) With appWord .Documents.Open(TabNomFic(i)).Activate .Visible = True .WindowState = wdWindowStateMaximize .Activate End With
Debug.Print TabNomFic(i) CheminEtFichier = TabNomFic(i) For k = Len(CheminEtFichier) To 1 Step -1 If Mid(CheminEtFichier, k, 1) = "" Then Exit For Next NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier)) 'Documents(NomFicSeul).Activate NbBookmark = ActiveDocument.Bookmarks.Count 'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count Debug.Print NbBookmark ========== C'est en dessous que mes problèmes de nom de fichier se retrouve. = 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ???? = 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par l'espion =Où j'ai pas bon ? ========== > If NbBookmark >= 1 Then ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1) j = 0 ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks Debug.Print j aMarks(j) = aBookmark.Name j = j + 1 Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark End If
Next i Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet. J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution. Merci d'avoir lu jusque là.
Anacoluthe
Bonjour !
Suite. À part Dim aMarks() As Object : c'est un tableau de chaînes) j = j + 1 : incrémenter j après sélection de aMarks(j) le manque de test N=0 pour des For i = 1 To N et le recours pas bien compris d'une appWord dans Word tout ça fonctionne chez moi... :-)
Anacoluthe « L'expérience est le nom que chacun donne à ses erreurs. » - Oscar WILDE
'@pollo' nous a écrit ...
Une bonne série de vb se termine pour moi ! J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test() Dim TabNomFic() As String Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String Dim appWord As Word.Application Dim aMarks() As Object Dim aBookmark As Bookmark Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch .NewSearch .LookIn = "C:Documents and SettingsfgononMes documentsMesDocPartInfoClient" .SearchSubFolders = True .FileName = "*SGBDR*.doc" If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count) NbFichiersTrouves = .FoundFiles.Count For i = 1 To NbFichiersTrouves TabNomFic(i) = .FoundFiles(i) Next i End If End With For i = 1 To NbFichiersTrouves bufNomEtChemin = "C:Program FilesMicrosoft OfficeOffice10winword.exe " & TabNomFic(i) With appWord .Documents.Open(TabNomFic(i)).Activate .Visible = True .WindowState = wdWindowStateMaximize .Activate End With
Debug.Print TabNomFic(i) CheminEtFichier = TabNomFic(i) For k = Len(CheminEtFichier) To 1 Step -1 If Mid(CheminEtFichier, k, 1) = "" Then Exit For Next NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier)) 'Documents(NomFicSeul).Activate NbBookmark = ActiveDocument.Bookmarks.Count 'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count Debug.Print NbBookmark ========== C'est en dessous que mes problèmes de nom de fichier se retrouve. = 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ???? = 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par l'espion =Où j'ai pas bon ? ========== > If NbBookmark >= 1 Then ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1) j = 0 ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks Debug.Print j aMarks(j) = aBookmark.Name j = j + 1 Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark End If
Next i Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet. J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution. Merci d'avoir lu jusque là.
Bonjour !
Suite. À part
Dim aMarks() As Object : c'est un tableau de chaînes)
j = j + 1 : incrémenter j après sélection de aMarks(j)
le manque de test N=0 pour des For i = 1 To N
et le recours pas bien compris d'une appWord dans Word
tout ça fonctionne chez moi... :-)
Anacoluthe
« L'expérience est le nom que chacun donne à ses erreurs. »
- Oscar WILDE
'@pollo' nous a écrit ...
Une bonne série de vb se termine pour moi !
J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test()
Dim TabNomFic() As String
Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String
Dim appWord As Word.Application
Dim aMarks() As Object
Dim aBookmark As Bookmark
Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch
.NewSearch
.LookIn = "C:Documents and SettingsfgononMes documentsMesDocPartInfoClient"
.SearchSubFolders = True
.FileName = "*SGBDR*.doc"
If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count)
NbFichiersTrouves = .FoundFiles.Count
For i = 1 To NbFichiersTrouves
TabNomFic(i) = .FoundFiles(i)
Next i
End If
End With
For i = 1 To NbFichiersTrouves
bufNomEtChemin = "C:Program FilesMicrosoft OfficeOffice10winword.exe " & TabNomFic(i)
With appWord
.Documents.Open(TabNomFic(i)).Activate
.Visible = True
.WindowState = wdWindowStateMaximize
.Activate
End With
Debug.Print TabNomFic(i)
CheminEtFichier = TabNomFic(i)
For k = Len(CheminEtFichier) To 1 Step -1
If Mid(CheminEtFichier, k, 1) = "" Then Exit For
Next
NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier))
'Documents(NomFicSeul).Activate
NbBookmark = ActiveDocument.Bookmarks.Count
'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count
Debug.Print NbBookmark
========== C'est en dessous que mes problèmes de nom de fichier se retrouve.
= 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là
aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ????
= 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une
erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un
Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par
l'espion
=Où j'ai pas bon ?
========== > If NbBookmark >= 1 Then
ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
j = 0
ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks
Debug.Print j
aMarks(j) = aBookmark.Name
j = j + 1
Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark
End If
Next i
Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet.
J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans
ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution.
Merci d'avoir lu jusque là.
Suite. À part Dim aMarks() As Object : c'est un tableau de chaînes) j = j + 1 : incrémenter j après sélection de aMarks(j) le manque de test N=0 pour des For i = 1 To N et le recours pas bien compris d'une appWord dans Word tout ça fonctionne chez moi... :-)
Anacoluthe « L'expérience est le nom que chacun donne à ses erreurs. » - Oscar WILDE
'@pollo' nous a écrit ...
Une bonne série de vb se termine pour moi ! J'essaye de mettre au point un truc un tout petit peu plus compliqué que ci-dessous et je bute, je bute :
Sub Test() Dim TabNomFic() As String Dim bufNomEtChemin, NomFicSeul, CheminEtFichier As String Dim appWord As Word.Application Dim aMarks() As Object Dim aBookmark As Bookmark Dim i, j, k, NbFichiersTrouves, NbBookmark As Long
Set appWord = CreateObject("Word.Application")
With Application.FileSearch .NewSearch .LookIn = "C:Documents and SettingsfgononMes documentsMesDocPartInfoClient" .SearchSubFolders = True .FileName = "*SGBDR*.doc" If .Execute > 0 Then
ReDim TabNomFic(.FoundFiles.Count) NbFichiersTrouves = .FoundFiles.Count For i = 1 To NbFichiersTrouves TabNomFic(i) = .FoundFiles(i) Next i End If End With For i = 1 To NbFichiersTrouves bufNomEtChemin = "C:Program FilesMicrosoft OfficeOffice10winword.exe " & TabNomFic(i) With appWord .Documents.Open(TabNomFic(i)).Activate .Visible = True .WindowState = wdWindowStateMaximize .Activate End With
Debug.Print TabNomFic(i) CheminEtFichier = TabNomFic(i) For k = Len(CheminEtFichier) To 1 Step -1 If Mid(CheminEtFichier, k, 1) = "" Then Exit For Next NomFicSeul = Mid(CheminEtFichier, k + 1, Len(CheminEtFichier)) 'Documents(NomFicSeul).Activate NbBookmark = ActiveDocument.Bookmarks.Count 'NbBookmark = Documents(TabNomFic(i)).Bookmarks.Count Debug.Print NbBookmark ========== C'est en dessous que mes problèmes de nom de fichier se retrouve. = 1) Mon premier fichier n'a pas de signet, or le logiciel trouve 1. J'avais donc remplacé NbBookmark >= 1 par NbBookmark > 1. Là aucun des fichiers ne rentrait dans la boucle or il y en a certain qui ont plus de 5 signets ???? = 2) en remettant NbBookmark >= 1 dès le premier fichier. N'ayant pas de signet je rentre dans le if et sur mon redim j'ai une erreur 4160 que j'avais déjà eu dans une variante où je voulais m'assurer de bien manipuler le bon fichier et je faisait un Documents(NomDuFichierStockerDansUneVariableString).activate avec NomDuFichierStockerDansUneVariableString="Test.doc" vérifier par l'espion =Où j'ai pas bon ? ========== > If NbBookmark >= 1 Then ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1) j = 0 ReDim aMarks(Documents(TabNomFic(i)).Bookmarks.Count - 1)
For Each aBookmark In Documents(TabNomFic(i)).Bookmarks Debug.Print j aMarks(j) = aBookmark.Name j = j + 1 Selection.GoTo What:=wdGoToBookmark, Name:=aMarks(j)
Next aBookmark End If
Next i Set appWord = Nothing
End Sub
Ca me fait une erreur 4160 j'ai vu très peu de contribution à ce sujet. J'ai trouvé que deux quelques contribution donc certaines d'un éminent contributeur du forum qui se contente de gérer l'erreur dans ce cas là en sortant de l'appli. Je ne comprend pas. NomFicSeul peut bien contenir "Test.doc" j'ai toujours 4160...
Merci de toute contribution. Merci d'avoir lu jusque là.
Bonsoir à tous, bonsoir et merci à toi Anacoluthe,
Bonjour ! Oui, oui je croyais m'être fais comprendre mais bon je suis encore confu.
Suite. À part Dim aMarks() As Object : c'est un tableau de chaînes) j = j + 1 : incrémenter j après sélection de aMarks(j) le manque de test N=0 pour des For i = 1 To N Ouais c'était tout plein d'anerie ce code, j'en ai même peut être laissé...
Pas optimisé pour deux sous. Oui, le test des cas N=0, sera à faire !
Seulement tout ça ne règlais pas mon problème d'erreur 4160
et le recours pas bien compris d'une appWord dans Word Et même préjudiciable, hein Anacoluthe !
Moi qui craignais que ça vienne de mes longueurs déraisonnable de nom de fichier, j'ai cherché, cherché ou il ne fallait pas ! Quand à l'appWord, je suis loin de bien comprendre le machin, mais là en me faisant taper sur les doigts ça aide !
Anacoluthe « L'expérience est le nom que chacun donne à ses erreurs. » - Oscar WILDE
Oui, et les aneries, ça permet de devenir un âne !? On dit bien que c'est en forgeant que l'on devient forgerons...
Ouais je sais, il faut vouloir faire les aneries ! mais moi elle me viennent tout de seule dans mon code, ça compte pas alors ! ;-)
Bon y a encore du boulot, je m'en doutais remarquez bien.
En tout cas... merci beaucoup... encore !
Merci d'avoir lu jusque là.
Bonsoir à tous, bonsoir et merci à toi Anacoluthe,
Bonjour !
Oui, oui je croyais m'être fais comprendre mais bon je suis encore confu.
Suite. À part
Dim aMarks() As Object : c'est un tableau de chaînes)
j = j + 1 : incrémenter j après sélection de aMarks(j)
le manque de test N=0 pour des For i = 1 To N
Ouais c'était tout plein d'anerie ce code, j'en ai même peut être laissé...
Pas optimisé pour deux sous. Oui, le test des cas N=0, sera à faire !
Seulement tout ça ne règlais pas mon problème d'erreur 4160
et le recours pas bien compris d'une appWord dans Word
Et même préjudiciable, hein Anacoluthe !
Moi qui craignais que ça vienne de mes longueurs déraisonnable de nom de fichier, j'ai cherché, cherché ou il ne fallait pas !
Quand à l'appWord, je suis loin de bien comprendre le machin, mais là en me faisant taper sur les doigts ça aide !
Anacoluthe
« L'expérience est le nom que chacun donne à ses erreurs. »
- Oscar WILDE
Oui, et les aneries, ça permet de devenir un âne !?
On dit bien que c'est en forgeant que l'on devient forgerons...
Ouais je sais, il faut vouloir faire les aneries ! mais moi elle me viennent tout de seule dans mon code, ça compte pas alors ! ;-)
Bon y a encore du boulot, je m'en doutais remarquez bien.
Bonsoir à tous, bonsoir et merci à toi Anacoluthe,
Bonjour ! Oui, oui je croyais m'être fais comprendre mais bon je suis encore confu.
Suite. À part Dim aMarks() As Object : c'est un tableau de chaînes) j = j + 1 : incrémenter j après sélection de aMarks(j) le manque de test N=0 pour des For i = 1 To N Ouais c'était tout plein d'anerie ce code, j'en ai même peut être laissé...
Pas optimisé pour deux sous. Oui, le test des cas N=0, sera à faire !
Seulement tout ça ne règlais pas mon problème d'erreur 4160
et le recours pas bien compris d'une appWord dans Word Et même préjudiciable, hein Anacoluthe !
Moi qui craignais que ça vienne de mes longueurs déraisonnable de nom de fichier, j'ai cherché, cherché ou il ne fallait pas ! Quand à l'appWord, je suis loin de bien comprendre le machin, mais là en me faisant taper sur les doigts ça aide !
Anacoluthe « L'expérience est le nom que chacun donne à ses erreurs. » - Oscar WILDE
Oui, et les aneries, ça permet de devenir un âne !? On dit bien que c'est en forgeant que l'on devient forgerons...
Ouais je sais, il faut vouloir faire les aneries ! mais moi elle me viennent tout de seule dans mon code, ça compte pas alors ! ;-)
Bon y a encore du boulot, je m'en doutais remarquez bien.