OVH Cloud OVH Cloud

Ouh la la

4 réponses
Avatar
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à.

4 réponses

Avatar
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à.
Avatar
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à.





Avatar
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à.





Avatar
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à.