Erreur 1004

Fermé
fanein - Modifié le 11 déc. 2019 à 11:51
fanein Messages postés 9 Date d'inscription mercredi 11 décembre 2019 Statut Membre Dernière intervention 11 décembre 2019 - 11 déc. 2019 à 17:59
Bonjour à tous,
Je sais que le sujet à déjà été traité dans plusieurs forum mais je n'arrive pas a trouvé la bonne solution
J'ai rédigé une fonction VBA pour échanger 2 lignes sous une condition, pourtant le programme fonctionne pas tres bien suite à l'erreur 1004:"Erreur définie par l'application ou par l'objet"


Je vous montre mon programme ci-dessous:

[/contents/446-fichier-sub Sub] SwapRows(lRow1 As Long, lRow2 As Long)
Dim aTemp() As Variant
        aTemp() = ActiveSheet.Rows(lRow1).Value
        ActiveSheet.Rows(lRow1).Value = ActiveSheet.Rows(lRow2).Value
        ActiveSheet.Rows(lRow2).Value = aTemp
End Sub

Sub classeom()
Dim i As Long
Dim counter As Long
counter = 3
col = ActiveSheet.UsedRange.Columns.Count
Row = ActiveSheet.UsedRange.Rows.Count
For i = 3 To Row
    If Cells(i, 3) <> "<empty>" And Cells(i, 3) <> "" Then
        Call SwapRows(i, counter)
        counter = counter + 1
    End If
Next i
End Sub


Le programme est buggé à la ligne "Activesheet.rows(lRow2).value=aTemp", il est clairement que la ligne lRow1 est bien copié des valeurs dans lRow2 mais ça se passe pas pour le lRow2
En espérant de vos aides
Bonne journée

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 11 déc. 2019 à 11:53
Bonjour

dans ta déclaration de "atemp" enlève "() as variant"


SwapRows(lRow1 As Long, lRow2 As Long)
Dim aTemp
aTemp = ActiveSheet.Rows(lRow1).Value


Ton tableau comporte plus 65236 lignes ?

 Michel
2
Salut Michel,
merci pour ta réponse et la rapidité
tu peux m'expliquer l'intérêt d'ajouter le variable Col as integer? car mon objectif est de échanger entièrement 2 lignes en fait :(
j'ai modifié la déclaration de "atemp" mais il tombe tjs sur le même l'erreur.
si il y a qqchose n'est pas très claire dans ma question, pardonne-moi pour le français, je suis en train de pratiquer :)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 11 déc. 2019 à 11:15
oui, je viens d'enlever Col dans post1
mais tu travailles sur 16384 données ?
0
Oui, le nombre de données est tellement grand, environ 300,000
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 11 déc. 2019 à 11:53
OK :o)

voici une photo de ma maquette essayée avec succès
Option Explicit
'----------------------------------------------------------------
Sub SwapRows(lRow1 As Long, lRow2 As Long)
Dim aTemp

Application.screenupdating=False 'confort des yeux, rapidité
With ActiveSheet
    aTemp = .Rows(lRow1).Value
    .Rows(lRow1).Value = .Rows(lRow2).Value
    .Rows(lRow2).Value = aTemp
End With
End Sub


Sub ccmm()
    Call SwapRows(3, 8)
End Sub


Pourquoi avoir mis Col dans ta macro classom ?
0
Michel,
merci bien pour ta correction!
Malheureusement, même si j'ai essayé de réduire le nombre de données, à partir d'un moment, l'erreur 1004 revient tjs, je te montre par les images ci dessous
(j'avais mis le variable "col" pour traiter une partie de donnés avant, comme dans ce cas j'en ai plus besoin, je l'enleverai)
0
fanein Messages postés 9 Date d'inscription mercredi 11 décembre 2019 Statut Membre Dernière intervention 11 décembre 2019 1
11 déc. 2019 à 17:59
Bonsoir Michel,

Malgré ce qu'on a discute', jai finalement trouve' une solution, jai décidé de supprimer une partie de données et l'erreur revient plus, je comprends pas très bien mais clairement il y a un lien avec le nombre de données comme tu m'avais indiqué. merci beaucoup pour ton aide et bonne soirée :)
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
11 déc. 2019 à 15:08
JE T'AI DEMANDE LA FEUILLE DU CLASSEUR FORMAT EXCEL ET NON UNE PHOTO QUI ME SERT A RIEN, PHOTO EN PLUS SANS LES LETTRES DES COLONNES...
0
fanein Messages postés 9 Date d'inscription mercredi 11 décembre 2019 Statut Membre Dernière intervention 11 décembre 2019 1
11 déc. 2019 à 15:13
Michel,
ce n'est pas un photo, c'est un fichier Excel, tu peux meme le télécharger...
0