erreur 1004

jean32

XLDnaute Nouveau
Bonjour,

J'ai sur un pc de bureau et sur un portable la même erreur 1004 survenue le même jour après une mise à jour.
J" explique ce qui se passe, pour remplir automatiquement un devis, je clic sur un lien hypertexte pour les client et le devis se repli automatiquement, pour les produits pareil et c' est la que l' application se bloque,

erreur 1004.JPG


l' image suivante


code vba.jpg
 
Dernière édition:

jean32

XLDnaute Nouveau
oupss



je joint aussi le code complet
--------------------------------
Sub validerDevis()
ActiveWindow.WindowState = xlMaximized
Range("B1").Select
If ActiveCell = 0 Then

Msg = MsgBox("Imposible de valider aucune quantité n'est saisie dans la colonne A")
Range("A7").Select
Else: validerDevis2
End If
End Sub
Sub validerDevis2()
ActiveWindow.WindowState = xlMaximized
Range("B1").Select
If ActiveCell >= 33 Then

Msg = MsgBox("Imposible de valider plus de 33 articles")
Range("A7").Select
Else: validerDevis3
End If
End Sub
Sub validerDevis3()
'Sheets("produit").Unprotect Password:="lpl"
Range("A7:A30000").Select
Selection.Copy
ActiveWindow.SmallScroll ToRight:=3
Range("O7").Select
Selection.Insert Shift:=xlToRight ---------------------->erreur est située à ce niveau de la macro
ActiveWindow.SmallScroll ToRight:=-3
Application.CutCopyMode = False



Range("A6:h6").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<>"
Range("A7:h30000").Select
Selection.Copy
Sheets("COPIE").Select
Range("b3").Select
ActiveSheet.Paste
Range("b3").Select
Sheets("produit").Select
Application.CutCopyMode = False
Selection.AutoFilter Field:=1
Selection.AutoFilter
Range("E8").Select
Application.DisplayFullScreen = True
Sheets("COPIE").Select
Range("A2:i30000").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">0", Operator:= _
xlAnd
Selection.AutoFilter
Selection.RowDifferences(ActiveCell).Select
Selection.Copy
Sheets("Devis").Activate
Range("D18").Select
ActiveSheet.Paste
Range("D18").Select
Sheets("PRODUIT").Select
ActiveWindow.WindowState = xlNormal
Application.CutCopyMode = False
Sheets("PRODUIT").Select
Range("A7:A30000").Select
Selection.ClearContents
'Sheets("produit").Protect Password:="lpl", DrawingObjects:=True, contents:=True, Scenarios:=True

Sheets("Devis").Activate

'Msg = MsgBox("Opération réussie, imprimer votre devis en 2 exemplaires ")
'imprim
'UserForm1.Show
'Msg = MsgBox("Archivage de votre devis maitenant")
'archiver
UserForm4.Show
End Sub
---------------------------------------------------------------

Avez vous une solution à mon problème car depuis 17 ans que je me sert de ce programme je n' ai jamais eu cette erreur.
Merci de vos réponses
Jean
 

JM27

XLDnaute Barbatruc
Bonjour
tu as surement des données en dernière colonne , comme tu essayes d'insérer une colonne supplémentaire , tes données sortiront de la feuille.
Cela a bien fonctionné tant qu'il y avait des colonne vides.
je supposes que c'est un, excel 2003 ou antérieur(255 colonnes)
 

Roland_M

XLDnaute Barbatruc
Bonjour tout le monde,

effectivement comme dis par jm27 concernant excel 2003 !?

mais malgré tout le code est à nettoyer !
exp ici ceci suffit !

Sub validerDevis3()
'Sheets("produit").Unprotect Password:="lpl"
Range("A7:A30000").Copy Destination:=[O7]
Application.CutCopyMode = False
'etc ...
 

Lone-wolf

XLDnaute Barbatruc
Bonjour,

Et la macro est à nettoyer, sinon tu risque de faire planter excel avec tous ces select's.

Sheets("produit").Unprotect Password:="lpl"

With Sheets("produit")
.Range("A7:A30000").Copy .Range("O7")
.Range("A6:h6").AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd
End With
 

jean32

XLDnaute Nouveau
Bonjour à vous,
Je suis ravi de vos réponses si rapide, et comme dis JM27 ce fichier date des années 2000 avec windows XP et office 2000.
Depuis quelques années j' ai opté pour win7 et office 2013 et jusqu' a présent cela a bien fonctionné, je pense que cela a foiré depuis une mise à jour de windows aux environs du 13 ou 14 mars, donc tout récent.
Mes connaissances en programmation VBA pratiquement nul, je vous joint une partie du fichier qui explique mieux ce qui se passe.
Merci de votre aide et bonne fin de week end
Jean
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Moi je vois seulement que la dernière cellule de la plage utilisée de la feuille Produit est IV30043.
Il est clair que dans cette feuille par exemple on ne peut insérer aucune colonne, vu que c'est un classeur xls.
Il faudrait préalablement en supprimer ou le passer en xlsm.
 

JM27

XLDnaute Barbatruc
Bonsoir
pour te convaincre : Sélectionnes les colonne IR à IV par exemple et fait une suppression.
Ton fichier fonctionnera à nouveau ( mais seulement 4 fois)
Repense à ta logique de déplacer une colonne vers la droite à chaque fois que tu lances la macro , pour moi ce n'est pas une solution pérenne.
pour moi la mise à jour de windows n'y est pour rien, c'est juste une coïncidence.
le fait de l'enregistrer en Xlsm te donnera des colonnes supplémentaire ( je crois 16384 colonnes)
 
Dernière édition:

jean32

XLDnaute Nouveau
Bonjour,
Et bien oui, j' ai cru que c' étais la faute d' une mise à jour, j' ai suivi le conseil de JM27 en supprimant quelques colonnes et cela a fonctionné, du coup j' ai suivi vos conseil et enregistré mon fichier en .XLSM et après quelques test, cela marche donc si je comprend bien j' ai un paquet de colonnes en réserve.
Mais pour Roland_M et Lone-Wolf la macro devrait être nettoyée sinon risque de plantage excel, comment faire cela?
Quelques conseils serait bien venu.

Merci et bonne journée
Jean
 

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 861
Membres
102 688
dernier inscrit
Biquet78