Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ben poukoi "la boucle"

16 réponses
Avatar
tip.tiptop
Bonsoir tout le monde,
j'utilise dans mon code une boucle qui me permet d'ouvrir tous les fichiers
de type *.xls d'un répertoire.
Cette boucle fonctionne parfaitement tant que mon code sort de la boucle
sans modifier les fichiers aouverts.
Sortie de la boucle par la commande: Windows(f).Close


Mais voila le hic, lorsque j'utilise la même boucle pour ouvrir tous les
fichiers de type *.xls d'un répertoire et souhaite enregistrer le fichier
ouvert la boucle boucle indéfinement.

il semble que le fichier ouvert et refermé soient différent malgré qu'ils
portent le même nom.

D'ou la boucle infini.

Comment résoudre ce problème????



ci dessous les lignes de codes qui fonctionnent



par avnace merci.



Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub



Mainteant celles qui ne fonctionnent pas
Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

ActiveWorkbook.Save

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub

10 réponses

1 2
Avatar
Daniel
Bonjour.
Le problème vient sans doute de "MON CODE". Peux-tu poster cette partie du
code ?
Cordialement.
Daniel
"tip.tiptop" a écrit dans le message de news:
46928e59$0$22413$
Bonsoir tout le monde,
j'utilise dans mon code une boucle qui me permet d'ouvrir tous les
fichiers de type *.xls d'un répertoire.
Cette boucle fonctionne parfaitement tant que mon code sort de la boucle
sans modifier les fichiers aouverts.
Sortie de la boucle par la commande: Windows(f).Close


Mais voila le hic, lorsque j'utilise la même boucle pour ouvrir tous les
fichiers de type *.xls d'un répertoire et souhaite enregistrer le fichier
ouvert la boucle boucle indéfinement.

il semble que le fichier ouvert et refermé soient différent malgré qu'ils
portent le même nom.

D'ou la boucle infini.

Comment résoudre ce problème????



ci dessous les lignes de codes qui fonctionnent



par avnace merci.



Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub



Mainteant celles qui ne fonctionnent pas
Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

ActiveWorkbook.Save

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub




Avatar
tip.tiptop
Bonjour.
Le problème vient sans doute de "MON CODE". Peux-tu poster cette partie du
code ?
Cordialement.
Daniel
En fait le code est le même.

La seule difference et la facon dont je sort de la boucle.
soit la dernière instruiction avant la sortie est :
Windows(f).Close
La tout se passe corrcetement
par contre lorsque la dernière action avant la sortie de la boucle est:
ActivateWorkbook.save
Windows(f).Close
je reboucle indefiniment


"tip.tiptop" a écrit dans le message de news:
46928e59$0$22413$
Bonsoir tout le monde,
j'utilise dans mon code une boucle qui me permet d'ouvrir tous les
fichiers de type *.xls d'un répertoire.
Cette boucle fonctionne parfaitement tant que mon code sort de la boucle
sans modifier les fichiers aouverts.
Sortie de la boucle par la commande: Windows(f).Close


Mais voila le hic, lorsque j'utilise la même boucle pour ouvrir tous les
fichiers de type *.xls d'un répertoire et souhaite enregistrer le fichier
ouvert la boucle boucle indéfinement.

il semble que le fichier ouvert et refermé soient différent malgré qu'ils
portent le même nom.

D'ou la boucle infini.

Comment résoudre ce problème????



ci dessous les lignes de codes qui fonctionnent



par avnace merci.



Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub



Mainteant celles qui ne fonctionnent pas
Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

ActiveWorkbook.Save

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub








Avatar
Daniel
J'ai testé ton code et je ne boucle pas.
Daniel
La seule difference et la facon dont je sort de la boucle.
soit la dernière instruiction avant la sortie est :
Windows(f).Close
La tout se passe corrcetement
par contre lorsque la dernière action avant la sortie de la boucle est:
ActivateWorkbook.save
Windows(f).Close
je reboucle indefiniment


"tip.tiptop" a écrit dans le message de news:
46928e59$0$22413$
Bonsoir tout le monde,
j'utilise dans mon code une boucle qui me permet d'ouvrir tous les
fichiers de type *.xls d'un répertoire.
Cette boucle fonctionne parfaitement tant que mon code sort de la boucle
sans modifier les fichiers aouverts.
Sortie de la boucle par la commande: Windows(f).Close


Mais voila le hic, lorsque j'utilise la même boucle pour ouvrir tous les
fichiers de type *.xls d'un répertoire et souhaite enregistrer le
fichier ouvert la boucle boucle indéfinement.

il semble que le fichier ouvert et refermé soient différent malgré
qu'ils portent le même nom.

D'ou la boucle infini.

Comment résoudre ce problème????



ci dessous les lignes de codes qui fonctionnent



par avnace merci.



Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub



Mainteant celles qui ne fonctionnent pas
Sub Macro3()

'

'***************************************************************************

'Ouvrir tous les fichiers de type .xls d'un répertoire donnée

'***************************************************************************

Application.GetOpenFilename

f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Windows(f).Activate



MON CODE

MON CODE



Application.DisplayAlerts = False

ActiveWorkbook.Save

Windows(f).Close

Application.DisplayAlerts = True

'***************************************************************************

'Ouvrir classeur suivant

'***************************************************************************

f = Dir

'***************************************************************************

'Fin de boucle ouverture classeurs

'***************************************************************************

Loop

End Sub









Avatar
lSteph
Bonjour,

Oui, mais peux tu qd même donner le contenu de MONCODE
cela pourrait influer sur cette différence dans un cas et pas dans
l'autre.

A priori je vois déjà d'autres choses ainsi:
Un objet folder te permet une fenêtre de choix de répertoire ( si cela
te plait)
pour remplacer avantageusement le getopenfilename
(je l'ai recopié tel que en Public comme cela tu peux aussi appeler
choixrep depuis un userform,comme c'est mon cas)
Pour ta macro:
Quand tu ouvres f il devient automatiquement activeworkbook
si le "moncode" n'en change pas, il le reste.
si tu mets true derrière activeworkbook.close il sera fermé et sauvé
sans alerts

donc voici après le choix de rep ta macro ainsi révisée:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dans un
module standard
Public myPath
Public Sub Choixrep()
Dim objShell As Object, objFolder As Object, message As String
message = "Vous pouvez choisir un répertoire ou même en créer un" &
vbCrLf _
& "il sera choisi pour l'execution de la macro"

On Error Resume Next
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, message, 0, "c:")
myPath = objFolder.parentfolder.ParseName(objFolder.Title).Path
If Len(myPath) = 0 Then
MsgBox "Opération de choix abandonnée": End
Else
MsgBox myPath
End If
End Sub
'''''''''''''''''''''''''''''''''''''
Sub Mamacro()
Dim f As String
Call Choixrep

ChDir myPath
f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Call moncode 'nom sans espace

ActiveWorkbook.Close True

f = Dir

Loop

End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Cdlt
'LSteph
Avatar
tip.tiptop
voici mon code au complet:

Disons que dans le répertoire en question il y a un seul fichier nommé
Aix.xls
cas numéro 1 lorsque je réponds non la question voulez vous enregistre
les modifications apportées à Aix.xls ? je sors de ma macro. Ok

si je réponds oui je boucle et ouvre à nouveau le fichier Aix.xls.



Sub Macro3()
'******************************************************************************
'Ouvrir tous les fichiers .xls d'un répertoire donnée
'******************************************************************************
Application.GetOpenFilename
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open f, UpdateLinks:=0
'******************************************************************************
'Active le classeur f ainsi que la feuille I du classeur
'******************************************************************************
Windows(f).Activate
'******************************************************************************
'******************************************************************************
'******************************************************************************
For Each sh In Sheets
Nom = sh.Name
'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele et effectfs"
'*********************************************************
If Nom <> " Effectifs" Then
If Nom <> " Répertoire" Then
Windows(f).Activate
Sheets(Nom).Select
'******************************************************************************
'MEF feuilles
'******************************************************************************
ActiveSheet.Unprotect
Range("O7:O16").Select
Selection.NumberFormat = "General"
Range("P7:P16").Select
Selection.NumberFormat = "m/d/yyyy"
Range("O6:P16").Select
Selection.Copy
Range("O17").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O28").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O39").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O50").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O61").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
'******************************************************************************
'Selectionner feuille suivante du classeur
'******************************************************************************
End If
End If
Next
Windows(f).Close
'******************************************************************************
'Ouvrir classeur suivant
'******************************************************************************
f = Dir
'******************************************************************************
'Fin de boucle ouverture classeurs
'******************************************************************************
Loop
End Sub

Bonjour,

Oui, mais peux tu qd même donner le contenu de MONCODE
cela pourrait influer sur cette différence dans un cas et pas dans
l'autre.

A priori je vois déjà d'autres choses ainsi:
Un objet folder te permet une fenêtre de choix de répertoire ( si cela
te plait)
pour remplacer avantageusement le getopenfilename
(je l'ai recopié tel que en Public comme cela tu peux aussi appeler
choixrep depuis un userform,comme c'est mon cas)
Pour ta macro:
Quand tu ouvres f il devient automatiquement activeworkbook
si le "moncode" n'en change pas, il le reste.
si tu mets true derrière activeworkbook.close il sera fermé et sauvé
sans alerts

donc voici après le choix de rep ta macro ainsi révisée:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dans un
module standard
Public myPath
Public Sub Choixrep()
Dim objShell As Object, objFolder As Object, message As String
message = "Vous pouvez choisir un répertoire ou même en créer un" &
vbCrLf _
& "il sera choisi pour l'execution de la macro"

On Error Resume Next
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, message, 0, "c:")
myPath = objFolder.parentfolder.ParseName(objFolder.Title).Path
If Len(myPath) = 0 Then
MsgBox "Opération de choix abandonnée": End
Else
MsgBox myPath
End If
End Sub
'''''''''''''''''''''''''''''''''''''
Sub Mamacro()
Dim f As String
Call Choixrep

ChDir myPath
f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Call moncode 'nom sans espace

ActiveWorkbook.Close True

f = Dir

Loop

End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Cdlt
'LSteph




Avatar
Daniel
J'ai testé ton code et je sors normalement de la boucle en fin de traitement
? Quelle est ta veersion d'Excel ?
Daniel
"tip.tiptop" a écrit dans le message de news:
f6vju2$4g8$
voici mon code au complet:

Disons que dans le répertoire en question il y a un seul fichier nommé
Aix.xls
cas numéro 1 lorsque je réponds non la question voulez vous enregistre les
modifications apportées à Aix.xls ? je sors de ma macro. Ok

si je réponds oui je boucle et ouvre à nouveau le fichier Aix.xls.



Sub Macro3()
'******************************************************************************
'Ouvrir tous les fichiers .xls d'un répertoire donnée
'******************************************************************************
Application.GetOpenFilename
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open f, UpdateLinks:=0
'******************************************************************************
'Active le classeur f ainsi que la feuille I du classeur
'******************************************************************************
Windows(f).Activate
'******************************************************************************
'******************************************************************************
'******************************************************************************
For Each sh In Sheets
Nom = sh.Name
'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele et effectfs"
'*********************************************************
If Nom <> " Effectifs" Then
If Nom <> " Répertoire" Then
Windows(f).Activate
Sheets(Nom).Select
'******************************************************************************
'MEF feuilles
'******************************************************************************
ActiveSheet.Unprotect
Range("O7:O16").Select
Selection.NumberFormat = "General"
Range("P7:P16").Select
Selection.NumberFormat = "m/d/yyyy"
Range("O6:P16").Select
Selection.Copy
Range("O17").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O28").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O39").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O50").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O61").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
'******************************************************************************
'Selectionner feuille suivante du classeur
'******************************************************************************
End If
End If
Next
Windows(f).Close
'******************************************************************************
'Ouvrir classeur suivant
'******************************************************************************
f = Dir
'******************************************************************************
'Fin de boucle ouverture classeurs
'******************************************************************************
Loop
End Sub

Bonjour,

Oui, mais peux tu qd même donner le contenu de MONCODE
cela pourrait influer sur cette différence dans un cas et pas dans
l'autre.

A priori je vois déjà d'autres choses ainsi:
Un objet folder te permet une fenêtre de choix de répertoire ( si cela
te plait)
pour remplacer avantageusement le getopenfilename
(je l'ai recopié tel que en Public comme cela tu peux aussi appeler
choixrep depuis un userform,comme c'est mon cas)
Pour ta macro:
Quand tu ouvres f il devient automatiquement activeworkbook
si le "moncode" n'en change pas, il le reste.
si tu mets true derrière activeworkbook.close il sera fermé et sauvé
sans alerts

donc voici après le choix de rep ta macro ainsi révisée:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dans un
module standard
Public myPath
Public Sub Choixrep()
Dim objShell As Object, objFolder As Object, message As String
message = "Vous pouvez choisir un répertoire ou même en créer un" &
vbCrLf _
& "il sera choisi pour l'execution de la macro"

On Error Resume Next
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, message, 0, "c:")
myPath = objFolder.parentfolder.ParseName(objFolder.Title).Path
If Len(myPath) = 0 Then
MsgBox "Opération de choix abandonnée": End
Else
MsgBox myPath
End If
End Sub
'''''''''''''''''''''''''''''''''''''
Sub Mamacro()
Dim f As String
Call Choixrep

ChDir myPath
f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Call moncode 'nom sans espace

ActiveWorkbook.Close True

f = Dir

Loop

End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Cdlt
'LSteph





Avatar
tip.tiptop
office Excel 2003 SP2.
J'ai testé ton code et je sors normalement de la boucle en fin de traitement
? Quelle est ta veersion d'Excel ?
Daniel
même quand tu réponds oui???

"tip.tiptop" a écrit dans le message de news:
f6vju2$4g8$
voici mon code au complet:

Disons que dans le répertoire en question il y a un seul fichier nommé
Aix.xls
cas numéro 1 lorsque je réponds non la question voulez vous enregistre les
modifications apportées à Aix.xls ? je sors de ma macro. Ok

si je réponds oui je boucle et ouvre à nouveau le fichier Aix.xls.



Sub Macro3()
'******************************************************************************
'Ouvrir tous les fichiers .xls d'un répertoire donnée
'******************************************************************************
Application.GetOpenFilename
f = Dir("*.xls")
Do While Len(f) > 0
Workbooks.Open f, UpdateLinks:=0
'******************************************************************************
'Active le classeur f ainsi que la feuille I du classeur
'******************************************************************************
Windows(f).Activate
'******************************************************************************
'******************************************************************************
'******************************************************************************
For Each sh In Sheets
Nom = sh.Name
'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele et effectfs"
'*********************************************************
If Nom <> " Effectifs" Then
If Nom <> " Répertoire" Then
Windows(f).Activate
Sheets(Nom).Select
'******************************************************************************
'MEF feuilles
'******************************************************************************
ActiveSheet.Unprotect
Range("O7:O16").Select
Selection.NumberFormat = "General"
Range("P7:P16").Select
Selection.NumberFormat = "m/d/yyyy"
Range("O6:P16").Select
Selection.Copy
Range("O17").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O28").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O39").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O50").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Range("O61").Select
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
'******************************************************************************
'Selectionner feuille suivante du classeur
'******************************************************************************
End If
End If
Next
Windows(f).Close
'******************************************************************************
'Ouvrir classeur suivant
'******************************************************************************
f = Dir
'******************************************************************************
'Fin de boucle ouverture classeurs
'******************************************************************************
Loop
End Sub

Bonjour,

Oui, mais peux tu qd même donner le contenu de MONCODE
cela pourrait influer sur cette différence dans un cas et pas dans
l'autre.

A priori je vois déjà d'autres choses ainsi:
Un objet folder te permet une fenêtre de choix de répertoire ( si cela
te plait)
pour remplacer avantageusement le getopenfilename
(je l'ai recopié tel que en Public comme cela tu peux aussi appeler
choixrep depuis un userform,comme c'est mon cas)
Pour ta macro:
Quand tu ouvres f il devient automatiquement activeworkbook
si le "moncode" n'en change pas, il le reste.
si tu mets true derrière activeworkbook.close il sera fermé et sauvé
sans alerts

donc voici après le choix de rep ta macro ainsi révisée:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dans un
module standard
Public myPath
Public Sub Choixrep()
Dim objShell As Object, objFolder As Object, message As String
message = "Vous pouvez choisir un répertoire ou même en créer un" &
vbCrLf _
& "il sera choisi pour l'execution de la macro"

On Error Resume Next
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, message, 0, "c:")
myPath = objFolder.parentfolder.ParseName(objFolder.Title).Path
If Len(myPath) = 0 Then
MsgBox "Opération de choix abandonnée": End
Else
MsgBox myPath
End If
End Sub
'''''''''''''''''''''''''''''''''''''
Sub Mamacro()
Dim f As String
Call Choixrep

ChDir myPath
f = Dir("*.xls")

Do While Len(f) > 0

Workbooks.Open f, UpdateLinks:=0

Call moncode 'nom sans espace

ActiveWorkbook.Close True

f = Dir

Loop

End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Cdlt
'LSteph








Avatar
Daniel
office Excel 2003 SP2.


De même

même quand tu réponds oui???


Oui.
Daniel

Avatar
tip.tiptop
Alors là!!!
avec mon code et un seul fichier dans dans le répertoire???


Le problème ne pourrait il pas venir du fait que lorsque que
j'enregistre le fichier celui ci se trouve placé par défaut en fin de
liste du répertoire et lorsque je fais a nouveau un dir il prend le
fichier suivant qui se trouve être celui ouvert précédemment.

d'ou l'explication du rebouclage infini si j'enregistre ce dernier.

office Excel 2003 SP2.


De même

même quand tu réponds oui???


Oui.
Daniel





Avatar
Daniel
avec mon code et un seul fichier dans dans le répertoire???


Oui.

Le problème ne pourrait il pas venir du fait que lorsque que j'enregistre
le fichier celui ci se trouve placé par défaut en fin de liste du
répertoire et lorsque je fais a nouveau un dir il prend le fichier suivant
qui se trouve être celui ouvert précédemment.



J'y avais pensé et c'est pourquoi j'ai testé. Mais de fait, le fichier est
écrasé par l'enregistrement, pas ajouté. Tu n'aurais pas une macro dans
Aix.xls qui mettrait la cagade ?
Daniel

1 2