Erreur d'exécution '1004'
nana.belk
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
nana.belk Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
nana.belk Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
bonjour! au fait j'ai rédigé un code qui permet de remplir un bon sur une feuille de mon classeur. ça fonctionne mais ça prend un peu de temps alors que ce n'est pas aussi compliqué comme procédure. à la fin de l'exécution je reçois un message "erreur d'exécution '1004'" et je ne vois pas où est le problème. voici mon code
merci de vouloir m'aider svp
Private Sub CommandButton3_Click() Sheets("bon de sortie").Activate s = 0 If Sheets("commandes internes").Cells(Rows.Count, 1).End(xlUp).Row = 1 Then n = 2 Else n = Sheets("commandes internes").Cells(Rows.Count, 1).End(xlUp).Row End If Range("D2").Value = "N°: " + CStr(bsText.Value) i = 2 j = 14 While i <= n While j <= 29 If Sheets("commandes internes").Cells(i, 6) = bsText.Value Then Range("D3").Value = "A RABAT, le " + CStr(Sheets("commandes internes").Cells(i, 7)) Range("C11").Value = "M." + CStr(Sheets("commandes internes").Cells(i, 1)) Cells(j, 2) = s + 1 Cells(j, 3) = Sheets("commandes internes").Cells(i, 3) Cells(j, 4) = Sheets("commandes internes").Cells(i, 2) s = s + 1 j = j + 1 End If i = i + 1 Wend Wend End Sub
merci de vouloir m'aider svp
A voir également:
- Erreur d'exécution '1004'
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
1° ajoute "option explicit" en début de module, et traite les avertissements que tu vas probablement recevoir
2° réfléchis à tes deux boucles while imbriquées: que veux-tu obtenir?
3° informe-nous de la ligne qui provoque l'erreur 1004, ainsi que du texte du message d'erreur et es valeurs de i et de n à ce moment-là
4° moi je préciserais: Sheets("commandes internes").Rows.Count
1° ajoute "option explicit" en début de module, et traite les avertissements que tu vas probablement recevoir
2° réfléchis à tes deux boucles while imbriquées: que veux-tu obtenir?
3° informe-nous de la ligne qui provoque l'erreur 1004, ainsi que du texte du message d'erreur et es valeurs de i et de n à ce moment-là
4° moi je préciserais: Sheets("commandes internes").Rows.Count
concernant le message d'erreur explicite le voilà "Erreur '1004' : erreur définie par l'application ou par l'objet" ça provient de cette ligne If Sheets("commandes internes").Cells(i, 6) = bsText.Value Then
A propos des avertissements reçus, il s'agissait au fait des variables utilisées sans être définies je ne pense pas que c'est vraiment un problème
voilà ! merciii
ta double boucle est mal conçue. peux-tu décrire, en français, ce que tu voudrais que ces boucles fassent?
merci de mettre "option explicit", cela permettra d'éliminer des erreurs d'inattention. ensuite, partage ton code corrigé.
quelles sont les valeurs de i et de n au moment de l'erreur?
as-tu appliqué mon point 4? merci de partager le code adapté.
voici le code corrigé
Au fait oui j'ai tenté de compter les lignes avec Sheets("commandes internes").Rows.Count mais j'obtiens un autre message d'erreur dès le départ "Erreur d'exécution 6 : Dépassement de capacité" donc j'ai remis mon premier code pour que ça s'exécute
à la fin de l'exécution, j'obtiens le message d'erreur '1004' et les valeurs de i et n respectivement sont:_ bizarrement _1048577 et 7 (correct :le nombre de lignes non vides de ma feuille commandes internes)
maintenant je pense que c'est l'incrémentation du i jusqu'à cette valeur qui cause la lenteur de l'exécution
voilà!
Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages.
tu n'as pas encore précisé sur quelle ligne tu avais l'erreur 1004, ni le texte du message d'erreur
je pense que tu n'as aucune raison d'avoir une boucle en j. de plus, tes boucles ne sont pas correctement imbriquées. relis ton texte en #4: où est l'utilité d'une boucle en j?
Pour un numéro de ligne, il faut utiliser une variable de type Long : les numéros de ligne varient de 1 à 1048576 mais le Type Integer s'arrête à 32767 ( ce qui explique l'erreur "Erreur d'exécution 6 : Dépassement de capacité"
Édit : Pour faire ta recherche tu devrais utiliser la méthode Find
Cdlt
Patrice