XL 2013 Accélerer temps d'une macro - Résolu

fredtu

XLDnaute Junior
Bonjour à tous,

Je vous explique le pb que je n'arrive pas à résoudre.
Dans mon classeur, j'ai deux Feuilles. Saisie des données (c'est un formulaire) et Données dans laquelle je veux rappatrier les infos que j'ai saisi dans mon formulaire avant de ne remettre ce dernier à vide.

J'ai utiliser l'enregistreur de Macro :
le code :

Sub Saisie()

'
' Saisie Macro
' Sheets("Données").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ' Insertion d'une nouvelle ligne

Sheets("Saisie des données").Select
Range("C4").Select
Selection.Copy
Sheets("Données").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie des données").Select
Range("C5").Select
Selection.Copy
Sheets("Données").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("Saisie des données").Select
Range("C4:C23").Select
Selection.ClearContents
Range("C4").Select

Sub Saisie()

[\Quote]

Afin de gagner du temps, j'ai modfié ma macro comme suit :
Sub Saisie()
'
' Saisie Macro

Sheets("Données").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ' Insertion d'une nouvelle ligne

Sheets("Saisie des données").Range("C4:C23").Value = Application.Transpose(Sheets("Données").Range("A3:T3").Value)

Sheets("Saisie des données").Select

Range("C4:C23").Select

Selection.ClearContents

Range("C4").Select

End Sub

[\Quote]

Sauf que rien n'est copié dans ma feuille Données.

Pouvez-vous m'aider ? Merci d'avance.

Fredtu
 

Hieu

XLDnaute Impliqué
Petit test à l'aveuglette ^^

VB:
Sub Saisie()
Sheets("Données").Rows("3:3").Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove ' Insertion d'une nouvelle ligne

For i = 0 To 1
Sheets("Saisie des données").Range("C4").Offset(i, 0).Copy
Sheets("Données").Range("A3").Offset(0, i).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Next i

Sheets("Saisie des données").Range("C4:C23").ClearContents

End Sub
 

fredtu

XLDnaute Junior
Merci pour votre réponse.
Votre proposition simplifie le code puisque j'ai 19 valeurs à copier.
Mais ça ne réduit pas le temps d’exécution de la macro.
Je joins un un exemple du fichier.

Merci d'avance pour votre aide.
 

Pièces jointes

  • Tableau.xlsm
    23 KB · Affichages: 34

Discussions similaires

Réponses
2
Affichages
104

Statistiques des forums

Discussions
312 046
Messages
2 084 851
Membres
102 687
dernier inscrit
Biquet78