Erreur 1004 Définie par l'application ou par l'objet
Ferméyg_be Messages postés 23306 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 - 19 avril 2023 à 22:09
- Erreur d'exécution 1004 erreur définie par l'application ou par l'objet
- Erreur 0x80070643 - Accueil - Windows
- Application mobile - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Vente objet occasion entre particulier - Guide
- Erreur 38 free ✓ - Forum Mobile
5 réponses
31 mars 2023 à 12:01
Bonjour,
L'erreur 1004 est une erreur assez générique dans Excel VBA, et elle peut être causée par diverses raisons. Dans votre cas, il semble que l'erreur se trouve dans cette ligne :
derligne = Sheets("Feuil1").Range("A456541").End(xlUp).Row + 1
L'erreur peut être due à une mauvaise référence de cellule. Vous avez utilisé la référence "A456541", qui n'est pas une référence de cellule valide. Le numéro de ligne maximal dans Excel est 1048576. Vous devriez utiliser une référence de cellule valide, par exemple "A1048576" pour trouver la dernière ligne non vide :
derligne = Sheets("Feuil1").Range("A1048576").End(xlUp).Row + 1
En changeant cette ligne, l'erreur devrait disparaître.
Dites-moi si cela fonctionne.
Cordialement
31 mars 2023 à 13:59
Bonjour Niamorii !
Je vous remercie de votre réponse. Après modification, le même message d'erreur s'affiche, et le débogage m'indique toujours la ligne.
Sheets("Feuil1").Cells(derligne, 1) = UserForm1.ComboBox1
"cells(derligne, 1)" indique bien la dernière ligne vide, et "userform1.combobox1" m'indique bien l'option sélectionnée...
Ce code fonctionnait bien pendant quelques jours, puis cette erreur apparaît, je ne comprends pas à quoi cela peut être dû.
Cordialement,
Modifié le 31 mars 2023 à 15:21
Bonjour le fil
Non @Niamorii, la référence de cellule est bien valide !
456.541 < 1.048.576
Donc @Noem_3469 si c'est bien cette ligne qui pose problème
Sheets("Feuil1").Cells(derligne, 1) = UserForm1.ComboBox1
Soit la feuille nommée "Feuil1" n'existe pas, soit c'est le Combobox1
Si les deux sont Ok, essayer alors
Sheets("Feuil1").Cells(derligne, 1).Value = UserForm1.ComboBox1.Value
Au lieu de référencer uniquement 2 objets
A+
31 mars 2023 à 16:02
Bonjour NonoM45,
Je vous remercie pour votre proposition de solution ! Malheureusement j'ai toujours la même erreur qui s'affiche, et toujours à la même ligne...
J'ai vérifié, "Feuil1" existe bien, "ComboBox1" aussi. Ce que je ne comprends pas, c'est que le code fonctionne bien plusieurs fois, puis il bug...
Cordialement,
Modifié le 1 avril 2023 à 04:45
Bonjour,
"Ce que je ne comprends pas, c'est que le code fonctionne bien plusieurs fois, puis il bug... "
Si vous ne nous dites pas tout aussi...
Alors essayez plutôt ceci
derligne = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question1 avril 2023 à 14:55
Bonjour,
Désolée je n'ai pas été très claire aha !
J'ai essayé votre code, qui n'a pas fonctionné non plus, ... Du coup j'ai essayé en enlevant le code correspondant à protéger les données déjà entrées, et cela fonctionne. Je pense que le problème venait de là, si éventuellement vous pouviez m'aider ^^'
Le but étant de bloquer la modification des données déjà entrées (les opérateurs entrent leur données du jour dans le formulaire, puis ils ne doivent pas pouvoir les modifier), j'ai trouvé le code suivant, que j'ai entré dans "Feuil1" :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Selection, Range("A1:P30")) Is Nothing Then
If Target <> "" Then
ActiveSheet.Unprotect Password:="open"
Target.Locked = True
ActiveSheet.Protect Password:="open"
End If
End If
End Sub
Concrètement, toute la feuille est à protéger.
En enlevant ce code, et en enlevant la protection de la feuille, le code entrant les données du formulaire fonctionne.
Avez-vous une idée de ce qui peut bloquer ?
Merci encore à vous !
Bonjour
je n'ai pas la solution à votre problème, cependant, je tiens à rétablir une vérité
Désolée je n'ai pas été très claire aha !
Vous avez été parfaitement claire dès votre premier message, deux fois en plus
et j'ai la même erreur qui s'affiche sur tous au bout de quelques jours.
Puis
Le fichier fonctionne pendant plusieurs jours, puis soudainement le message "Erreur 1004 Définie par l'application ou par l'objet" apparaît, sans que rien n'ai été modifié dans le code ni dans le tableur,
C'est donc NonoM45 qui n'a pas lu correctement.
19 avril 2023 à 19:28
Bonjour Wish à 2 balles, tu veux rétablir quelle vérité sérieux... MDR
La preuve avec la réponse suivante de Noem_349
Je ne vois pas ce que je n'ai pas lu ou compris correctement, j'aimerai bien que tu m'expliques... si tu en es capable
19 avril 2023 à 21:55
Le premier avril, tu as écrit
"Ce que je ne comprends pas, c'est que le code fonctionne bien plusieurs fois, puis il bug... "
Si vous ne nous dites pas tout aussi...
Or, elle avait bien décrit ce comportement dès son premier message par les 2 phrases que j'ai citées, ce qui implique que tu ne l'avais pas bien lu.
Effectivement Noem_349 a cru ne pas avoir été assez précise suite à ton reproche injustifié.
19 avril 2023 à 22:09
Il s'agit d'un forum de collaboration où chacun contribue pour arriver à une solution.
Il est normal qu'il y ait des malentendus, peu importe qui en est responsable. Personne n'est ici pour montrer qu'il a raison et pour avoir le dernier mot.
Il me semble totalement stérile de débarquer dans une discussion sereine pour arbitrer et distribuer des bons et des mauvais points. Cela ne peut que créer des tensions.
2 avril 2023 à 11:04
bonjour,
Le code ne peut sans doute pas fonctionner si la feuille est protégée. La logique du code qui fait la protection me semble très bizarre. Un code "trouvé" ne fait pas toujours ce qu'on imagine.