Pbm macro Excel 2003 vers Excel 2010

Bonjour à tous,

Voilà mon pbm:

J'avais un macro qui marchait super bien en excel 2003 mais j'ai du sauvegarder mon fichier en excel 2010 avec prise en charge de macros (xlsm). Depuis j'ai un pbm : msg erreur : Erreur execution "1004" : la methode insert de la classe range a échoué"

Voici la macro qui doit rechercher dans une ligne de la colonne "R" si une valeur à été notée et la copier pour l'inserer dans la feuille "archives". Toutes les lignes bien sur n'ont pas de valeur renseignées.

Sub copierresultatnonnul()

Dim Lig As Long

Dim Col As String

Dim NbrLig As Long

Dim NumLig As Long

Sheets("archives").Activate

Col = "r"

NumLig = 1

With Sheets("insersion chimio")

NbrLig = .Cells(65536, Col).End(xlUp).Row

For Lig = 2 To NbrLig

If .Cells(Lig, Col).Value <> "" Then

.Cells(Lig, Col).EntireRow.Copy

NumLig = NumLig + 1

Sheets("archives").Cells(NumLig, 1).Insert Shift:=xlDown

End If

Next

End With

Sheets("insersion chimio").Activate

Call effaceretenregistrer

End Sub

Auriez vous une idée d'ou cela peut venir ?

Si je peux abuser un peu, est-ce que quelqu'un pourrait "m'accélérer" la macro, car il prend un temps assez conséquent pour se réaliser (quand ça marchait) ?

Merci d'avance

Zoub

Bonjour,

a tout hasard...

Entre ses deux lignes ne faut-il pas réactiver la feuille archives ?

NumLig = NumLig + 1

Sheets("archives").Cells(NumLig, 1).Insert Shift:=xlDown

Bonsoir,

Tu peux peut-être commencer par :

Dim Col as byte

Et remplacer Col="r" par col=18

A te relire

Cdlt.

Je fais les 2 modifs demain et je vous tiens au courant.

J'ai oublier de préciser que c la ligne entière que la macro doit copier pour être insérée dans " archives"

Zoub

Salut les amis, j'ai fait les 2 modifications que vous m'avez conseillé et ..... ça marche !!!!

merci +++++

Cependant cela n'a pas "accéléré" le processus, c'est quand même lent. Une idée comment le "booster" ?


Dsl Jean eric mais je voulais cocher que ta solution a été la bonne aussi mais je ne pouvais pas car j'avais mis une coche à Manouk. c'est nul ce truc, on peut avoir la solution par 2 personnes. la preuve ....

Zoub

Bonjour

Tu peux commencer par insérer :

Application.ScreenUpdating = False

au début de ta macro.

Cdlt

bonne idée,

ça a permis de l'accélerer un peu.

Sinon penses-tu qu'il faut revoir la macro en profondeur ?

Merci

Re,

Envoies un petit fichier pour que l'on comprenne bien ton problème

Cdlt

Je viens de comprendre pquoi c'est lent :

c'est parceque dans l'onglet archives j'ai plus de 6000 lignes de données déjà archivées. En faisant un fichier plus épuré pour te l'envoyer la macro se réalise super rapidement.

Sinon pour info, je dose des chimiothérapies avec un appareil qui me rends des résultats. ces résultats sont renseignes dans la colonne R du fichier qui comprend toutes les chimio réalisées, certains sont dosées d'autres pas. La macro permets donc de selectionner que les lignes ou une valeur est renseignée dans la colonne r et ainsi il copie la ligne et l'insère dans l'onglet archives.

merci pour ton aide

Zoub

17fichier-exemple.xlsm (208.10 Ko)

Salut Jean-Eric,

t'a pu jeter un oeil sur le fichier ?

merci

Zoub

Bonjour,

Pas pour l'instant. Mais je le garde en mémoire...

Pour optimiser les codes, il faut revoir les déclarations des variables, éviter les "Activate", comprendre la structure du fichier, etc...

C'est un travail à temps plein et si cela fonctionne, alors

Cdlt

Rechercher des sujets similaires à "pbm macro 2003 2010"