J'ai environ 650 fichiers *.xl? dans une structure arborescente assez
complexe du réseau. Certains font référence à d'autres par le biais d'un
chemin en "p:\...", d'autre font la même chose mais par le chemin UNC de p:
(p: est un map de \\monServeur\.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur
(\\monDeuxiemeServeur\.....). Pas de pbme pour ceux qui font référence à
"p:" car il suffit que je re-map "p:" sur "\\monDeuxiemeServeur\.....". Mais
pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je les
modifie.
Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux qui
utilisent le chemin UNC... Il faut donc que je les ouvre les uns après les
autres pour vérifier les lien dans les formules et le chaines de caractères
utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu
long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les
fichiers qui utilisent la chaine de caractère "\\monServeur".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ange Ounis
Avez-vous un début de solution à me proposer ?
Le code de mise à jour d'un classeur pourrait être qqchose comme ça (en supposant que tu utilises Excel 2000 ou + récent à cause des fonctions Split et Join) :
''''''''''''''''''' Sub essai() Dim LeClasseur As String LeClasseur = "D:LeDossierUnClasseur.xls" CorrigeLeFichier LeClasseur End Sub
Sub CorrigeLeFichier(Classeur As String) Dim S, Arr, cell As Range, Wbk As Workbook, sht As Worksheet Dim VBComp As Variant, VBComps As Variant
Set Wbk = Workbooks.Open(Classeur)
For Each sht In Wbk.Sheets For Each cell In sht.UsedRange If cell.HasFormula Then Arr = Split(cell.Formula, "MonServeur") If UBound(Arr) <> 0 Then cell.Formula = Join(Arr, "P:") End If End If Next cell Next sht
Set VBComps = Wbk.VBProject.VBComponents For Each VBComp In VBComps With VBComp.CodeModule If .CountOfLines > 0 Then S = .Lines(1, .CountOfLines) MsgBox S Arr = Split(S, "MonServeur") If UBound(Arr) <> 0 Then S = Join(Arr, "P:") End If .DeleteLines 1, .CountOfLines .AddFromString S End If End With Next VBComp
Wbk.Close True
End Sub '''''''''''''''''''
Reste, en fonction de l'organisation du classement de tes 650 fichiers dans la "structure arborescente" dont tu parles, à écrire une procédure pour aller les chercher un par un pour passer leur nom et chemin complet à la procédure proposée.
---------- Ange Ounis ----------
Bonjour à tous
J'ai environ 650 fichiers *.xl? dans une structure arborescente assez complexe du réseau. Certains font référence à d'autres par le biais d'un chemin en "p:...", d'autre font la même chose mais par le chemin UNC de p: (p: est un map de monServeur.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur (monDeuxiemeServeur.....). Pas de pbme pour ceux qui font référence à "p:" car il suffit que je re-map "p:" sur "monDeuxiemeServeur.....". Mais pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je les modifie. Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux qui utilisent le chemin UNC... Il faut donc que je les ouvre les uns après les autres pour vérifier les lien dans les formules et le chaines de caractères utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les fichiers qui utilisent la chaine de caractère "monServeur".
Avez-vous un début de solution à me proposer ?
Je vous remercie d'avance
Snif
Avez-vous un début de solution à me proposer ?
Le code de mise à jour d'un classeur pourrait être qqchose comme ça (en
supposant que tu utilises Excel 2000 ou + récent à cause des fonctions Split et
Join) :
'''''''''''''''''''
Sub essai()
Dim LeClasseur As String
LeClasseur = "D:LeDossierUnClasseur.xls"
CorrigeLeFichier LeClasseur
End Sub
Sub CorrigeLeFichier(Classeur As String)
Dim S, Arr, cell As Range, Wbk As Workbook, sht As Worksheet
Dim VBComp As Variant, VBComps As Variant
Set Wbk = Workbooks.Open(Classeur)
For Each sht In Wbk.Sheets
For Each cell In sht.UsedRange
If cell.HasFormula Then
Arr = Split(cell.Formula, "\MonServeur")
If UBound(Arr) <> 0 Then
cell.Formula = Join(Arr, "P:")
End If
End If
Next cell
Next sht
Set VBComps = Wbk.VBProject.VBComponents
For Each VBComp In VBComps
With VBComp.CodeModule
If .CountOfLines > 0 Then
S = .Lines(1, .CountOfLines)
MsgBox S
Arr = Split(S, "\MonServeur")
If UBound(Arr) <> 0 Then
S = Join(Arr, "P:")
End If
.DeleteLines 1, .CountOfLines
.AddFromString S
End If
End With
Next VBComp
Wbk.Close True
End Sub
'''''''''''''''''''
Reste, en fonction de l'organisation du classement de tes 650 fichiers dans la
"structure arborescente" dont tu parles, à écrire une procédure pour aller les
chercher un par un pour passer leur nom et chemin complet à la procédure proposée.
----------
Ange Ounis
----------
Bonjour à tous
J'ai environ 650 fichiers *.xl? dans une structure arborescente assez
complexe du réseau. Certains font référence à d'autres par le biais d'un
chemin en "p:...", d'autre font la même chose mais par le chemin UNC de p:
(p: est un map de \monServeur.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur
(\monDeuxiemeServeur.....). Pas de pbme pour ceux qui font référence à
"p:" car il suffit que je re-map "p:" sur "\monDeuxiemeServeur.....". Mais
pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je les
modifie.
Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux qui
utilisent le chemin UNC... Il faut donc que je les ouvre les uns après les
autres pour vérifier les lien dans les formules et le chaines de caractères
utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu
long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les
fichiers qui utilisent la chaine de caractère "\monServeur".
Le code de mise à jour d'un classeur pourrait être qqchose comme ça (en supposant que tu utilises Excel 2000 ou + récent à cause des fonctions Split et Join) :
''''''''''''''''''' Sub essai() Dim LeClasseur As String LeClasseur = "D:LeDossierUnClasseur.xls" CorrigeLeFichier LeClasseur End Sub
Sub CorrigeLeFichier(Classeur As String) Dim S, Arr, cell As Range, Wbk As Workbook, sht As Worksheet Dim VBComp As Variant, VBComps As Variant
Set Wbk = Workbooks.Open(Classeur)
For Each sht In Wbk.Sheets For Each cell In sht.UsedRange If cell.HasFormula Then Arr = Split(cell.Formula, "MonServeur") If UBound(Arr) <> 0 Then cell.Formula = Join(Arr, "P:") End If End If Next cell Next sht
Set VBComps = Wbk.VBProject.VBComponents For Each VBComp In VBComps With VBComp.CodeModule If .CountOfLines > 0 Then S = .Lines(1, .CountOfLines) MsgBox S Arr = Split(S, "MonServeur") If UBound(Arr) <> 0 Then S = Join(Arr, "P:") End If .DeleteLines 1, .CountOfLines .AddFromString S End If End With Next VBComp
Wbk.Close True
End Sub '''''''''''''''''''
Reste, en fonction de l'organisation du classement de tes 650 fichiers dans la "structure arborescente" dont tu parles, à écrire une procédure pour aller les chercher un par un pour passer leur nom et chemin complet à la procédure proposée.
---------- Ange Ounis ----------
Bonjour à tous
J'ai environ 650 fichiers *.xl? dans une structure arborescente assez complexe du réseau. Certains font référence à d'autres par le biais d'un chemin en "p:...", d'autre font la même chose mais par le chemin UNC de p: (p: est un map de monServeur.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur (monDeuxiemeServeur.....). Pas de pbme pour ceux qui font référence à "p:" car il suffit que je re-map "p:" sur "monDeuxiemeServeur.....". Mais pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je les modifie. Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux qui utilisent le chemin UNC... Il faut donc que je les ouvre les uns après les autres pour vérifier les lien dans les formules et le chaines de caractères utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les fichiers qui utilisent la chaine de caractère "monServeur".
Avez-vous un début de solution à me proposer ?
Je vous remercie d'avance
Snif
Snif
Génial !
Merci Ange,
J'ai compilé sur le pbme, et j'ai écrit 2 procédures me permettant d'exporter toutes les feuilles en SYLK et tous les modules de tous les classeurs. J'ai pu donc faire de la recherche sur des fichiers txt avec FIND. Je sais donc quels sont les fichiers à modifier. Ta procédure va me permettre de les corriger automatiquement...
Merci encore
Snif "Ange Ounis" a écrit dans le message news:
Avez-vous un début de solution à me proposer ?
Le code de mise à jour d'un classeur pourrait être qqchose comme ça (en supposant que tu utilises Excel 2000 ou + récent à cause des fonctions Split et
Join) :
''''''''''''''''''' Sub essai() Dim LeClasseur As String LeClasseur = "D:LeDossierUnClasseur.xls" CorrigeLeFichier LeClasseur End Sub
Sub CorrigeLeFichier(Classeur As String) Dim S, Arr, cell As Range, Wbk As Workbook, sht As Worksheet Dim VBComp As Variant, VBComps As Variant
Set Wbk = Workbooks.Open(Classeur)
For Each sht In Wbk.Sheets For Each cell In sht.UsedRange If cell.HasFormula Then Arr = Split(cell.Formula, "MonServeur") If UBound(Arr) <> 0 Then cell.Formula = Join(Arr, "P:") End If End If Next cell Next sht
Set VBComps = Wbk.VBProject.VBComponents For Each VBComp In VBComps With VBComp.CodeModule If .CountOfLines > 0 Then S = .Lines(1, .CountOfLines) MsgBox S Arr = Split(S, "MonServeur") If UBound(Arr) <> 0 Then S = Join(Arr, "P:") End If .DeleteLines 1, .CountOfLines .AddFromString S End If End With Next VBComp
Wbk.Close True
End Sub '''''''''''''''''''
Reste, en fonction de l'organisation du classement de tes 650 fichiers dans la
"structure arborescente" dont tu parles, à écrire une procédure pour aller les
chercher un par un pour passer leur nom et chemin complet à la procédure proposée.
---------- Ange Ounis ----------
Bonjour à tous
J'ai environ 650 fichiers *.xl? dans une structure arborescente assez complexe du réseau. Certains font référence à d'autres par le biais d'un chemin en "p:...", d'autre font la même chose mais par le chemin UNC de p:
(p: est un map de monServeur.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur (monDeuxiemeServeur.....). Pas de pbme pour ceux qui font référence à "p:" car il suffit que je re-map "p:" sur "monDeuxiemeServeur.....". Mais
pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je les
modifie. Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux qui
utilisent le chemin UNC... Il faut donc que je les ouvre les uns après les
autres pour vérifier les lien dans les formules et le chaines de caractères
utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les fichiers qui utilisent la chaine de caractère "monServeur".
Avez-vous un début de solution à me proposer ?
Je vous remercie d'avance
Snif
Génial !
Merci Ange,
J'ai compilé sur le pbme, et j'ai écrit 2 procédures me permettant
d'exporter toutes les feuilles en SYLK et tous les modules de tous les
classeurs. J'ai pu donc faire de la recherche sur des fichiers txt avec
FIND. Je sais donc quels sont les fichiers à modifier.
Ta procédure va me permettre de les corriger automatiquement...
Merci encore
Snif
"Ange Ounis" <nospam@nospam> a écrit dans le message news:
OylQ2w9CGHA.2700@TK2MSFTNGP14.phx.gbl...
Avez-vous un début de solution à me proposer ?
Le code de mise à jour d'un classeur pourrait être qqchose comme ça (en
supposant que tu utilises Excel 2000 ou + récent à cause des fonctions
Split et
Join) :
'''''''''''''''''''
Sub essai()
Dim LeClasseur As String
LeClasseur = "D:LeDossierUnClasseur.xls"
CorrigeLeFichier LeClasseur
End Sub
Sub CorrigeLeFichier(Classeur As String)
Dim S, Arr, cell As Range, Wbk As Workbook, sht As Worksheet
Dim VBComp As Variant, VBComps As Variant
Set Wbk = Workbooks.Open(Classeur)
For Each sht In Wbk.Sheets
For Each cell In sht.UsedRange
If cell.HasFormula Then
Arr = Split(cell.Formula, "\MonServeur")
If UBound(Arr) <> 0 Then
cell.Formula = Join(Arr, "P:")
End If
End If
Next cell
Next sht
Set VBComps = Wbk.VBProject.VBComponents
For Each VBComp In VBComps
With VBComp.CodeModule
If .CountOfLines > 0 Then
S = .Lines(1, .CountOfLines)
MsgBox S
Arr = Split(S, "\MonServeur")
If UBound(Arr) <> 0 Then
S = Join(Arr, "P:")
End If
.DeleteLines 1, .CountOfLines
.AddFromString S
End If
End With
Next VBComp
Wbk.Close True
End Sub
'''''''''''''''''''
Reste, en fonction de l'organisation du classement de tes 650 fichiers
dans la
"structure arborescente" dont tu parles, à écrire une procédure pour aller
les
chercher un par un pour passer leur nom et chemin complet à la procédure
proposée.
----------
Ange Ounis
----------
Bonjour à tous
J'ai environ 650 fichiers *.xl? dans une structure arborescente assez
complexe du réseau. Certains font référence à d'autres par le biais d'un
chemin en "p:...", d'autre font la même chose mais par le chemin UNC de
p:
(p: est un map de \monServeur.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur
(\monDeuxiemeServeur.....). Pas de pbme pour ceux qui font référence à
"p:" car il suffit que je re-map "p:" sur "\monDeuxiemeServeur.....".
Mais
pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je
les
modifie.
Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux
qui
utilisent le chemin UNC... Il faut donc que je les ouvre les uns après
les
autres pour vérifier les lien dans les formules et le chaines de
caractères
utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu
long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les
fichiers qui utilisent la chaine de caractère "\monServeur".
J'ai compilé sur le pbme, et j'ai écrit 2 procédures me permettant d'exporter toutes les feuilles en SYLK et tous les modules de tous les classeurs. J'ai pu donc faire de la recherche sur des fichiers txt avec FIND. Je sais donc quels sont les fichiers à modifier. Ta procédure va me permettre de les corriger automatiquement...
Merci encore
Snif "Ange Ounis" a écrit dans le message news:
Avez-vous un début de solution à me proposer ?
Le code de mise à jour d'un classeur pourrait être qqchose comme ça (en supposant que tu utilises Excel 2000 ou + récent à cause des fonctions Split et
Join) :
''''''''''''''''''' Sub essai() Dim LeClasseur As String LeClasseur = "D:LeDossierUnClasseur.xls" CorrigeLeFichier LeClasseur End Sub
Sub CorrigeLeFichier(Classeur As String) Dim S, Arr, cell As Range, Wbk As Workbook, sht As Worksheet Dim VBComp As Variant, VBComps As Variant
Set Wbk = Workbooks.Open(Classeur)
For Each sht In Wbk.Sheets For Each cell In sht.UsedRange If cell.HasFormula Then Arr = Split(cell.Formula, "MonServeur") If UBound(Arr) <> 0 Then cell.Formula = Join(Arr, "P:") End If End If Next cell Next sht
Set VBComps = Wbk.VBProject.VBComponents For Each VBComp In VBComps With VBComp.CodeModule If .CountOfLines > 0 Then S = .Lines(1, .CountOfLines) MsgBox S Arr = Split(S, "MonServeur") If UBound(Arr) <> 0 Then S = Join(Arr, "P:") End If .DeleteLines 1, .CountOfLines .AddFromString S End If End With Next VBComp
Wbk.Close True
End Sub '''''''''''''''''''
Reste, en fonction de l'organisation du classement de tes 650 fichiers dans la
"structure arborescente" dont tu parles, à écrire une procédure pour aller les
chercher un par un pour passer leur nom et chemin complet à la procédure proposée.
---------- Ange Ounis ----------
Bonjour à tous
J'ai environ 650 fichiers *.xl? dans une structure arborescente assez complexe du réseau. Certains font référence à d'autres par le biais d'un chemin en "p:...", d'autre font la même chose mais par le chemin UNC de p:
(p: est un map de monServeur.....").
Il faut maintenant que je passe tous ces fichiers sur un autre serveur (monDeuxiemeServeur.....). Pas de pbme pour ceux qui font référence à "p:" car il suffit que je re-map "p:" sur "monDeuxiemeServeur.....". Mais
pour ceux qui utilisent le chemin UNC du premier serveur, il faut que je les
modifie. Le pbme est que je ne sais pas, parmi ces 650 fichiers, quels sont ceux qui
utilisent le chemin UNC... Il faut donc que je les ouvre les uns après les
autres pour vérifier les lien dans les formules et le chaines de caractères
utilisées dans les codes VBA ;-(650 fichiers ça risque d'être un peu long...).
Je cherche donc un code VB qui me permettrait de repérer quels sont les fichiers qui utilisent la chaine de caractère "monServeur".