COMMENT REDUIRE LA TAILLE DE MA MACRO? [Résolu]

simonbaron 9 Messages postés lundi 23 mai 2011Date d'inscription 23 janvier 2013 Dernière intervention - 10 juin 2011 à 21:03 - Dernière réponse : pile_poil 682 Messages postés vendredi 6 avril 2007Date d'inscription 4 août 2012 Dernière intervention
- 11 juin 2011 à 11:32
Bonjour,

J'ai crée une macro pour récuperer des données à partir de plusieurs onglets dans un fichier et les coller dans un tableau (onglet "REGISTRE") qui se trouve dans le meme ficheir. J'ai ajouté des messages d'erreur si les cellules qui m'interessent ne sont pas completées. Mon fichier fait 9Mega, je devrais essayer de réduire sa taille, mais je n'ai aucune idée de comment modifier ma macro. Quelqu'un pourrait m'aider SVP? Merci beaucoup, je copie le texte de ma macro, il est un peu long mais le principe est assez simple: on ouvre l'onglet avec le tableau, on selectionne la première cellule vide d'une ligne, on ouvre le premier onglet avec les données à récupérer, on vérifie si cetaines cellules ont été remplies, on copie les données, on les colle dans le tableau et on passe à la ligne suivante. On repète ça pour tous les onglets. Merci beaucoup!

Sub VALIDATIONFINALE()

Sheets("REGISTRE").Select
Range("IV3").End(xlToLeft).Offset(0, 1).Select
Sheets("Customers complaints").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!": Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Customers complaints").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Customers complaints").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV4").End(xlToLeft).Offset(0, 1).Select
Sheets("Unavailability sub. services").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-1, 0).Range("A1:C1").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Unavailability sub. services").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Unavailability sub. services").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Unavailability sub. services").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False



Range("IV5").End(xlToLeft).Offset(0, 1).Select
Sheets("Unavailability major applic.").Select

If Range("D13").Value "" Or Range("D16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-2, 0).Range("A1:C2").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Unavailability major applic.").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Unavailability major applic.").Select
Range("D16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Unavailability major applic.").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV6").End(xlToLeft).Offset(0, 1).Select
Sheets("Turn over").Select

If Range("D13").Value "" Or Range("D16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-3, 0).Range("A1:C3").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Turn over").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Turn over").Select
Range("D16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Turn over").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV7").End(xlToLeft).Offset(0, 1).Select
Sheets("Absence").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-4, 0).Range("A1:C4").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Absence").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Absence").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Absence").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV8").End(xlToLeft).Offset(0, 1).Select
Sheets("Rate of absenteeism").Select

If Range("D13").Value "" Or Range("D16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-5, 0).Range("A1:C5").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Rate of absenteeism").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Rate of absenteeism").Select
Range("D16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Rate of absenteeism").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV9").End(xlToLeft).Offset(0, 1).Select
Sheets("Respect time limit fin. cert.").Select

If Range("B16").Value "" Or Range("B18").Value "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-6, 0).Range("A1:C6").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Respect time limit fin. cert.").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Respect time limit fin. cert.").Select
Range("D16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Respect time limit fin. cert.").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV10").End(xlToLeft).Offset(0, 1).Select
Sheets("Statutory audit report with res").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-7, 0).Range("A1:C7").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Statutory audit report with res").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Statutory audit report with res").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Statutory audit report with res").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV11").End(xlToLeft).Offset(0, 1).Select
Sheets("Major recomm. not put in place").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-8, 0).Range("A1:C8").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Major recomm. not put in place").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Major recomm. not put in place").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Major recomm. not put in place").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV12").End(xlToLeft).Offset(0, 1).Select
Sheets("Failure vital-critical staff").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-9, 0).Range("A1:C9").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Failure vital-critical staff").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Failure vital-critical staff").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Failure vital-critical staff").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("IV13").End(xlToLeft).Offset(0, 1).Select
Sheets("Systems interruption").Select

If Range("D13").Value "" Or Range("B16").Value "" Or Range("B18").Value = "" Then
MsgBox " SOME DATA IS MISSING!!!"
Sheets("REGISTRE").Select
ActiveCell.Offset(-10, 0).Range("A1:C10").Select
ActiveCell.Activate
Selection.ClearContents
Sheets("Systems interruption").Select: Exit Sub
End If

Range("D13:G13").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Systems interruption").Select
Range("B16:G16").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select

Sheets("Systems interruption").Select
Range("B18:G18").Select
Selection.Copy
Sheets("REGISTRE").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select


MsgBox " THANKS!"



End Sub
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
pile_poil 682 Messages postés vendredi 6 avril 2007Date d'inscription 4 août 2012 Dernière intervention - 11 juin 2011 à 11:32
3
Merci
bonjour
tu as écrit :
Sheets("Systems interruption").Select
Range("B18:G18").Select
Selection.Copy

tu pourrais rendre ça plus digeste en faisant:
Sheets("Systems interruption").Range("B18:G18").Copy

cette surabondance de .Select est nauséeuse de plus elle ralentit l'exécution du code puisqu'elle implique des ré-affichages perpétuels de pages

applique cette clarification du code systématiquement et tu devrais t'en trouver bien


si c'est la solution, penser : REPONSE ACCEPTEE

Merci pile_poil 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de pile_poil

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.