Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" <Guy_Excel_2003@bonjour.fr> a écrit dans le message de groupe de
discussion :
Od4wUdxgKHA.5604@TK2MSFTNGP04.phx.gbl...
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" <Guy_Excel_2003@bonjour.fr> a écrit dans le message de groupe de
discussion :
Od4wUdxgKHA.5604@TK2MSFTNGP04.phx.gbl...
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
"Guy72" a écrit dans le message de news:Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
******************
sub xxxxxx()
application.calculation = xlManual
'les instructions
application.calculation = xlAutomatic
end sub
Etc
"Guy72" <Guy_Excel_2003@bonjour.fr> a écrit dans le message de news:
Od4wUdxgKHA.5604@TK2MSFTNGP04.phx.gbl...
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
******************
sub xxxxxx()
application.calculation = xlManual
'les instructions
application.calculation = xlAutomatic
end sub
Etc
"Guy72" a écrit dans le message de news:Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
******************
sub xxxxxx()
application.calculation = xlManual
'les instructions
application.calculation = xlAutomatic
end sub
Etc
Essaie cette macro à la place :
'---------------------------------------------
Sub test()
Dim ModeCalcul As String
Application.ScreenUpdating = False
ModeCalcul = Application.Calculation
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
With Worksheets("Récap")
With .Range("A9:J490")
.Replace ".", ","
x = .Value
For a = 1 To UBound(x, 1)
For b = 1 To UBound(x, 2)
If IsNumeric(x(a, b)) Then
x(a, b) = CDbl(x(a, b))
End If
Next
Next
.NumberFormat = "General"
.Value = x
End With
End With
Application.Calculation = ModeCalcul
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
#0Gz#
Bonjour michdenis,
L'utilité, c'est qu'après avoir utilisé le code précédent, tout est en
texte
et je ne peut pas utiliser mes formules de la ligne 5.
--
Cordialement
Guy
"michdenis" a écrit dans le message de news:Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Essaie cette macro à la place :
'---------------------------------------------
Sub test()
Dim ModeCalcul As String
Application.ScreenUpdating = False
ModeCalcul = Application.Calculation
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
With Worksheets("Récap")
With .Range("A9:J490")
.Replace ".", ","
x = .Value
For a = 1 To UBound(x, 1)
For b = 1 To UBound(x, 2)
If IsNumeric(x(a, b)) Then
x(a, b) = CDbl(x(a, b))
End If
Next
Next
.NumberFormat = "General"
.Value = x
End With
End With
Application.Calculation = ModeCalcul
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------
"Guy72" <Guy_Excel_2003@bonjour.fr> a écrit dans le message de groupe de
discussion :
#0Gz#1xgKHA.4872@TK2MSFTNGP05.phx.gbl...
Bonjour michdenis,
L'utilité, c'est qu'après avoir utilisé le code précédent, tout est en
texte
et je ne peut pas utiliser mes formules de la ligne 5.
--
Cordialement
Guy
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
uhbcNpxgKHA.3792@TK2MSFTNGP02.phx.gbl...
Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" <Guy_Excel_2003@bonjour.fr> a écrit dans le message de groupe de
discussion :
Od4wUdxgKHA.5604@TK2MSFTNGP04.phx.gbl...
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Essaie cette macro à la place :
'---------------------------------------------
Sub test()
Dim ModeCalcul As String
Application.ScreenUpdating = False
ModeCalcul = Application.Calculation
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
With Worksheets("Récap")
With .Range("A9:J490")
.Replace ".", ","
x = .Value
For a = 1 To UBound(x, 1)
For b = 1 To UBound(x, 2)
If IsNumeric(x(a, b)) Then
x(a, b) = CDbl(x(a, b))
End If
Next
Next
.NumberFormat = "General"
.Value = x
End With
End With
Application.Calculation = ModeCalcul
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
#0Gz#
Bonjour michdenis,
L'utilité, c'est qu'après avoir utilisé le code précédent, tout est en
texte
et je ne peut pas utiliser mes formules de la ligne 5.
--
Cordialement
Guy
"michdenis" a écrit dans le message de news:Bonjour,
Quel est l'utilité de cette macro dans ton application ?
'------------------------------
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
'------------------------------
"Guy72" a écrit dans le message de groupe de
discussion :
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop lente),
même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Je regardais un peu, mais je ne connais pas vbA...
Eh oui, la lenteur, c'est bien la la limite d'Excel, le mode interprété
avec affichage à ses limites...
Déjà, pourquoi tu utilises des directives de fichiers assembleur
Microsoft, alors qu'elle existe en VB(a) ?
pointeur = FreeFile
Open "cheminnom_fichier.txt" For Input As pointeur
Line Input #pointeur, variable_texte
Tu sembles demander l'ouverture (je crois), de n'importe quel fichier
texte avec l'extension "txt" (*.txt)...
Pourquoi il n'est pas nommé ?
Car si on rajoute un fichier texte qui n'a rien à voir, il va se trouver
ouvert éventuellement, ou s'il y a deux fichiers, il se passe quoi ?
Sinon, je ne sais pas non plus pourquoi lire un fichier, alors que tu
as déjà un fichier, celui d'Excel (peut être est-ce pour l'exemple) ?
Pour aller plus vite :
-1-
Si je comprends un peu, ce qui n'est pas certain, tu modifies le format
d'affichage de certaines données, mais ceci en effet, tu peux le faire en
mémoire, notamment s'il n'y en a que 1000, en chargeant tout dans une
variable indicée, puis en effectuant le formatage, la conversion, puis en
réaffichant tout. Donc, si ça provient d'un fichier texte externe, ça doit
se faire avant l'affichage, évidemment, puis on affiche seulement le
résultat, jamais de calculs visuels d'importance.
-2-
Autre possibilité de gagner de la vitesse, c'est de ne pas afficher la
feuille au moment de la conversion, un objet avec la propriété visible =
False va toujours plus vite ! Si ça dure longtemps, tu mets un amuse-oil
(pendant de l'amuse-gueule) pour faire patienter, un message avec un
compteur (ça ralentit quand même... le compteur, mais moins)...
Ben, avec ces deux mesures tu devrais gagner de la vitesse, toutefois
tu semble avoir une bonne maîtrise de la chose, alors tu devrais peut être
le faire en VB ou vbNet afin que ça devienne une fusée...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
Sub Traitement()
'
' Macro1 Macro
' Macro enregistrée le 16/12/2009 par FORCET
'
If Workbooks("Météo 2010.xls").Sheets("Récap").Range("A9") <> "" Then
Workbooks("Météo 2010.xls").Sheets("Récap").Range("A9", "K" &
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Row).ClearContents
End If
ChDrive ("C")
ChDir (ThisWorkbook.Path)
Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:= _
Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:=True, FieldInfo:=Array(Array(1,
2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2),
Array(7, 2), Array(8, 2), _
Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2)),
TrailingMinusNumbers:=True
Fichier = ActiveWorkbook.Name
Feuille = ActiveSheet.Name
i = 3
Do While i <
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row + 1
If Format(Workbooks(Fichier).Sheets(Feuille).Range("K" & i),
"hh:mm:ss") = "00:01:00" Then: Exit Do
i = i + 1
Loop
Workbooks(Fichier).Sheets(Feuille).Range("A" & i, "K" &
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row).Copy
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Offset(1, 0)
Workbooks(Fichier).Close SaveChanges:úlse
'
ChDrive ("C")
ChDir (ThisWorkbook.Path)
Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:= _
Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:=True, FieldInfo:=Array(Array(1,
2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2),
Array(7, 2), Array(8, 2), _
Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2)),
TrailingMinusNumbers:=True
Fichier = ActiveWorkbook.Name
Feuille = ActiveSheet.Name
i = 2
Do While i <
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row + 1
If Format(Workbooks(Fichier).Sheets(Feuille).Range("K" & i),
"hh:mm:ss") = "23:58:00" Then: Exit Do
i = i + 1
Loop
Workbooks(Fichier).Sheets(Feuille).Range("A3", "K" & i).Copy
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Offset(1, 0)
Workbooks(Fichier).Close SaveChanges:úlse
End Sub
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
"Guy72" a écrit dans le message de
news:Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Je regardais un peu, mais je ne connais pas vbA...
Eh oui, la lenteur, c'est bien la la limite d'Excel, le mode interprété
avec affichage à ses limites...
Déjà, pourquoi tu utilises des directives de fichiers assembleur
Microsoft, alors qu'elle existe en VB(a) ?
pointeur = FreeFile
Open "cheminnom_fichier.txt" For Input As pointeur
Line Input #pointeur, variable_texte
Tu sembles demander l'ouverture (je crois), de n'importe quel fichier
texte avec l'extension "txt" (*.txt)...
Pourquoi il n'est pas nommé ?
Car si on rajoute un fichier texte qui n'a rien à voir, il va se trouver
ouvert éventuellement, ou s'il y a deux fichiers, il se passe quoi ?
Sinon, je ne sais pas non plus pourquoi lire un fichier, alors que tu
as déjà un fichier, celui d'Excel (peut être est-ce pour l'exemple) ?
Pour aller plus vite :
-1-
Si je comprends un peu, ce qui n'est pas certain, tu modifies le format
d'affichage de certaines données, mais ceci en effet, tu peux le faire en
mémoire, notamment s'il n'y en a que 1000, en chargeant tout dans une
variable indicée, puis en effectuant le formatage, la conversion, puis en
réaffichant tout. Donc, si ça provient d'un fichier texte externe, ça doit
se faire avant l'affichage, évidemment, puis on affiche seulement le
résultat, jamais de calculs visuels d'importance.
-2-
Autre possibilité de gagner de la vitesse, c'est de ne pas afficher la
feuille au moment de la conversion, un objet avec la propriété visible =
False va toujours plus vite ! Si ça dure longtemps, tu mets un amuse-oil
(pendant de l'amuse-gueule) pour faire patienter, un message avec un
compteur (ça ralentit quand même... le compteur, mais moins)...
Ben, avec ces deux mesures tu devrais gagner de la vitesse, toutefois
tu semble avoir une bonne maîtrise de la chose, alors tu devrais peut être
le faire en VB ou vbNet afin que ça devienne une fusée...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
Sub Traitement()
'
' Macro1 Macro
' Macro enregistrée le 16/12/2009 par FORCET
'
If Workbooks("Météo 2010.xls").Sheets("Récap").Range("A9") <> "" Then
Workbooks("Météo 2010.xls").Sheets("Récap").Range("A9", "K" &
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Row).ClearContents
End If
ChDrive ("C")
ChDir (ThisWorkbook.Path)
Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:= _
Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:=True, FieldInfo:=Array(Array(1,
2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2),
Array(7, 2), Array(8, 2), _
Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2)),
TrailingMinusNumbers:=True
Fichier = ActiveWorkbook.Name
Feuille = ActiveSheet.Name
i = 3
Do While i <
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row + 1
If Format(Workbooks(Fichier).Sheets(Feuille).Range("K" & i),
"hh:mm:ss") = "00:01:00" Then: Exit Do
i = i + 1
Loop
Workbooks(Fichier).Sheets(Feuille).Range("A" & i, "K" &
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row).Copy
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Offset(1, 0)
Workbooks(Fichier).Close SaveChanges:úlse
'
ChDrive ("C")
ChDir (ThisWorkbook.Path)
Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:= _
Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:=True, FieldInfo:=Array(Array(1,
2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2),
Array(7, 2), Array(8, 2), _
Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2)),
TrailingMinusNumbers:=True
Fichier = ActiveWorkbook.Name
Feuille = ActiveSheet.Name
i = 2
Do While i <
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row + 1
If Format(Workbooks(Fichier).Sheets(Feuille).Range("K" & i),
"hh:mm:ss") = "23:58:00" Then: Exit Do
i = i + 1
Loop
Workbooks(Fichier).Sheets(Feuille).Range("A3", "K" & i).Copy
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Offset(1, 0)
Workbooks(Fichier).Close SaveChanges:úlse
End Sub
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
"Guy72" <Guy_Excel_2003@bonjour.fr> a écrit dans le message de
news:Od4wUdxgKHA.5604@TK2MSFTNGP04.phx.gbl...
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Je regardais un peu, mais je ne connais pas vbA...
Eh oui, la lenteur, c'est bien la la limite d'Excel, le mode interprété
avec affichage à ses limites...
Déjà, pourquoi tu utilises des directives de fichiers assembleur
Microsoft, alors qu'elle existe en VB(a) ?
pointeur = FreeFile
Open "cheminnom_fichier.txt" For Input As pointeur
Line Input #pointeur, variable_texte
Tu sembles demander l'ouverture (je crois), de n'importe quel fichier
texte avec l'extension "txt" (*.txt)...
Pourquoi il n'est pas nommé ?
Car si on rajoute un fichier texte qui n'a rien à voir, il va se trouver
ouvert éventuellement, ou s'il y a deux fichiers, il se passe quoi ?
Sinon, je ne sais pas non plus pourquoi lire un fichier, alors que tu
as déjà un fichier, celui d'Excel (peut être est-ce pour l'exemple) ?
Pour aller plus vite :
-1-
Si je comprends un peu, ce qui n'est pas certain, tu modifies le format
d'affichage de certaines données, mais ceci en effet, tu peux le faire en
mémoire, notamment s'il n'y en a que 1000, en chargeant tout dans une
variable indicée, puis en effectuant le formatage, la conversion, puis en
réaffichant tout. Donc, si ça provient d'un fichier texte externe, ça doit
se faire avant l'affichage, évidemment, puis on affiche seulement le
résultat, jamais de calculs visuels d'importance.
-2-
Autre possibilité de gagner de la vitesse, c'est de ne pas afficher la
feuille au moment de la conversion, un objet avec la propriété visible =
False va toujours plus vite ! Si ça dure longtemps, tu mets un amuse-oil
(pendant de l'amuse-gueule) pour faire patienter, un message avec un
compteur (ça ralentit quand même... le compteur, mais moins)...
Ben, avec ces deux mesures tu devrais gagner de la vitesse, toutefois
tu semble avoir une bonne maîtrise de la chose, alors tu devrais peut être
le faire en VB ou vbNet afin que ça devienne une fusée...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
Sub Traitement()
'
' Macro1 Macro
' Macro enregistrée le 16/12/2009 par FORCET
'
If Workbooks("Météo 2010.xls").Sheets("Récap").Range("A9") <> "" Then
Workbooks("Météo 2010.xls").Sheets("Récap").Range("A9", "K" &
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Row).ClearContents
End If
ChDrive ("C")
ChDir (ThisWorkbook.Path)
Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:= _
Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:=True, FieldInfo:=Array(Array(1,
2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2),
Array(7, 2), Array(8, 2), _
Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2)),
TrailingMinusNumbers:=True
Fichier = ActiveWorkbook.Name
Feuille = ActiveSheet.Name
i = 3
Do While i <
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row + 1
If Format(Workbooks(Fichier).Sheets(Feuille).Range("K" & i),
"hh:mm:ss") = "00:01:00" Then: Exit Do
i = i + 1
Loop
Workbooks(Fichier).Sheets(Feuille).Range("A" & i, "K" &
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row).Copy
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Offset(1, 0)
Workbooks(Fichier).Close SaveChanges:úlse
'
ChDrive ("C")
ChDir (ThisWorkbook.Path)
Fichier = Application.GetOpenFilename("(*.txt),")
Workbooks.OpenText Filename:= _
Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited,
TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:úlse, _
Comma:úlse, Space:úlse, Other:=True, FieldInfo:=Array(Array(1,
2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2),
Array(7, 2), Array(8, 2), _
Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2)),
TrailingMinusNumbers:=True
Fichier = ActiveWorkbook.Name
Feuille = ActiveSheet.Name
i = 2
Do While i <
Workbooks(Fichier).Sheets(Feuille).Range("K65536").End(xlUp).Row + 1
If Format(Workbooks(Fichier).Sheets(Feuille).Range("K" & i),
"hh:mm:ss") = "23:58:00" Then: Exit Do
i = i + 1
Loop
Workbooks(Fichier).Sheets(Feuille).Range("A3", "K" & i).Copy
Workbooks("Météo
2010.xls").Sheets("Récap").Range("A65535").End(xlUp).Offset(1, 0)
Workbooks(Fichier).Close SaveChanges:úlse
End Sub
Sub convertir()
For Each c In Range([A9], [J490].End(xlUp))
If Val(c.Value) <> 0 Then c.Value = Val(c.Value)
Next c
End Sub
"Guy72" a écrit dans le message de
news:Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
--
Cordialement
Guy
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN
Bonjour,
Peut-on éviter de se servir de la macro "convertir" (elle est trop
lente), même si je la mets dans le code?
Peut être imbriquer dans le code du autre façon ?
Merci de votre aide.
http://cjoint.com/?mwp62Z5gqN