Vba erreur 9

Fermé
mushubdd Messages postés 5 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 3 juillet 2014 - 1 juin 2014 à 18:42
mushubdd Messages postés 5 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 3 juillet 2014 - 3 juin 2014 à 13:50
Bonjour,
je suis très novice en vba et voudrait créer un formulaire de saisie automatique des données dans excel pour simplifier le travail de mes prestataires.
je suis pas à pas un Tutorial de création mais suis bloqué par l'apparition d'une erreur code 9


voici les premières lignes de mon code
j'ai 9 champs à remplir: 7 avec des" listes déroulantes", et deux "texte"
avec l'outil débogage tout va bien jusqu'à la ligne "set Ws=Sheets ("sheet1)


Option Explicit
Dim Ws As Worksheet

'Pour le formulaire
Private Sub Userform_Initialize()
Dim J As Long
Dim I As Integer

ComboBox2.ColumnCount = 1 'pour la liste déroulante Center
Set Ws = Sheets("sheet1")
With Me.ComboBox1
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 2
Me.Controls("textbox" & I).Visible = True
Next I
End Sub



Private Sub ComboBox1_Change()
ComboBox1.ColumnCount = 2 'pour la liste déroulante Country Code
ComboBox1.List() = Array("", "33", "39", "49")
End Sub


Private Sub combobox3_change()
ComboBox3.ColumnCount = 3 'pour la liste déroulante Patient
ComboBox3.List() = Array("", "001", "002", "003", "004", "005", "006", "007", "008", "009", "010")
End Sub


Private Sub combobox4_change()
ComboBox4.ColumnCount = 4 'pour la liste des Visites
ComboBox4.List() = Array("", "V-1M-1", "V1M0", "V2M1", "V3M2", "V4M3")
End Sub

Private Sub combobox5_change()
ComboBox5.ColumnCount = 7 'pour la liste des types d'échantillons
ComboBox5.List() = Array("", "Culot_Sec", "PBMC", "Plasma", "Serum")
End Sub

Private Sub combobox6_change()
ComboBox6.ColumnCount = 8 'pour la liste des centres d'envoi
ComboBox6.List() = Array("", "B&C", "Immune_Health")



End Sub

puis vous solliciter pour un peu d'aide?
merci d'avance du temps que vous m'aurez consacré.
Arnaud

3 réponses

via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
1 juin 2014 à 19:17
Bonjour

Si tu n'as aucune feuille qui se nomme Sheet1 cela provoque l'erreur indice n'appartenant pas à la selection

Cdlmnt
0
mushubdd Messages postés 5 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 3 juillet 2014
3 juin 2014 à 10:18
Merci. je vais modifier en fonction.
D'autre part j'aurai deux autres points à éclaircir:
1. est-il possible de mettre des alertes lorsque toutes les informations du formulaire ne sont pas remplies?
2. les enregistrements peuvent-ils être multiples à partir d'une même entrée dans le formulaire? je l'explique, si j'ai 6 données identques en termes de centre, patient, type de prélèvement... le formulaire peut-il,partir d'un item nombre de tubes (renseigné avec la donnée 6) me créer 6 lignes comportant les informations du formulaire et une incrémentation (tube1, tube2,tube3....)
merci de votre aide.
arnaud
0
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
3 juin 2014 à 10:38
Bonjour

1) Au début du code associé au bouton valider du formulaire tu peux faire faire une boucle FOR NEXT sur tous les controls de l'userform et si un est vide faire afficher par msgbox un message et sortir de la Sub sans rien faire

2) Faisable aussi :
Là aussi avec une boucle FOR NEXT de 1 au nombre de tubes renseignés, ex :
n=me.textbox 5.value 'en supposant le nombre de tubes entrée dans ce textbox
for x=1 to n
Sheets("Feuil1).range("B" & 4+x).value ="tube "& x 'Inscription dans la Feuille 1 à partir de B5
Sheets("Feuil1).range("C" & 4+x).value = me.combobox1.value ' et de C5
next x

Par contre tu aurais intérêts dans la fentre propriété^de l'éditeur pour d'attribuer à chaque combobox et textbox un nom spécifique qui sera utilisié après dans les macros; c'est plus clair dans la macro s'il y a me.center au lieu de me.combobox1

Cdlmnt
0
mushubdd Messages postés 5 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 3 juillet 2014
3 juin 2014 à 13:50
merci beaucoup de l'aide. je mets en application et je reviens vers vous si pb...
encore merci.

arnaud
0