Déroulement trop rapide d'une macro

Bonjour à tous,

J'ai le contexte suivant:

J'ai écrit une macro assez simple qui ajoute des éléments copiés dans un tableau. Les éléments sont ajoutés dans les 7 premières colonnes tandis que les 10 colonnes suivantes sont des colonnes calculées en fonctions des 7 premières.

Une fois les éléments ajoutés, le tableau est trié, puis l'onglet est mise à jour "actualisation des calculs".

Ensuite j'opère une sélection des colonnes calculées qui est "copiée/collée valeur" sur elle-même.

' MAJ_Hist_Ind Macro

'Sélection de la cellule correspondant à la première colonne et à la première ligne disponible après le tableau "Hist_Ind"

Sheets("91-Historique Indices").Select

Range(Range("Cellule_dispo_apres_Hist_Ind")).Select

'Copie des nouveaux enregistrements

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

'Trie du tableau "Hist_Ind"

Application.Goto Reference:="Hist_Ind"

ActiveWorkbook.Worksheets("91-Historique Indices").ListObjects("Hist_Ind").Sort _

.SortFields.Clear

ActiveWorkbook.Worksheets("91-Historique Indices").ListObjects("Hist_Ind").Sort _

.SortFields.Add Key:=Range("Hist_Ind[Code ISIN]"), SortOn:=xlSortOnValues, _

Order:=xlAscending, DataOption:=xlSortNormal

ActiveWorkbook.Worksheets("91-Historique Indices").ListObjects("Hist_Ind").Sort _

.SortFields.Add Key:=Range("Hist_Ind[Date]"), SortOn:=xlSortOnValues, _

Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("91-Historique Indices").ListObjects("Hist_Ind") _

.Sort

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

'Mise à jour de l'onglet

ActiveSheet.Calculate

'Copier // Coller valeur des colones calculées

Range("I2:N" & Range("Fin_de_liste_Hist_Ind")).Select

Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

End Sub

Mon problème est le suivant:

Le copié/collé s'est effectué avant que la mise à jour de la feuille soit terminée.

Ma question est donc la suivante:

Comment débuter l'étape du copier/collé qu'une fois la mise à jour terminée?

D'avance merci pour vos réponses.

Cordialement

Bonsoir

tu rajoutes un DoEvents après activesheet.calculate et tu essayes

a+

papou

Bonsoir,

Sauf erreur de ma part, au début du code, tu colles sans voir fait de copie :

' MAJ_Hist_Ind Macro

'Sélection de la cellule correspondant à la première colonne et à la première ligne disponible après le tableau "Hist_Ind"

Sheets("91-Historique Indices").Select

Range(Range("Cellule_dispo_apres_Hist_Ind")).Select

'Copie des nouveaux enregistrements

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Ton problème ne vient pas de là ?

Benoît Marchand

[Benead]

Bonjour paritec,

Grâce à ton conseil la mise à jour se fait maintenant jusqu'au bout avant d'enchainer sur le copié/collé.

Merci et a bientôt

Cordialement

paritec a écrit :

Bonsoir

tu rajoutes un DoEvents après activesheet.calculate et tu essayes

a+

papou


Bonjour Benoit,

Merci pour ta réponse, j'ai oublié de préciser qu'avant de lancer la macro je fais une sélection dans un autre fichier que je copie.

Cordialement

Benead a écrit :

Bonsoir,

Sauf erreur de ma part, au début du code, tu colles sans voir fait de copie :

' MAJ_Hist_Ind Macro

'Sélection de la cellule correspondant à la première colonne et à la première ligne disponible après le tableau "Hist_Ind"

Sheets("91-Historique Indices").Select

Range(Range("Cellule_dispo_apres_Hist_Ind")).Select

'Copie des nouveaux enregistrements

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Ton problème ne vient pas de là ?

Benoît Marchand

[Benead]

Rechercher des sujets similaires à "deroulement trop rapide macro"