Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour,
longue comment, elle ne finit jamais ? Quelle est la taille des éléments que
tu copies-colles ? Aussi peux-tu nous dire la vitesse de rotation de ton
disque dur et la RAM dont tu disposes sur l'ordinateur où tu exécutes la
macro ?
Cordialement,
Alexandre
"Sunburn" a écrit dans le message de
news:Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour,
longue comment, elle ne finit jamais ? Quelle est la taille des éléments que
tu copies-colles ? Aussi peux-tu nous dire la vitesse de rotation de ton
disque dur et la RAM dont tu disposes sur l'ordinateur où tu exécutes la
macro ?
Cordialement,
Alexandre
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news:565F7C1C-13F7-4087-B266-E14E45BFCEE0@microsoft.com...
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour,
longue comment, elle ne finit jamais ? Quelle est la taille des éléments que
tu copies-colles ? Aussi peux-tu nous dire la vitesse de rotation de ton
disque dur et la RAM dont tu disposes sur l'ordinateur où tu exécutes la
macro ?
Cordialement,
Alexandre
"Sunburn" a écrit dans le message de
news:Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
re
en fait, cette fonction met 4 à 5 minutes.
Chaque zones (donc y'en a 18) fait 17 lignes * 7 colonnes.
J'ai fait le test sur des zones presques vides (seules une trentaine de
cellules avaient du texte, pas de formules, rien de lourd quoi).
Je suis sur windows XP,excel 2002, portable IBM Pentium 1.6GHZ, 1.5 Go de
RAM.....
Donc la config doit etre largement suffisante.
Merci si tu as une idée, mais je pense qu'il faut que je repense le code.
YannBonjour,
longue comment, elle ne finit jamais ? Quelle est la taille des éléments
que
tu copies-colles ? Aussi peux-tu nous dire la vitesse de rotation de ton
disque dur et la RAM dont tu disposes sur l'ordinateur où tu exécutes la
macro ?
Cordialement,
Alexandre
"Sunburn" a écrit dans le message de
news:Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques,
et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible
de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
re
en fait, cette fonction met 4 à 5 minutes.
Chaque zones (donc y'en a 18) fait 17 lignes * 7 colonnes.
J'ai fait le test sur des zones presques vides (seules une trentaine de
cellules avaient du texte, pas de formules, rien de lourd quoi).
Je suis sur windows XP,excel 2002, portable IBM Pentium 1.6GHZ, 1.5 Go de
RAM.....
Donc la config doit etre largement suffisante.
Merci si tu as une idée, mais je pense qu'il faut que je repense le code.
Yann
Bonjour,
longue comment, elle ne finit jamais ? Quelle est la taille des éléments
que
tu copies-colles ? Aussi peux-tu nous dire la vitesse de rotation de ton
disque dur et la RAM dont tu disposes sur l'ordinateur où tu exécutes la
macro ?
Cordialement,
Alexandre
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news:565F7C1C-13F7-4087-B266-E14E45BFCEE0@microsoft.com...
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques,
et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible
de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
re
en fait, cette fonction met 4 à 5 minutes.
Chaque zones (donc y'en a 18) fait 17 lignes * 7 colonnes.
J'ai fait le test sur des zones presques vides (seules une trentaine de
cellules avaient du texte, pas de formules, rien de lourd quoi).
Je suis sur windows XP,excel 2002, portable IBM Pentium 1.6GHZ, 1.5 Go de
RAM.....
Donc la config doit etre largement suffisante.
Merci si tu as une idée, mais je pense qu'il faut que je repense le code.
YannBonjour,
longue comment, elle ne finit jamais ? Quelle est la taille des éléments
que
tu copies-colles ? Aussi peux-tu nous dire la vitesse de rotation de ton
disque dur et la RAM dont tu disposes sur l'ordinateur où tu exécutes la
macro ?
Cordialement,
Alexandre
"Sunburn" a écrit dans le message de
news:Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques,
et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible
de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
bonjour yann
j'ai le même problème avec une macro et ne perds pas ton temps à refondre ta
macro : cela ne changera rien, crois-moi
VBA, c'est comme le coeur ; ça a des raisons que la raison ne connaît pas
la seule satisfaction que tu puisses tirer de cette douloureuse affaire,
c'est d'écrire à bilou pour lui dire que ton temps est aussi précieux que le
sien...je sais, il s'en fout mais toi, au moins, tu te sentiras mieux
jps
bonjour yann
j'ai le même problème avec une macro et ne perds pas ton temps à refondre ta
macro : cela ne changera rien, crois-moi
VBA, c'est comme le coeur ; ça a des raisons que la raison ne connaît pas
la seule satisfaction que tu puisses tirer de cette douloureuse affaire,
c'est d'écrire à bilou pour lui dire que ton temps est aussi précieux que le
sien...je sais, il s'en fout mais toi, au moins, tu te sentiras mieux
jps
bonjour yann
j'ai le même problème avec une macro et ne perds pas ton temps à refondre ta
macro : cela ne changera rien, crois-moi
VBA, c'est comme le coeur ; ça a des raisons que la raison ne connaît pas
la seule satisfaction que tu puisses tirer de cette douloureuse affaire,
c'est d'écrire à bilou pour lui dire que ton temps est aussi précieux que le
sien...je sais, il s'en fout mais toi, au moins, tu te sentiras mieux
jps
merci JPS, alors je dois prendre mon mal en patience....
Et ce cher Bilou, bien qu'il devienne humaniste et caritatif, n'aura pas
de
temps pour moi, c'est clair.
Bon, je vais rester zen, car de toute façon, je ne l'utiliserai pas 10
fois
par jour cette fonction, sinon je vais faire une overdose de café.... ;))
merci à toi.bonjour yann
j'ai le même problème avec une macro et ne perds pas ton temps à refondre
ta
macro : cela ne changera rien, crois-moi
VBA, c'est comme le coeur ; ça a des raisons que la raison ne connaît pas
la seule satisfaction que tu puisses tirer de cette douloureuse affaire,
c'est d'écrire à bilou pour lui dire que ton temps est aussi précieux que
le
sien...je sais, il s'en fout mais toi, au moins, tu te sentiras mieux
jps
merci JPS, alors je dois prendre mon mal en patience....
Et ce cher Bilou, bien qu'il devienne humaniste et caritatif, n'aura pas
de
temps pour moi, c'est clair.
Bon, je vais rester zen, car de toute façon, je ne l'utiliserai pas 10
fois
par jour cette fonction, sinon je vais faire une overdose de café.... ;))
merci à toi.
bonjour yann
j'ai le même problème avec une macro et ne perds pas ton temps à refondre
ta
macro : cela ne changera rien, crois-moi
VBA, c'est comme le coeur ; ça a des raisons que la raison ne connaît pas
la seule satisfaction que tu puisses tirer de cette douloureuse affaire,
c'est d'écrire à bilou pour lui dire que ton temps est aussi précieux que
le
sien...je sais, il s'en fout mais toi, au moins, tu te sentiras mieux
jps
merci JPS, alors je dois prendre mon mal en patience....
Et ce cher Bilou, bien qu'il devienne humaniste et caritatif, n'aura pas
de
temps pour moi, c'est clair.
Bon, je vais rester zen, car de toute façon, je ne l'utiliserai pas 10
fois
par jour cette fonction, sinon je vais faire une overdose de café.... ;))
merci à toi.bonjour yann
j'ai le même problème avec une macro et ne perds pas ton temps à refondre
ta
macro : cela ne changera rien, crois-moi
VBA, c'est comme le coeur ; ça a des raisons que la raison ne connaît pas
la seule satisfaction que tu puisses tirer de cette douloureuse affaire,
c'est d'écrire à bilou pour lui dire que ton temps est aussi précieux que
le
sien...je sais, il s'en fout mais toi, au moins, tu te sentiras mieux
jps
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour, j'ai une macro afin de copier-coller des éléments spécifiques, et
ensuite supprimer les lignes vides (grâce à JB, merci encore)
Mais cette macro est beaucoup trop longue à s'executer. est-ce possible de
gérer ce problème de timming?faire plus court?
je vous remercie beaucoup.
yann
-------
Sub ESSAI()
Application.ScreenUpdating = False
[SYNTH1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A11]
[PB1].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A30]
[SYNTH2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A50]
[PB2].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A70]
[SYNTH3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A90]
[PB3].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A110]
[SYNTH4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A130]
[PB4].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A150]
[SYNTH5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A170]
[PB5].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A190]
[SYNTH6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A210]
[PB6].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A230]
[SYNTH7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A250]
[PB7].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A270]
[SYNTH8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A290]
[PB8].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A310]
[SYNTH9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy
Sheets("1B").[A330]
[PB9].SpecialCells(xlCellTypeConstants, 23).EntireRow.Copy Sheets("1B").[A350]
Dim Ligne As Variant
Dim Num As Variant
With ActiveSheet.UsedRange
Ligne = .Row + .Rows.Count - 1
End With
For Num = Ligne To 1 Step -1
If Application.CountA(Rows(Num)) = 0 Then Rows(Num).Delete
Next Num
Application.ScreenUpdating = True
End Sub
----------
Bonjour
Si dans les plages que tu copies il y a des formules qui sont
recalculées chaque fois que tu ajoutes une donnée sur ta feuille tu
arrives très très vite à des temps de traitement inutilement longs.
Mets dans ta macro ton mode de calcul sur manuel en début de macro et
rétablit le à la fin sur automatique. C'est magique le temps que tu
gagnes dans certains cas.
Et bien bien sur application.screenupdatingúlse.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Bonjour
Si dans les plages que tu copies il y a des formules qui sont
recalculées chaque fois que tu ajoutes une donnée sur ta feuille tu
arrives très très vite à des temps de traitement inutilement longs.
Mets dans ta macro ton mode de calcul sur manuel en début de macro et
rétablit le à la fin sur automatique. C'est magique le temps que tu
gagnes dans certains cas.
Et bien bien sur application.screenupdatingúlse.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
Bonjour
Si dans les plages que tu copies il y a des formules qui sont
recalculées chaque fois que tu ajoutes une donnée sur ta feuille tu
arrives très très vite à des temps de traitement inutilement longs.
Mets dans ta macro ton mode de calcul sur manuel en début de macro et
rétablit le à la fin sur automatique. C'est magique le temps que tu
gagnes dans certains cas.
Et bien bien sur application.screenupdatingúlse.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net