Pbm macro Excel 2003 vers excel 2010 Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Z
Zoub
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 3 juin 2013
Version d'Excel : 2010

Message par Zoub » 3 juin 2013, 17:25

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
M
Manouk
Membre habitué
Membre habitué
Messages : 80
Inscrit le : 19 avril 2013
Version d'Excel : Pc 2003 Fr / Mac 2011 Fr

Message par Manouk » 3 juin 2013, 17:31

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
Shunk Manitu Tanka Wanajii. Kishni Hina Aïki.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'917
Appréciations reçues : 460
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 3 juin 2013, 18:57

Bonsoir,
Tu peux peut-être commencer par :
Dim Col as byte
Et remplacer Col="r" par col=18
A te relire
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Z
Zoub
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 3 juin 2013
Version d'Excel : 2010

Message par Zoub » 3 juin 2013, 20:52

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
Z
Zoub
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 3 juin 2013
Version d'Excel : 2010

Message par Zoub » 6 juin 2013, 09:51

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
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'917
Appréciations reçues : 460
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 6 juin 2013, 10:29

Bonjour
Tu peux commencer par insérer :
Application.ScreenUpdating = False
au début de ta macro.
Cdlt
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Z
Zoub
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 3 juin 2013
Version d'Excel : 2010

Message par Zoub » 6 juin 2013, 12:24

bonne idée,

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

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

Merci
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'917
Appréciations reçues : 460
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 6 juin 2013, 12:28

Re,
Envoies un petit fichier pour que l'on comprenne bien ton problème :D
Cdlt
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Z
Zoub
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 3 juin 2013
Version d'Excel : 2010

Message par Zoub » 6 juin 2013, 13:20

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
fichier exemple.xlsm
(208.1 Kio) Téléchargé 15 fois
Z
Zoub
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 3 juin 2013
Version d'Excel : 2010

Message par Zoub » 12 juin 2013, 12:12

Salut Jean-Eric,

t'a pu jeter un oeil sur le fichier ?

merci

Zoub
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message