Erreur 1004 formulaire vba
Ferméfeafe Messages postés 7 Date d'inscription mardi 6 septembre 2022 Statut Membre Dernière intervention 13 septembre 2022 - 13 sept. 2022 à 13:54
- Erreur 1004 formulaire vba
- Erreur 0x80070643 - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Erreur 38 free ✓ - Forum Mobile
- Iptv erreur de lecture - Forum TV & Vidéo
5 réponses
6 sept. 2022 à 17:14
bonjour,
Merci de suivre ces instructions quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Quelle est l'instruction sur la ligne 4?
Il est préférable de ne pas utiliser ainsi Select et Active.
dim cl as range set cl=Sheets("Commande").Range("A1").End(x1down).Offset(1, 0) cl = cboagence cl.Offset(0, 1) = txtclient
7 sept. 2022 à 09:29
D'abord merci à vous deux pour votre réponse si rapide. Je m'excuse de la présentation de mon message je n'avais pas trouver comment le mettre en forme correctement. J'y remédie dans celui là.
Option Explicit '***' 'procédure pour ajout d une nouvelle commande' '***' Private Sub btnAjout_Click() Dim cl As Range Set cl = Sheets("Commande").Range("A1").End(xlDown).Offset(1, 0) cl = cboagence cl.Offset(0, 3) = txtclient cl.Offset(0, 4) = txtref cl.Offset(0, 5) = cbodate cl.Offset(0, 6) = txtcontact cl.Offset(0, 7) = txtnumcontact cl.Offset(0, 8) = txtadresse cl.Offset(0, 9) = txtspec cl.Offset(0, 10) = txtdemandepart cl.Offset(0, 11) = txtdevis cl.Offset(0, 12) = txtdetail cl.Offset(0, 13) = txtvaleur cl.Offset(0, 14) = cbofournisseur MsgBox "Votre commande a bien été ajoutée", vbOKOnly + vbInformation, "CONFIRMATION" End Sub '****' 'procédure pour reinitialiser les champs du formulaire' '****' Private Sub btneffacer_Click() cboagence = "" txtclient = "" txtref = "" cbodate = "" txtcontact = "" txtnumcontact = "" txtadresse = "" txtspec = "" txtdemandepart = "" txtdevis = "" txtdetail = "" cbofournisseur = "" txtvaleur = "" End Sub '****' 'procédure pour fermer le formulaire' '****' Private Sub btnfermer_Click() Unload Me End Sub '****' 'afficher la liste des commandes' '****' Private Sub btnsource_Click() Sheets("Commande").Activate Range("a1").Select End Sub '*****' 'procédure permettant de d'activer le bouton d ajout de' 'commande en fonction de si la première case est vide ou non' '*****' Private Sub cboagence_Change() If cboagence <> "" Then btnAjout.Enabled = True 'activer le bouton' Else btnAjout.Enabled = False 'désactiver le bouton' End If End Sub
Alors j'ai ajouté mon option explicit au début, j'ai modifié mon code selon vos conseils et en effet c'est bien xldown et non x1down. Ca fonctionne beaucoup mieux comme ça néanmoins j'arrive à rentrer 2 commandes et ensuite ça stagne sur la même ligne. Je me demande si il ne faudrait pas que je fasse une boucle qui incrémente le nombre de ligne à chaque fois ?
En tout cas merci de vos réponses elles m'ont bien aidées
7 sept. 2022 à 10:01
Rien de spécial dans la colonne A de la ligne où cela stagne?
9 sept. 2022 à 11:35
Rien de spécial c'est à dire ? le tableau ne s'étend pas et les valeurs sont remplacés par celles entrées dans le formulaire au lieu d'ajouter une ligne.
9 sept. 2022 à 11:39
A toi de nous donner des informations, ou de partager ton fichier.
La colonne A de la ligne où cela stagne est bien remplie, rien de spécial comparé aux lignes précédentes?
9 sept. 2022 à 11:49
Biensur je vous partage le fichier. Non la colonne est bien remplie et la ligne aussi. Y a t il une procédure pour vous l'envoyer ou un lien wetransfer suffit ?
12 sept. 2022 à 12:22
Je pense que la méthode que tu utilises n'ajoute pas des lignes dans le tableau.
Je pense préférable de faire ainsi: https://docs.microsoft.com/fr-fr/office/vba/api/excel.listrows.add
12 sept. 2022 à 15:47
Bonjour yg_be,
Merci de votre réponse, néanmoins le lien me mène sur le site de Microsoft comme ci dessous
12 sept. 2022 à 17:19
fais alors une recherche "excel listrows add".
12 sept. 2022 à 08:55
https://wetransfer.com/downloads/948017aab1d56b42e2cabc7e4c29d3f420220912065532/15d347
Modifié le 12 sept. 2022 à 20:18
Bonjour,
Voici une proposition
'*** 'procédure pour ajout d'une nouvelle commande '*** Private Sub btnAjout_Click() Dim cl As Range Dim cel As Range Application.ScreenUpdating = False Sheets("Commande").Select For Each cel In Range("A:A") If cel.Value = "" Then cel.Select: Exit For Next cel 'Set cl = Sheets("Commande").Range("A1").End(xlDown).Offset(1, 0) cel = cboagence cel.Offset(0, 3) = txtclient cel.Offset(0, 4) = txtref cel.Offset(0, 5) = cbodate cel.Offset(0, 6) = txtcontact cel.Offset(0, 7) = txtnumcontact cel.Offset(0, 8) = txtadresse cel.Offset(0, 9) = txtspec cel.Offset(0, 10) = txtdemandepart cel.Offset(0, 11) = txtdevis cel.Offset(0, 12) = txtdetail cel.Offset(0, 13) = txtvaleur cel.Offset(0, 14) = cbofournisseur MsgBox "Votre commande a bien été ajoutée", vbOKOnly + vbInformation, "CONFIRMATION" Application.ScreenUpdating = True End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question13 sept. 2022 à 13:54
Merci ozone_,
Je teste ça et je vous redis.
6 sept. 2022 à 19:41
Bonjour à vous deux,
N'est ce pas plutôt
Au lieu de
6 sept. 2022 à 20:06
Il est important, aussi, d'avoir une ligne avec "option explicit" en début du module.