Erreur 1004!

Fermé
tinyspot0103 Messages postés 6 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 20 juin 2013 - Modifié par irongege le 13/06/2013 à 17:19
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 20 juin 2013 à 10:34
Bonjour à tous,

J'ai eu un pb sur la macro de folie, c'était pas moi qui l'ai développée. Elle marchait avant, mais c"était toujours 1 fois sur 5, or cete fois elle marche pas du tout!!!
Elle se bloque toujours sur : ActiveCell.Offset(1, 0).Select

La macro est :

Sub synthesesite()
'
'
If MsgBox("LA MISE A JOUR DURE 2 MINUTES. VOULEZ VOUS CONTINUER ?", vbQuestion + vbYesNo, "MISE A JOUR DES DONNEES") = vbYes Then
Application.ScreenUpdating = False
Sheets("RECAP").Select
Range("$A$7:$DK$7").AutoFilter
Range("$A$7:$DK$7").AutoFilter
Sheets("SYNTHESE PAR SITE").Select
a = Range("b7").Value
b = Range("C7").Value
c = Range("D7").Value
d = Range("F6").Value
e = Range("J7").Value
f = Range("K7").Value
g = Range("L7").Value
h = Range("P7").Value
i = Range("q7").Value
j = Range("R7").Value
k = Range("E6").Value

Range("A8").Select

Do While ActiveCell.Offset(-1, 0).Value <> "CENTRALE + MAGASINS"
If ActiveCell.Value <> "" Then



Selection.Copy

Sheets("RECAP").Select
Range("E5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Rows("7:7").Select
Selection.Find(What:=a, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couvmonth = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=b, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couvpreviousmonth = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=c, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couvpreviousyear = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=d, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

stock12m = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=k, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couv12m = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=e, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

VSmonth = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=f, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

VSpreviousmonth = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=g, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

VSpreviousyear = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=h, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

vtemonth = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=i, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

vtepreviousmonth = ActiveCell.Offset(-2, 0).Value

Rows("7:7").Select
Selection.Find(What:=j, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

vtepreviousyear = ActiveCell.Offset(-2, 0).Value


'''''

Sheets("SYNTHESE PAR SITE").Select


ActiveCell.Offset(0, 1).Value = couvmonth
ActiveCell.Offset(0, 2).Value = couvpreviousmonth
ActiveCell.Offset(0, 3).Value = couvpreviousyear
ActiveCell.Offset(0, 4).Value = couv12m
ActiveCell.Offset(0, 5).Value = stock12m
ActiveCell.Offset(0, 9).Value = VSmonth
ActiveCell.Offset(0, 10).Value = VSpreviousmonth
ActiveCell.Offset(0, 11).Value = VSpreviousyear
ActiveCell.Offset(0, 15).Value = vtemonth
ActiveCell.Offset(0, 16).Value = vtepreviousmonth
ActiveCell.Offset(0, 17).Value = vtepreviousyear

Else
End If
ActiveCell.Offset(1, 0).Select
Loop
Else
End If
End Sub


Quelqu'un pourrait voir, ce serait génial ! SOS

4 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
13 juin 2013 à 17:39
Bonjour,

Sans doute que tu as changé quelque chose dans ta feuille qui crée le problème car apparemment la macro ne vérifie rien et s'attend à une feuille "nickel" qui est sans doute érodée...
0
tinyspot0103 Messages postés 6 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 20 juin 2013
14 juin 2013 à 14:27
Je t'en remercie, vu que l'on a changé d'année fiscale, la feuille n'a pas été modifiée dans le fonds...... J'ai essayé de la tourner dans le fichier initial, elle ne marche toujours pas. Je ne comprends pas
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
14 juin 2013 à 18:35
Il faut la dérouler en pas à pas (F8) pour voir ce qui est sélectionné comme cellule avant le plantage. Tu peux mettre un arrêt (F9) sur une des lignes précédentes, puis partir en F8.
0
Bonjour
envoie ton fichier de données avec http://www.cjoint.com/
Cela nous évite de chercher
et ses plus simple pour nous

A+

Maurice
0
tinyspot0103 Messages postés 6 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 20 juin 2013
18 juin 2013 à 14:15
le lien est: https://www.cjoint.com/?3FsonpAjO87
le fichier est trop grand, j'ai dû supprimé plusieurs onglets, l'onglet dans lequel la macro n'a pas pu marché est "synthèse par site".
Merci bcp^^
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
18 juin 2013 à 18:38
Bonjour,

Essaies comme ceci, cela devrait fonctionner :

Sub synthesesite()
'
'
If MsgBox("LA MISE A JOUR DURE 2 MINUTES. VOULEZ VOUS CONTINUER ?", vbQuestion + vbYesNo, "MISE A JOUR DES DONNEES") = vbYes Then
Application.ScreenUpdating = False
Sheets("RECAP").Select
Range("$A$7:$DK$7").AutoFilter
Range("$A$7:$DK$7").AutoFilter
Sheets("SYNTHESE PAR SITE").Select
a = Range("b7").Value
b = Range("C7").Value
c = Range("D7").Value
d = Range("F6").Value
e = Range("J7").Value
f = Range("K7").Value
g = Range("L7").Value
h = Range("P7").Value
i = Range("q7").Value
j = Range("R7").Value
k = Range("E6").Value

Range("A8").Select

Do While ActiveCell.Offset(-1, 0).Value <> "CENTRALE + MAGASINS"
If ActiveCell.Value <> "" Then



Selection.Copy
Sheets("RECAP").Activate
With Sheets("RECAP")
.Range("E5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

.Rows("7:7").Select
Selection.Find(What:=a, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couvmonth = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=b, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couvpreviousmonth = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=c, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couvpreviousyear = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=d, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

stock12m = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=k, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

couv12m = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=e, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

VSmonth = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=f, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

VSpreviousmonth = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=g, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

VSpreviousyear = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=h, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

vtemonth = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=i, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

vtepreviousmonth = ActiveCell.Offset(-2, 0).Value

.Rows("7:7").Select
Selection.Find(What:=j, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate

vtepreviousyear = ActiveCell.Offset(-2, 0).Value


'''''
End With
Sheets("SYNTHESE PAR SITE").Activate

ActiveCell.Offset(0, 1).Value = couvmonth
ActiveCell.Offset(0, 2).Value = couvpreviousmonth
ActiveCell.Offset(0, 3).Value = couvpreviousyear
ActiveCell.Offset(0, 4).Value = couv12m
ActiveCell.Offset(0, 5).Value = stock12m
ActiveCell.Offset(0, 9).Value = VSmonth
ActiveCell.Offset(0, 10).Value = VSpreviousmonth
ActiveCell.Offset(0, 11).Value = VSpreviousyear
ActiveCell.Offset(0, 15).Value = vtemonth
ActiveCell.Offset(0, 16).Value = vtepreviousmonth
ActiveCell.Offset(0, 17).Value = vtepreviousyear

Else
End If
ActiveCell.Offset(1, 0).Select

Loop
Else
End If
End Sub

Ta feuille recap n'était pas correctement déclarée apparemment.
0
tinyspot0103 Messages postés 6 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 20 juin 2013
19 juin 2013 à 09:39
j'ai trouvé d'où est le pb, c'est parce que j'ai pas mis le calcul auto et puis cç doit être Do While ActiveCell.Offset(-1, 0).Value <> "CENTRALE + MAGASINS + SAV".

Merci bcp!!!!!!! vs êtes géniaux^^
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
19 juin 2013 à 06:39
Bonjour
Le problème ne viendrait-il pas du fait que tu ne sors jamais de la boucle si la cellule est vide?
If ActiveCell.Value <> "" Then

else
end if
et tu passes à la ligne suivante
ActiveCell.Offset(1, 0).Select

le programme s'exécute jusque la dernière ligne mais ne peut aller au-dela.
apres Else il manque exit sub

If ActiveCell.Value <> "" Then

else: exit sub
end if

A voir
cdlt
0
tinyspot0103 Messages postés 6 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 20 juin 2013
19 juin 2013 à 09:40
Merci bcp!!!!!!! vs êtes géniaux^^
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
19 juin 2013 à 22:56
Bonjour tinyspot0103,

Merci pour ton sympathique retour. J'ai regardé de plus prêt ta macro et je l'ai pas mal modifiée dans le but d'éviter les plantages et d'améliorer la rapidité.

Si tu as le temps, j'aimerais que tu la testes sur une copie de ton fichier réel pour voir si elle fonctionne correctement et rapidement.

https://www.cjoint.com/?CFtwZoYslQY

Il te suffit de tirer le module "synthèse" sur une copie de ton classeur : d'avance merci.
0
tinyspot0103 Messages postés 6 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 20 juin 2013
20 juin 2013 à 10:13
Merci, je l'ai testé elle marche parfaitement, par contre elle met à peu près le même temps.^^
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
20 juin 2013 à 10:34
Merci du retour, avec le fichier réduit cela était plus rapide mais il n'y avait pas la mise à jour des liens pour chaque ligne comme avec ton classeur d'exploitation.
0