Salut à tous, je me tourne vers vous car je n'ai aucune connaissance en VBA... (sous Office 365)
Pour ma p'tite entreprise, je tiens à jour un fichier Excel pour les commandes des clients. J'aimerai juste faciliter le remplissage des champs à l'aide d'un formulaire (autre que celui natif d'Excel qui n'est ni pratique ni esthétique). Au cours de mes recherches sur le net, je suis donc tombé sur un tuto qui m'avait l'air assez simple : http://cellulexcel.blogspot.com/p/qu...e-loption.html, je l'ai donc suivi en adaptant selon mes nécessités (sans rajouts pour le moment). J'ai donc collé le code fourni en ajustant ce qu'il fallait ajuster (je pense). Seulement quand je veux valider et voir l'aperçu, notamment pour tester les boutons, j'ai un message d'erreur "Erreur de compilation. Membre ou méthode ou de données introuvable". Malgré mes tentatives de recherches à ce sujet (d'où ma présence ici), je ne trouve pas l'origine du problème... Si quelqu'un à une idée ?!
Ce n'est que la première partie du tuto, la mise en place. Je ne me suis pas encore penché sur la suite... Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 'Attention les deux lignes suivantes doivent être impérativement placées en tout début de programme Option Explicit 'Activation de la déclaration explicite des variables Dim Ws As Worksheet 'Variable pour un Objet Worksheet en PUBLIC pour tous les Controls de cet UserForm 'Correspond au programme du bouton QUITTER Private Sub Quitter_Click() Unload Me 'Unload => Permet de fermer l'Userform et de l'effacer de la mémoire, les valeurs de ses contrôles sont à alors perdues. ' Me => Référence à l'objet en cours End Sub 'Correspond au programme du FORMULAIRE 'Cet évènement est important car il permet de définir les propriétés des objets et les valeurs par défaut des variables, lors du lancement du Userform. Private Sub UserForm_Initialize() 'à l'initialisation de l'userform ' Déclaration des variables grâce à Dim ' 1° Choisir un nom ' 2° Choisir un TYPE (= définir la nature du contenu) ' -------------------------------------------------------- Dim J As Long 'déclare la variable J Dim I As Integer ' Affecter une valeur à une variable (= fixer la valeur de la variable) Set Ws = Sheets("Recettes") 'Attention ce nom doit correspondre au nom de votre ONGLET 'On stock le nom de la feuille "Recettes" dans une variable nommée WS With Me.TextBox1 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 8 'on lance une boucle de valeur mini 1 et maxi 8 Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox Next I End Sub 'Correspond au programme du bouton MODIFIER Private Sub CommandButton1_Click() Dim Ligne As Long Dim I As Integer If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection Ligne = Me.ComboBox1.ListIndex + 2 For I = 1 To 8 If Me.Controls("TextBox" & I).Visible = True Then Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I) End If Next I End If 'fin de la condition 'Code permettant de modifier le format de la plage de cellule en format nombre With Ws.Range("D2:d10") .NumberFormat = "0" .Value = .Value End With End Sub 'Correspond au programme de la LISTE DEROULANTE Private Sub ComboBox1_Change() Dim Ligne As Long Dim I As Integer If Me.ComboBox1.ListIndex = -1 Then Exit Sub Ligne = Me.ComboBox1.ListIndex + 2 For I = 1 To 8 Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1) Next I End Sub
Partager