Erreur 1004
fanein
-
fanein Messages postés 9 Statut Membre -
fanein Messages postés 9 Statut Membre -
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:
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
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
A voir également:
- Erreur 1004
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
3 réponses
Bonjour
dans ta déclaration de "atemp" enlève "() as variant"
Ton tableau comporte plus 65236 lignes ?
Michel
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
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 :)
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 :)
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 :)
mais tu travailles sur 16384 données ?
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 SubPourquoi avoir mis Col dans ta macro classom ?
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)