Surveillance des évenements d'une macro par l'intermediaire d'un userform
3 réponses
francisco
Bonjour tout le monde
En me servant du site du simplex et en transformant une macro écrite par
frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les
capacités d'ecrire moi même cette macro , j'arrive au resultat suivant
ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans
ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à
ouvrir
jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier
fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est
créer un userform qui m'indique au fur et à mesure les fichiers que la macro
deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La
macro deploiement se trouve en dessous
Merci à tout le monde
Sub deploiement()
Dim cell As Range
Dim Nom$, Sht As Workbooks
Range("a3").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cell In Selection
Nom = cell.Value
Workbooks.Open Filename:=Nom
Next cell
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
michdenis
Bonjour Francisco,
Dans la fenêtre Visual basic editor, insère un userform(formulaire)
Dessine un contrôle "Étiquette (label) " avec un bouton de commande pour arrêter un processus.
Pour lancer tout le processus suivant, inscris dans un module standard, la procédure suivante :
Au lancement du formulaire, la macro dans le formulaire va s'exécuter pendant que ton formulaire restera afficher à l'écran.
'---------------- Sub OuvrirFormulaire() UserForm1.Show End Sub '----------------
Dans le formulaire, inscrit ce code :
'---------------------------------------- 'Dans le haut du formulaire, déclaration de cette variable. Dim Arrêt As Boolean
'---------------------------------------- Private Sub UserForm_Activate()
Dim cell As Range, Nom$ Dim Rg As Range, Wk As Workbook Arrêt = False Application.ScreenUpdating = False With Worksheets("Feuil2") Set Rg = .Range("A3:A" & .Range("A65356").End(xlUp).Row) For Each cell In Rg Nom = cell.Value UserForm1.Label1.Caption = Nom UserForm1.Repaint If Arrêt = True Then Exit Sub DoEvents Set Wk = Workbooks.Open(Filename:=Nom) 'le travail à faire sur le fichier ouvert. '.../...
'Sauvegarde et fermeture avant d'ouvrir le fichier suivant Wk.Close True Next cell End With MsgBox "Travail terminé" Unload Me End Sub
'---------------------------------------- Private Sub UserForm_Click() 'Pour arrêter la macro après le traitement du fichier en cours. Arrêt = True End Sub '----------------------------------------
Salutations!
"francisco" a écrit dans le message de news:bvin32$2c8$ Bonjour tout le monde En me servant du site du simplex et en transformant une macro écrite par frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les capacités d'ecrire moi même cette macro , j'arrive au resultat suivant ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à ouvrir jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est créer un userform qui m'indique au fur et à mesure les fichiers que la macro deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La macro deploiement se trouve en dessous
Merci à tout le monde Sub deploiement() Dim cell As Range Dim Nom$, Sht As Workbooks Range("a3").Select Range(Selection, Selection.End(xlDown)).Select For Each cell In Selection Nom = cell.Value Workbooks.Open Filename:=Nom Next cell
End Sub
End Sub
Bonjour Francisco,
Dans la fenêtre Visual basic editor, insère un userform(formulaire)
Dessine un contrôle "Étiquette (label) " avec un bouton de commande pour arrêter un processus.
Pour lancer tout le processus suivant, inscris dans un module standard, la procédure suivante :
Au lancement du formulaire, la macro dans le formulaire va s'exécuter pendant que ton
formulaire restera afficher à l'écran.
'----------------
Sub OuvrirFormulaire()
UserForm1.Show
End Sub
'----------------
Dans le formulaire, inscrit ce code :
'----------------------------------------
'Dans le haut du formulaire, déclaration de cette variable.
Dim Arrêt As Boolean
'----------------------------------------
Private Sub UserForm_Activate()
Dim cell As Range, Nom$
Dim Rg As Range, Wk As Workbook
Arrêt = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
Set Rg = .Range("A3:A" & .Range("A65356").End(xlUp).Row)
For Each cell In Rg
Nom = cell.Value
UserForm1.Label1.Caption = Nom
UserForm1.Repaint
If Arrêt = True Then Exit Sub
DoEvents
Set Wk = Workbooks.Open(Filename:=Nom)
'le travail à faire sur le fichier ouvert.
'.../...
'Sauvegarde et fermeture avant d'ouvrir le fichier suivant
Wk.Close True
Next cell
End With
MsgBox "Travail terminé"
Unload Me
End Sub
'----------------------------------------
Private Sub UserForm_Click()
'Pour arrêter la macro après le traitement du fichier en cours.
Arrêt = True
End Sub
'----------------------------------------
Salutations!
"francisco" <malabar@wanadoo.fr> a écrit dans le message de news:bvin32$2c8$1@news-reader1.wanadoo.fr...
Bonjour tout le monde
En me servant du site du simplex et en transformant une macro écrite par
frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les
capacités d'ecrire moi même cette macro , j'arrive au resultat suivant
ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans
ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à
ouvrir
jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier
fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est
créer un userform qui m'indique au fur et à mesure les fichiers que la macro
deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La
macro deploiement se trouve en dessous
Merci à tout le monde
Sub deploiement()
Dim cell As Range
Dim Nom$, Sht As Workbooks
Range("a3").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cell In Selection
Nom = cell.Value
Workbooks.Open Filename:=Nom
Next cell
Dans la fenêtre Visual basic editor, insère un userform(formulaire)
Dessine un contrôle "Étiquette (label) " avec un bouton de commande pour arrêter un processus.
Pour lancer tout le processus suivant, inscris dans un module standard, la procédure suivante :
Au lancement du formulaire, la macro dans le formulaire va s'exécuter pendant que ton formulaire restera afficher à l'écran.
'---------------- Sub OuvrirFormulaire() UserForm1.Show End Sub '----------------
Dans le formulaire, inscrit ce code :
'---------------------------------------- 'Dans le haut du formulaire, déclaration de cette variable. Dim Arrêt As Boolean
'---------------------------------------- Private Sub UserForm_Activate()
Dim cell As Range, Nom$ Dim Rg As Range, Wk As Workbook Arrêt = False Application.ScreenUpdating = False With Worksheets("Feuil2") Set Rg = .Range("A3:A" & .Range("A65356").End(xlUp).Row) For Each cell In Rg Nom = cell.Value UserForm1.Label1.Caption = Nom UserForm1.Repaint If Arrêt = True Then Exit Sub DoEvents Set Wk = Workbooks.Open(Filename:=Nom) 'le travail à faire sur le fichier ouvert. '.../...
'Sauvegarde et fermeture avant d'ouvrir le fichier suivant Wk.Close True Next cell End With MsgBox "Travail terminé" Unload Me End Sub
'---------------------------------------- Private Sub UserForm_Click() 'Pour arrêter la macro après le traitement du fichier en cours. Arrêt = True End Sub '----------------------------------------
Salutations!
"francisco" a écrit dans le message de news:bvin32$2c8$ Bonjour tout le monde En me servant du site du simplex et en transformant une macro écrite par frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les capacités d'ecrire moi même cette macro , j'arrive au resultat suivant ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à ouvrir jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est créer un userform qui m'indique au fur et à mesure les fichiers que la macro deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La macro deploiement se trouve en dessous
Merci à tout le monde Sub deploiement() Dim cell As Range Dim Nom$, Sht As Workbooks Range("a3").Select Range(Selection, Selection.End(xlDown)).Select For Each cell In Selection Nom = cell.Value Workbooks.Open Filename:=Nom Next cell
End Sub
End Sub
Frédéric Sigonneau
Bonsoir,
Tu pourrais modifier ta procédure 'deploiement' pour y intégrer la création 'à la volée' d'un userform qui affiche le nom du classeur ouvert. A adapter à ton besoin (code à recopier dans un module standard du classeur où tu veux l'exécuter) :
'======================== Sub deploiement() Dim cell As Range Dim Nom$, i& Dim ufMsg As Object
'********************** Set ufMsg = CreatePopupMsg("") ufMsg.Show '**********************
For Each cell In Selection Nom = cell.Value '******************* ufMsg.Label1.Caption = Nom DoEvents '******************* Workbooks.Open Filename:=Nom 'ici, ton traitement sur le classeur, par exemple : i = 0 Do i = i + 1 Loop While i < 10000000 ActiveWorkbook.Close False 'ou True pour conserver changements Next cell
'********************** DelPopupMsg ufMsg.Name Unload ufMsg Set ufMsg = Nothing '**********************
End Sub
Function CreatePopupMsg(Txt$) As Object Dim BarForm As Object, Lbl As Object
' userform Set BarForm = ThisWorkbook.VBProject.VBComponents.Add(3) With BarForm .Properties("Caption") = Txt .Properties("Width") = 200 .Properties("Height") = 60 .Properties("ShowModal") = False End With
' label Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1") With Lbl .Left = 10: .Top = 6: .Width = 170: .Height = 45 .ForeColor = 2036353 .Font.Bold = True: .TextAlign = 2: .Font.Size = 8 End With
VBA.UserForms.Add (BarForm.Name) Set CreatePopupMsg = UserForms(UserForms.Count - 1)
End Function 'fs
Sub DelPopupMsg(Nom$) With ThisWorkbook.VBProject.VBComponents .Remove .Item(Nom) End With End Sub 'fs '======================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour tout le monde En me servant du site du simplex et en transformant une macro écrite par frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les capacités d'ecrire moi même cette macro , j'arrive au resultat suivant ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à ouvrir jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est créer un userform qui m'indique au fur et à mesure les fichiers que la macro deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La macro deploiement se trouve en dessous
Merci à tout le monde Sub deploiement() Dim cell As Range Dim Nom$, Sht As Workbooks Range("a3").Select Range(Selection, Selection.End(xlDown)).Select For Each cell In Selection Nom = cell.Value Workbooks.Open Filename:=Nom Next cell
End Sub
End Sub
Bonsoir,
Tu pourrais modifier ta procédure 'deploiement' pour y intégrer la création 'à
la volée' d'un userform qui affiche le nom du classeur ouvert.
A adapter à ton besoin (code à recopier dans un module standard du classeur où
tu veux l'exécuter) :
'======================== Sub deploiement()
Dim cell As Range
Dim Nom$, i&
Dim ufMsg As Object
'**********************
Set ufMsg = CreatePopupMsg("")
ufMsg.Show
'**********************
For Each cell In Selection
Nom = cell.Value
'*******************
ufMsg.Label1.Caption = Nom
DoEvents
'*******************
Workbooks.Open Filename:=Nom
'ici, ton traitement sur le classeur, par exemple :
i = 0
Do
i = i + 1
Loop While i < 10000000
ActiveWorkbook.Close False 'ou True pour conserver changements
Next cell
'**********************
DelPopupMsg ufMsg.Name
Unload ufMsg
Set ufMsg = Nothing
'**********************
End Sub
Function CreatePopupMsg(Txt$) As Object
Dim BarForm As Object, Lbl As Object
' userform
Set BarForm = ThisWorkbook.VBProject.VBComponents.Add(3)
With BarForm
.Properties("Caption") = Txt
.Properties("Width") = 200
.Properties("Height") = 60
.Properties("ShowModal") = False
End With
' label
Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1")
With Lbl
.Left = 10: .Top = 6: .Width = 170: .Height = 45
.ForeColor = 2036353
.Font.Bold = True: .TextAlign = 2: .Font.Size = 8
End With
VBA.UserForms.Add (BarForm.Name)
Set CreatePopupMsg = UserForms(UserForms.Count - 1)
End Function 'fs
Sub DelPopupMsg(Nom$)
With ThisWorkbook.VBProject.VBComponents
.Remove .Item(Nom)
End With
End Sub 'fs
'========================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour tout le monde
En me servant du site du simplex et en transformant une macro écrite par
frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les
capacités d'ecrire moi même cette macro , j'arrive au resultat suivant
ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans
ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à
ouvrir
jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier
fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est
créer un userform qui m'indique au fur et à mesure les fichiers que la macro
deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La
macro deploiement se trouve en dessous
Merci à tout le monde
Sub deploiement()
Dim cell As Range
Dim Nom$, Sht As Workbooks
Range("a3").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cell In Selection
Nom = cell.Value
Workbooks.Open Filename:=Nom
Next cell
Tu pourrais modifier ta procédure 'deploiement' pour y intégrer la création 'à la volée' d'un userform qui affiche le nom du classeur ouvert. A adapter à ton besoin (code à recopier dans un module standard du classeur où tu veux l'exécuter) :
'======================== Sub deploiement() Dim cell As Range Dim Nom$, i& Dim ufMsg As Object
'********************** Set ufMsg = CreatePopupMsg("") ufMsg.Show '**********************
For Each cell In Selection Nom = cell.Value '******************* ufMsg.Label1.Caption = Nom DoEvents '******************* Workbooks.Open Filename:=Nom 'ici, ton traitement sur le classeur, par exemple : i = 0 Do i = i + 1 Loop While i < 10000000 ActiveWorkbook.Close False 'ou True pour conserver changements Next cell
'********************** DelPopupMsg ufMsg.Name Unload ufMsg Set ufMsg = Nothing '**********************
End Sub
Function CreatePopupMsg(Txt$) As Object Dim BarForm As Object, Lbl As Object
' userform Set BarForm = ThisWorkbook.VBProject.VBComponents.Add(3) With BarForm .Properties("Caption") = Txt .Properties("Width") = 200 .Properties("Height") = 60 .Properties("ShowModal") = False End With
' label Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1") With Lbl .Left = 10: .Top = 6: .Width = 170: .Height = 45 .ForeColor = 2036353 .Font.Bold = True: .TextAlign = 2: .Font.Size = 8 End With
VBA.UserForms.Add (BarForm.Name) Set CreatePopupMsg = UserForms(UserForms.Count - 1)
End Function 'fs
Sub DelPopupMsg(Nom$) With ThisWorkbook.VBProject.VBComponents .Remove .Item(Nom) End With End Sub 'fs '======================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour tout le monde En me servant du site du simplex et en transformant une macro écrite par frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les capacités d'ecrire moi même cette macro , j'arrive au resultat suivant ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à ouvrir jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est créer un userform qui m'indique au fur et à mesure les fichiers que la macro deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La macro deploiement se trouve en dessous
Merci à tout le monde Sub deploiement() Dim cell As Range Dim Nom$, Sht As Workbooks Range("a3").Select Range(Selection, Selection.End(xlDown)).Select For Each cell In Selection Nom = cell.Value Workbooks.Open Filename:=Nom Next cell
End Sub
End Sub
francisco
Merci à MichDenis et à Frederic pour vos programmes qui me conviennent Amicalement Francisco
"Frédéric Sigonneau" a écrit dans le message de news:
Bonsoir,
Tu pourrais modifier ta procédure 'deploiement' pour y intégrer la création 'à
la volée' d'un userform qui affiche le nom du classeur ouvert. A adapter à ton besoin (code à recopier dans un module standard du classeur où
tu veux l'exécuter) :
'======================== > Sub deploiement() Dim cell As Range Dim Nom$, i& Dim ufMsg As Object
'********************** Set ufMsg = CreatePopupMsg("") ufMsg.Show '**********************
For Each cell In Selection Nom = cell.Value '******************* ufMsg.Label1.Caption = Nom DoEvents '******************* Workbooks.Open Filename:=Nom 'ici, ton traitement sur le classeur, par exemple : i = 0 Do i = i + 1 Loop While i < 10000000 ActiveWorkbook.Close False 'ou True pour conserver changements Next cell
'********************** DelPopupMsg ufMsg.Name Unload ufMsg Set ufMsg = Nothing '**********************
End Sub
Function CreatePopupMsg(Txt$) As Object Dim BarForm As Object, Lbl As Object
' userform Set BarForm = ThisWorkbook.VBProject.VBComponents.Add(3) With BarForm .Properties("Caption") = Txt .Properties("Width") = 200 .Properties("Height") = 60 .Properties("ShowModal") = False End With
' label Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1") With Lbl .Left = 10: .Top = 6: .Width = 170: .Height = 45 .ForeColor = 2036353 .Font.Bold = True: .TextAlign = 2: .Font.Size = 8 End With
VBA.UserForms.Add (BarForm.Name) Set CreatePopupMsg = UserForms(UserForms.Count - 1)
End Function 'fs
Sub DelPopupMsg(Nom$) With ThisWorkbook.VBProject.VBComponents .Remove .Item(Nom) End With End Sub 'fs '======================== > FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour tout le monde En me servant du site du simplex et en transformant une macro écrite par frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les
capacités d'ecrire moi même cette macro , j'arrive au resultat suivant ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans
ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à
ouvrir jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est créer un userform qui m'indique au fur et à mesure les fichiers que la macro
deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La
macro deploiement se trouve en dessous
Merci à tout le monde Sub deploiement() Dim cell As Range Dim Nom$, Sht As Workbooks Range("a3").Select Range(Selection, Selection.End(xlDown)).Select For Each cell In Selection Nom = cell.Value Workbooks.Open Filename:=Nom Next cell
End Sub
End Sub
Merci à MichDenis et à Frederic pour vos programmes qui me conviennent
Amicalement Francisco
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news: 401D40BB.AB079441@wanadoo.fr...
Bonsoir,
Tu pourrais modifier ta procédure 'deploiement' pour y intégrer la
création 'à
la volée' d'un userform qui affiche le nom du classeur ouvert.
A adapter à ton besoin (code à recopier dans un module standard du
classeur où
tu veux l'exécuter) :
'======================== > Sub deploiement()
Dim cell As Range
Dim Nom$, i&
Dim ufMsg As Object
'**********************
Set ufMsg = CreatePopupMsg("")
ufMsg.Show
'**********************
For Each cell In Selection
Nom = cell.Value
'*******************
ufMsg.Label1.Caption = Nom
DoEvents
'*******************
Workbooks.Open Filename:=Nom
'ici, ton traitement sur le classeur, par exemple :
i = 0
Do
i = i + 1
Loop While i < 10000000
ActiveWorkbook.Close False 'ou True pour conserver changements
Next cell
'**********************
DelPopupMsg ufMsg.Name
Unload ufMsg
Set ufMsg = Nothing
'**********************
End Sub
Function CreatePopupMsg(Txt$) As Object
Dim BarForm As Object, Lbl As Object
' userform
Set BarForm = ThisWorkbook.VBProject.VBComponents.Add(3)
With BarForm
.Properties("Caption") = Txt
.Properties("Width") = 200
.Properties("Height") = 60
.Properties("ShowModal") = False
End With
' label
Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1")
With Lbl
.Left = 10: .Top = 6: .Width = 170: .Height = 45
.ForeColor = 2036353
.Font.Bold = True: .TextAlign = 2: .Font.Size = 8
End With
VBA.UserForms.Add (BarForm.Name)
Set CreatePopupMsg = UserForms(UserForms.Count - 1)
End Function 'fs
Sub DelPopupMsg(Nom$)
With ThisWorkbook.VBProject.VBComponents
.Remove .Item(Nom)
End With
End Sub 'fs
'======================== >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour tout le monde
En me servant du site du simplex et en transformant une macro écrite par
frederic sigonneau sans faire trop de faute j'espere car je n'ai pas
les
capacités d'ecrire moi même cette macro , j'arrive au resultat suivant
ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre
dans
ce classeur à partir de la cellule a3 le nom et le chemin de mon
fichier à
ouvrir
jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier
fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est
créer un userform qui m'indique au fur et à mesure les fichiers que la
macro
deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure
La
macro deploiement se trouve en dessous
Merci à tout le monde
Sub deploiement()
Dim cell As Range
Dim Nom$, Sht As Workbooks
Range("a3").Select
Range(Selection, Selection.End(xlDown)).Select
For Each cell In Selection
Nom = cell.Value
Workbooks.Open Filename:=Nom
Next cell
'********************** Set ufMsg = CreatePopupMsg("") ufMsg.Show '**********************
For Each cell In Selection Nom = cell.Value '******************* ufMsg.Label1.Caption = Nom DoEvents '******************* Workbooks.Open Filename:=Nom 'ici, ton traitement sur le classeur, par exemple : i = 0 Do i = i + 1 Loop While i < 10000000 ActiveWorkbook.Close False 'ou True pour conserver changements Next cell
'********************** DelPopupMsg ufMsg.Name Unload ufMsg Set ufMsg = Nothing '**********************
End Sub
Function CreatePopupMsg(Txt$) As Object Dim BarForm As Object, Lbl As Object
' userform Set BarForm = ThisWorkbook.VBProject.VBComponents.Add(3) With BarForm .Properties("Caption") = Txt .Properties("Width") = 200 .Properties("Height") = 60 .Properties("ShowModal") = False End With
' label Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1") With Lbl .Left = 10: .Top = 6: .Width = 170: .Height = 45 .ForeColor = 2036353 .Font.Bold = True: .TextAlign = 2: .Font.Size = 8 End With
VBA.UserForms.Add (BarForm.Name) Set CreatePopupMsg = UserForms(UserForms.Count - 1)
End Function 'fs
Sub DelPopupMsg(Nom$) With ThisWorkbook.VBProject.VBComponents .Remove .Item(Nom) End With End Sub 'fs '======================== > FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour tout le monde En me servant du site du simplex et en transformant une macro écrite par frederic sigonneau sans faire trop de faute j'espere car je n'ai pas les
capacités d'ecrire moi même cette macro , j'arrive au resultat suivant ouvrir plusieurs classeurs excel avec un classeur pilote ou je rentre dans
ce classeur à partir de la cellule a3 le nom et le chemin de mon fichier à
ouvrir jusqu'à la derniere cellule non vide c'est à dire jusqu'à mon dernier fichier à ouvrir. Maintenant ce que je voudrais apprendre à faire c'est créer un userform qui m'indique au fur et à mesure les fichiers que la macro
deploiement ouvre pour pouvoir suivre les evenements au fur et à mesure La
macro deploiement se trouve en dessous
Merci à tout le monde Sub deploiement() Dim cell As Range Dim Nom$, Sht As Workbooks Range("a3").Select Range(Selection, Selection.End(xlDown)).Select For Each cell In Selection Nom = cell.Value Workbooks.Open Filename:=Nom Next cell