Erreur 1004 Userform Formulaire de Saisie
Bonjour à tous,
J'ai épluché pas mal de forum et je ne trouve pas de solution à mon problème que voici. Je précise que je suis débutant en VBA.
Je veux créer une boite de dialogue userform pour faciliter l'enregistrement dans un tableau. Pour cela j'utilise le fichier ci joint, avec notamment des ComboBox. A savoir que pour utiliser les combobox, je les crée et spécifie dans les propriétés à la ligne RowSource mes données contenues dans la feuille DATA (du style DATA!a2:a43). Je les utilise ensuite comme suit:
Private Sub ComboBox1_Change()
[C5]=ComboBox1
End Sub
Mon problème est que j'obtiens l'erreur 1004 : la méthode Insert de la classe Range a échouée.
OR, au début ça marchait les premières fois, je n'y comprend rien. L'erreur est liée à cette instruction:
Selection.Insert shift = xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Je pense également que c'est lié aux combobox ( Listes modifiables)
Voici mon template. C'est très basique, si vous avez des conseils, merci.
Merci pour votre aide
Bonjour,
Un peu d'attention !
Selection.Insert shift = xlDown, CopyOrigin:=xlFormatFromLeftOrAboveCette ligne ne saurait fonctionner ! Lorsqu'on reproduit une ligne, la copier exactement (et utiliser les balises Code...)
Et aussi : l'écrire un peu mieux que sa production par l'enregistreur me paraît un exercice indispensable !
Selection.Insert xlShiftDownserait mieux à condition de remplacer Selection par un véritable qualificateur...
Mais le problème n'est sans doute pas là, ou pas seulement là ! RowSource crée un lien entre les données et la liste, qui te bloque certaines modifications...
En outre, tu travailles sur un tableau Excel, tu peux donc ajouter un nouvel enregistrement en fin de tableau, et éviter de procéder à une insertion.
Il faut clarifier et rationnaliser ta façon d'opérer... mais en priorité supprimer tout Select ou Selection et qualifier les expressions avec des références explicites et non aléatoires aux objets qu'elles pointent. C'est LE moyen d'éviter toute surprise ultérieure.
Cordialement.
Merci pour votre réponse, je vais potasser tout ça. Ce que je fais est beaucoup trop basique