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
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
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
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.
"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
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.
"tip.tiptop" <tip.tiptop@free.fr> a écrit dans le message de news:
46928e59$0$22413$426a34cc@news.free.fr...
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
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.
"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
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
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" <tip.tiptop@free.fr> a écrit dans le message de news:
46928e59$0$22413$426a34cc@news.free.fr...
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
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
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
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
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
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 SubBonjour,
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
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
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 SubBonjour,
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
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 SubBonjour,
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
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" <tip.tiptop@free.fr> a écrit dans le message de news:
f6vju2$4g8$1@localhost.localdomain...
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
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 SubBonjour,
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
office Excel 2003 SP2.
même quand tu réponds oui???
office Excel 2003 SP2.
même quand tu réponds oui???
office Excel 2003 SP2.
même quand tu réponds oui???
office Excel 2003 SP2.
De mêmemême quand tu réponds oui???
Oui.
Daniel
office Excel 2003 SP2.
De même
même quand tu réponds oui???
Oui.
Daniel
office Excel 2003 SP2.
De mêmemême quand tu réponds oui???
Oui.
Daniel
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.
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.
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.