Action répétitive sur plusieurs feuilles de calcul
Résolu/Fermé
sab
-
10 févr. 2016 à 17:05
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 19 févr. 2016 à 15:12
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 19 févr. 2016 à 15:12
A voir également:
- Action répétitive sur plusieurs feuilles de calcul
- Action - Guide
- Calcul moyenne excel - Guide
- Tubidy film d'action telecharger - Télécharger - TV & Vidéo
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Action fans - Accueil - Guide arnaque
2 réponses
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
Modifié par Theo.R le 10/02/2016 à 17:07
Modifié par Theo.R le 10/02/2016 à 17:07
En soi il suffit d'ajouter juste en dessous du for... :
De plus précisez bien "Next i" et pas juste "Next" en fin de boucle.
Après votre code est très lourd et pourrait être optimisé !
Sheets(i).Select
De plus précisez bien "Next i" et pas juste "Next" en fin de boucle.
Après votre code est très lourd et pourrait être optimisé !
Bonjour,
Merci pour ton aide mais j'avais trouvé entre temps.
En effet mon code est lourd, je vais essayer d'optimiser mais je commence
seulement une auto formation en vba donc c'est un peu difficile.
si tu peux me donner une idée de départ ça m'aiderait.
Cdlt
Merci pour ton aide mais j'avais trouvé entre temps.
En effet mon code est lourd, je vais essayer d'optimiser mais je commence
seulement une auto formation en vba donc c'est un peu difficile.
si tu peux me donner une idée de départ ça m'aiderait.
Cdlt
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
12 févr. 2016 à 10:06
12 févr. 2016 à 10:06
pas de souci j'ai commencé pour ma part VBA seul il y a 1 an donc je comprends ^^
Conseils :
1) supprimez tous les .Select possibles ! ça commence par les .Select inutiles comme la 1er dans les 2 suivant :
2) Pour les copier-coller, au lieu de :
Essayez :
PS: ça contribuera au 1) ;)
ça me semble déjà un bon début pour épurer votre code et gagner en performance. Pour la suite, on verra si des boucles ou autre peuvent être mises en place pour des actions répétitives car je vois bcp de copier-coller..
Conseils :
1) supprimez tous les .Select possibles ! ça commence par les .Select inutiles comme la 1er dans les 2 suivant :
Range("a3").Select
Columns("a:I").Select
2) Pour les copier-coller, au lieu de :
Range("O2").Activate
Selection.Copy
Columns("A:A").Select
Range("A2").Activate
ActiveSheet.Paste
Essayez :
Range("A2").value = Range("O2").value
PS: ça contribuera au 1) ;)
ça me semble déjà un bon début pour épurer votre code et gagner en performance. Pour la suite, on verra si des boucles ou autre peuvent être mises en place pour des actions répétitives car je vois bcp de copier-coller..
sab
>
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
12 févr. 2016 à 10:25
12 févr. 2016 à 10:25
ok je vais voir ce que je peux faire dès que possible et te redis.
Merci bonne journée
Merci bonne journée
sabw
>
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
19 févr. 2016 à 14:53
19 févr. 2016 à 14:53
Bonjour, me revoilà j'ai réussi à optimiser du coup la macro ressemble à ça et le mieux ça fonctionne bien, merci pour les tuyaux ça m'a bien aidé.
Sub dailyjour()
Dim K As Integer
Dim I As Integer
K = Sheets.Count
For I = 1 To K
Sheets(I).Activate
Range("a3").Select
Columns("A:G").Value = Columns("O:U").Value
Columns("O:U").Select
Selection.ClearContents
Range("O1:U2").Value = Range("A1:G2").Value
Range("V3:Z2").Value = Range("I1:M2").Value
Columns("I:M").Select
Selection.ClearContents
Range("I1:M2").Value = Range("V3:Z2").Value
Range("V3:Z2").Select
Selection.ClearContents
Range("A3").Select
Next I
Sheets(1).Select
Range("A3").Select
End Sub
Sub dailyjour()
Dim K As Integer
Dim I As Integer
K = Sheets.Count
For I = 1 To K
Sheets(I).Activate
Range("a3").Select
Columns("A:G").Value = Columns("O:U").Value
Columns("O:U").Select
Selection.ClearContents
Range("O1:U2").Value = Range("A1:G2").Value
Range("V3:Z2").Value = Range("I1:M2").Value
Columns("I:M").Select
Selection.ClearContents
Range("I1:M2").Value = Range("V3:Z2").Value
Range("V3:Z2").Select
Selection.ClearContents
Range("A3").Select
Next I
Sheets(1).Select
Range("A3").Select
End Sub
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
>
sabw
19 févr. 2016 à 15:12
19 févr. 2016 à 15:12
Encore un conseil :
Au lieu de
Essayez :
bonne continuation ;)
Au lieu de
Columns("O:U").Select
Selection.ClearContents
Essayez :
Columns("O:U").ClearContents
bonne continuation ;)