Erreur 1004 lors du paste d'une plage

Bonjour à tous et à toutes,

je tiens tout d'abord à vous remercier pour prendre le temps de lire mon post.

Alors sur le code que je met en pièce jointe, j'ai deux soucis:

1) En sortant de la boucle do while, je supprime la valeur de cells(20,dercol2) pour la remplacée par m-vol mais sa ne se fais pas. J'ai toujours la valeur 5000 affichée dans ma cellule.

2) Mon deuxième problème est que à chaque fois que j’exécute le code, j'ai une erreur 1004 qui apparaît, et en exécutant eu pas à pas je me rends compte que c'est la ligne:

ActiveSheet.Paste

Je ne vois pas du tout ou est le soucis, aidez - moi je suis désespéré !

Mercii !

0dropship-test.xlsm (19.62 Ko)

Bonjour eskali,

Quand je vois ton code et ta description je me demande si c'est le bon fichier que tu as transmis,

Voici mes commentaires en tout cas pour ton code présent dans ce fichier :

Sub transport()

Dim volume As Integer
Dim iter As Integer
Dim k As Integer
Dim m As integer 'Varible limitée à Nombre entier de -32'768 à 32'767.

m = 5000
k = 5000
vol = Range("B3")

dercol = Range("B19").End(xlToRight).Column

derlig = Range("B19").End(xlDown).Row ' Si c'est la derniere ligne utilisé mieux vaut utilisé .End(xlUp).Row

While m < vol

    For i = 2 To dercol

          Cells(20, i) = k ' K étant constant tu inscriras toujours "5000" jusqu'à la dernière colonne

    Next
    m = m + 5000 ' incrémentation qui émettras une erreur passée 32'767
Wend

End Sub

Bonjour,

effectivement je travaille sur le fichier depuis quelque heures et j'ai oublié de l'enregistrer

Concernant le k je veux qu'il m'affiche la valeur 5000 jusqu'à avoir épuisé mon volume qui est de 49 270.

Ensuite, l'idée c'est que dans la dernière cellule j'ai le reste (dans ce cas 4270)

Voici le bon fichier, et merci pour ta réponse

2dropship-test.xlsm (19.62 Ko)

J'ai regardé ton code sans trop mis attarder mais vraiment je ne comprends pas du tout le but de la manœuvre

Pour répondre à ta 1er question :

1) En sortant de la boucle do while, je supprime la valeur de cells(20,dercol2) pour la remplacée par m-vol mais sa ne se fais pas. J'ai toujours la valeur 5000 affichée dans ma cellule.

Cells(20, dercol2) = m - vol

La cellule indique bien "730" mais si tu vas en Pas à Pas touche "F8" tu pourras t'apercevoir que sur les instruction qui suit tu recolles par dessus avec ton "Select".

Range(Cells(20, j), Cells(20, dercol2)).Select

Selection.Cut

Cells(20, j + 1).Select

Et pour la question 2 :

2) Mon deuxième problème est que à chaque fois que j’exécute le code, j'ai une erreur 1004 qui apparaît, et en exécutant eu pas à pas je me rends compte que c'est la ligne:

Tu as corrigé le problème en modifiant le types des variables

Pour ce qui est de tout code, si en le lisant on ne comprends c'est pour plusieurs raisons:

  • Trop de "Select"
  • Pas d'indentation
  • Mauvaise & Absence de déclarations de variables ( Surtout pour les Worksheets, ta macro doit s’exécuter sur la feuille sinon crash assuré )
  • Mauvaise utilisation des boucles ( j'utiliserais plus une boucle "For", pour ton utilisation )
  • gérer les dates autrement que tu le fais ( détecter en auto si la date est un Week plutôt que par Texte comme tu le fais )
  • Logique certainement différent de la mienne, mais à près tout, on est tous différent

Voilà pour mes conseils

Merci Florian pour ton message,

Alors pour commencer je t'explique un peu ce que je voudrais pouvoir faire à terme;

Mon entreprise peut assurer le transport de 5000 colis/jour ouvré, donc quand j'entre le volume des différentes ventes et que j'exécute, les calculs se font automatiquement suivant un calendrier prédéfini.

Comme tu peux le remarquer, je galère juste pour écrire le premier bout de code de la première ligne du calendrier, en sachant qu'après je devrais faire une boucle qui passera toute les lignes d'un coup aussi.

Le truc c'est que j'ai commencé VBA il y a quelques jours donc pas facile pour moi

J'espère que je me suis pas trop mal exprimé

Sinon ensuite pour revenir au code, quand je l'exécute chez moi la cells(20,dercol2) m'affiche 5000 ( exécution normale et au pas )

Et aussi oui j'ai changé le vol et le m en Long mais j'ai toujours cette erreur 1004 dans la ligne du "ActiveSheet.Paste"

Merci pour tout tes conseils je vais en prendre compte pour mes prochains développements.

Voila voila !

Rechercher des sujets similaires à "erreur 1004 lors paste plage"