× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Accelerer une macroSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
noe2008
  Posté le 26/01/2019 @ 21:03 
Aller en bas de la page 
Petit astucien

Bonsoir à tous les astuciens

l'excecution de ma macro prend un temps insupportable meme lorsque je traite un nombre limité de fichiers excel pouver vous m'aider à l’accélérer merci

Sub data_synthese()

Sheets("Notescc").Activate

Range("D1:Z15000").ClearContents

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

Dim Fich As String, Sh As Worksheet, i As Long, L As Long, CD As Range

Dim Wbk As Workbook, Coll, K As Long

Set Sh = ThisWorkbook.Sheets("Notescc")

Coll = Application.GetOpenFilename(, , , , True)

For K = 1 To UBound(Coll)

Fich = Coll(K)

Set Wbk = Workbooks.Open(Fich)

L = (K - 1) * 100 + 1

With Wbk.Sheets("Notescc")

Set CD = .Range("D1:Z100")

Sh.Cells(L, 4).Resize(100, 23).Value = CD.Value

Wbk.Close False

End With

Next K

Application.Calculation = xlCalculationAutomatic

Sheets("1").Select

Range("C3").Select

End Sub

Publicité
Debrief
 Posté le 27/01/2019 à 05:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Je l'ai exécuté avec 4 fichiers de test, certes avec des cellules vides mais je ne crois pas que ça change quoi que ce soit, et ça n'a pris que 2 ou 3 secondes.

Je ne sais pas si Sheets("1").Select est intentionnel ou si tu veux dire Sheets(1).Select.

Cordialement,
D.

Debrief
 Posté le 27/01/2019 à 05:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

A la lecture de ton code, je viens de découvrir quelque chose que j'ignorais totalement en VBA:

Dim i, j as Integer ne fait pas de i et de j des entiers, seulement j est un entier et i est un Variant. Ça m'en retourne l'estomac vu le nombre de Macros que j'ai développées en pensant le contraire

Debrief
 Posté le 27/01/2019 à 11:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai mis "aaaaaaaaaaaaaaaaaaaaaaaaaa" dans "D1:Z100" dans les 20 fichiers test et un calcul du temps elapse et ça donne 6 secondes, soit 0,3 seconde par fichier, je pense surtout dû au temps d'ouverture et fermeture.

C'est ça que tu trouves long ?

noe2008
 Posté le 27/01/2019 à 11:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut Debrief

Merci pour ton éclaircissement , je crois aussi que cela revient a mon classeur qui est un peu volumineux a cause des formules sur 15000 lignes

noe2008
 Posté le 27/01/2019 à 12:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je vais essayer d'effacer des lignes qui contiennent des formules de la plage A1:Z15000 pour diminuer le volume du classeur

les cellules sont "A63:C100" ; "A163:C200" ; "A263:C300" ;................. "A14963:C15000"

y a t-il une macro qui pourra faire ce travail au lieu de le faire manuellement et merci

noe2008
 Posté le 27/01/2019 à 13:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je crois que j'ai trouvé voila pour toute fin utile merci et bon dimanche

Sub effacer()

Application.Calculation = xlCalculationManual

Dim i As Integer

For i = 1 To 150

Range(Cells(63 + (i - 1) * 100, 1), Cells(i * 100, 3)).ClearContents

Next i

Application.Calculation = xlCalculationAutomatic

End Sub

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
18,99 €Carte mémoire SDXC Sandisk Ultra 128 Go à 18,99 €
Valable jusqu'au 01 Décembre

Amazon fait une promotion sur la carte mémoire SDXC Sandisk Ultra 128 Go qui passe à 18,99 €. Cette carte mémoire UHS-I autorise des débits  jusqu'à 80 Mo/s en lecture. 


> Voir l'offre
69 €SSD externe portable Samsung T5 500 Go à 69 €
Valable jusqu'au 30 Novembre

Amazon fait une promotion sur le SSD externe portable Samsung T5 500 Go qui passe à 69 € livré gratuitement alors qu'on trouve le SSD à 110 € ailleurs. Le disque SSD Samsung T5 portable est plus de deux fois plus petit que la taille de votre smartphone et fournit jusqu'à 5 fois la vitesse d'un disque dur portable. Apprenez à travailler en quelques secondes, transférez de grandes bibliothèques de vidéos et de photos à des vitesses pouvant atteindre 550 Mo/s. Vous ne craindrez pas de l'emporter partout avec vous grâce à sa conception robuste et résistante avec un coeur de SSD résistant aux chocs. Grâce à son interface USB-C, vous pouvez le brancher sur votre ordinateur, mais également sur un smartphone ou une tablette. Un câble USB-C vers USB-A (prise USB classique) est fourni.


> Voir l'offre
155,65 €SSD SanDisk Plus 2 To à 155,65 € livré
Valable jusqu'au 30 Novembre

Amazon Allemagne propose actuellement un coupon de réduction sur le SSD SanDisk Plus 2 To qui passe à 151,02 € (avec la TVA ajustée). Comptez 4,63 € pour la livraison en France soit un total de 155,65 € en France. Une très bonne affaire pour ce SSD très fiable et performant qui offre des débits de 530 Mo/s en lecture et 445 Mo/s en écriture. Il est garanti 3 ans. On le trouve ailleurs à partir de 220 €. 

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre

Sujets relatifs
Accelerer une Macro
masquer colonne avec macro
word macro enregistrer sous
Macro excel
Macro - LibreOffice
Macro VBa copier /coller dans autre feuille a modifier ??
Lancer macro automatiquement à chaque modif cellule
fusionner des cellules par macro
modifie une macro
Petit macro qui ne fonctionne pas
Plus de sujets relatifs à Accelerer une macro
 > Tous les forums > Forum Bureautique