A priori il n'y a pas avec Msgbox le moyen d'envoyer
dans le cadre du déroulement d'une boucle l'état du compteur
de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte
l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500
..... mon traitement
msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ...
next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai tes
conseils
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
Joël GARBE
Bonsoir,
à la place de msgbox, tu peux utiliser : application.statusbar = "etc..."
qui enverra l'info dans la barre d'état
pense à :
application.statusbarúlse
à la fin de la sub...
--
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Vital" a écrit dans le message de news: 41a0d192$0$8204$
A priori il n'y a pas avec Msgbox le moyen d'envoyer dans le cadre du déroulement d'une boucle l'état du compteur de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500 ..... mon traitement msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ... next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai tes conseils
A bientot
Bonsoir,
à la place de msgbox, tu peux utiliser :
application.statusbar = "etc..."
qui enverra l'info dans la barre d'état
pense à :
application.statusbarúlse
à la fin de la sub...
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
"Vital" <vital.grange@wanadoo.fr> a écrit dans le message de news:
41a0d192$0$8204$8fcfb975@news.wanadoo.fr...
A priori il n'y a pas avec Msgbox le moyen d'envoyer
dans le cadre du déroulement d'une boucle l'état du compteur
de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte
l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500
..... mon traitement
msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ...
next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai
tes
conseils
à la place de msgbox, tu peux utiliser : application.statusbar = "etc..."
qui enverra l'info dans la barre d'état
pense à :
application.statusbarúlse
à la fin de la sub...
--
Bien cordialement,
Joël GARBE www.joelgarbe.fr "Vital" a écrit dans le message de news: 41a0d192$0$8204$
A priori il n'y a pas avec Msgbox le moyen d'envoyer dans le cadre du déroulement d'une boucle l'état du compteur de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500 ..... mon traitement msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ... next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai tes conseils
A bientot
Frédéric Sigonneau
Bonsoir,
Une solution compliquée, mais qui fonctionne (en principe avec toutes les versions d'Excel depuis Excel 97) et que tu peux sans doute adapter à ton besoin. Selon le message à afficher, joue sur les propriétés Height et Width de l'userform comme du label pour qu'il soit entièrement visible. Le plus petit temps d'affichage possible du message est de 1 seconde. Si tu l'affiches à chaque tour de boucle, ça va être interminable avec 4500 passages... Affiche l'état d'avancement des travaux seulement tous les 100 ou 200 tours, ça suffira sans doute amplement. Tu peux copier le code dans un module standard, ensuite il te suffit d'appeler la procédure AfficheMsg dans ta boucle, avec en paramètres le texte à afficher et la durée d'affichage en secondes.
'====================== Sub test() AfficheMsg "test message", 1 End Sub
Sub AfficheMsg(Msg$, Delai&) Dim ufMsg As Object, i&
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") = 100 .Properties("Height") = 100 .Properties("ShowModal") = False End With
' label Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1") With Lbl .Left = 10: .Top = 12: .Width = 70: .Height = 50 .ForeColor = 2036353 .Font.Bold = True: .TextAlign = 2: .Font.Size = 12 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://frederic.sigonneau.free.fr Si votre question sur Excel est urgente, évitez ma bal !
A priori il n'y a pas avec Msgbox le moyen d'envoyer dans le cadre du déroulement d'une boucle l'état du compteur de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500 ..... mon traitement msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ... next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai tes conseils
A bientot
Bonsoir,
Une solution compliquée, mais qui fonctionne (en principe avec toutes les
versions d'Excel depuis Excel 97) et que tu peux sans doute adapter à ton besoin.
Selon le message à afficher, joue sur les propriétés Height et Width de
l'userform comme du label pour qu'il soit entièrement visible.
Le plus petit temps d'affichage possible du message est de 1 seconde. Si tu
l'affiches à chaque tour de boucle, ça va être interminable avec 4500
passages... Affiche l'état d'avancement des travaux seulement tous les 100 ou
200 tours, ça suffira sans doute amplement.
Tu peux copier le code dans un module standard, ensuite il te suffit d'appeler
la procédure AfficheMsg dans ta boucle, avec en paramètres le texte à afficher
et la durée d'affichage en secondes.
'====================== Sub test()
AfficheMsg "test message", 1
End Sub
Sub AfficheMsg(Msg$, Delai&)
Dim ufMsg As Object, i&
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") = 100
.Properties("Height") = 100
.Properties("ShowModal") = False
End With
' label
Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1")
With Lbl
.Left = 10: .Top = 12: .Width = 70: .Height = 50
.ForeColor = 2036353
.Font.Bold = True: .TextAlign = 2: .Font.Size = 12
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://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !
A priori il n'y a pas avec Msgbox le moyen d'envoyer
dans le cadre du déroulement d'une boucle l'état du compteur
de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte
l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500
..... mon traitement
msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ...
next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai tes
conseils
Une solution compliquée, mais qui fonctionne (en principe avec toutes les versions d'Excel depuis Excel 97) et que tu peux sans doute adapter à ton besoin. Selon le message à afficher, joue sur les propriétés Height et Width de l'userform comme du label pour qu'il soit entièrement visible. Le plus petit temps d'affichage possible du message est de 1 seconde. Si tu l'affiches à chaque tour de boucle, ça va être interminable avec 4500 passages... Affiche l'état d'avancement des travaux seulement tous les 100 ou 200 tours, ça suffira sans doute amplement. Tu peux copier le code dans un module standard, ensuite il te suffit d'appeler la procédure AfficheMsg dans ta boucle, avec en paramètres le texte à afficher et la durée d'affichage en secondes.
'====================== Sub test() AfficheMsg "test message", 1 End Sub
Sub AfficheMsg(Msg$, Delai&) Dim ufMsg As Object, i&
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") = 100 .Properties("Height") = 100 .Properties("ShowModal") = False End With
' label Set Lbl = BarForm.Designer.Controls.Add("forms.Label.1") With Lbl .Left = 10: .Top = 12: .Width = 70: .Height = 50 .ForeColor = 2036353 .Font.Bold = True: .TextAlign = 2: .Font.Size = 12 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://frederic.sigonneau.free.fr Si votre question sur Excel est urgente, évitez ma bal !
A priori il n'y a pas avec Msgbox le moyen d'envoyer dans le cadre du déroulement d'une boucle l'état du compteur de suivi de traitement des fiches ( sinon il faut qu'à chaque alerte l'utilisateur clique sur OK).
Pourtant je voudrai y arriver simplement en faisant quelque chose comme :
for i = 1 to 4500 ..... mon traitement msgbox "Fiche numéro " & Cstr(i) & " traitée sur un total de ... next
Si tu peux me dépanner, ce serait avec un grand plaisir que j'écouterai tes conseils