Bonjour,
j'ai une erreur lorsque je modifie la fiche sur la init cbb via le bouton modifier dans le userform3
je joins la copie écran et le fichier exemple pour plus de compréhension.
merci d'avance pour votre patience !
Bonjour,
j'ai une erreur lorsque je modifie la fiche sur la init cbb via le bouton modifier dans le userform3
je joins la copie écran et le fichier exemple pour plus de compréhension.
merci d'avance pour votre patience !
Salut, c'est quoi l'erreur ?
Sinon essaye de mettre le .cells(j,I).value entre parenthèses. Je crois que c'est requis quand on utilise additem.
déjà merci pour votre aide,
par-contre, je ne comprends pas ce que je dois faire, pouvez-vous m'expliquer, je suis débutante...
Bonjour,
@ChristianBosch
Non absolument pas, au contraire il ne faut pas de parenthèse dans ce cas.
Des parenthèses excédentaires, c'est une erreur qu'on voit trop souvent.
Avec VBA, la règle des parenthèses peut être déroutante :
- obligatoire pour les fonctions VBA
- pour les arguments des méthodes : uniquement dans le cas où le résultat de la méthode est utilisé comme variable exemple :
@grib1903
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'Argument fourni sans parenthèse : Workbooks.Open nomFichier MaProcédure maVariable 'Parenthèse obligatoire : Set wbk = Workbooks.Open(nomFichier) Call MaProcédure(maVariable)
Quel est le message d'erreur ? il faut le préciser dans la question !!!
On ne peut pas ajouter d'item à un combobox lié à une source de données (i.e avec un RowSource) !
Note, pour initialiser l'usf automatiquement a l'ouverture, c'est pas :
mais il faut écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub UserForm3_Initialize() Init_CBB End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub UserForm_Initialize() Init_CBB End Sub
Bonjour à vous, Bonjour au Forum,
Salut Patrice,
Je pense que le processus le plus rigoureux est celui qui consiste à déclarer ses paramètres.
Cette discipline, à mon avis, aura pour intérêt de rendre le code plus lisible, et, partant, plus compréhensible.
Voir mon billet à ce sujet.
Ce qui est valable pour une fonction personnalisée l'est d'autant pour toute méthode native de VBA.
D'autre part, il me paraît plus opportun de définir les items d'une Combobox avant de montrer le formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Workbooks.Open Filename:"....
Et ce, si possible, d'un bloc
S'il n'y a pas de condition, alors Il est inutile de balayer des lignes pour définir les items d'une zone de liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 With Usf_données .Cbx_lechoix.List = Range("T_Données[macolonne]").Value .Show End With
C'est juste mon avis.
Merci à vous pour vos réponses! ,
mais du coup je suis perdue, je dois mettre quoi pour que ça fonctionne ?
encore merci pour votre aide !
Bonsoir,
J'ai du mal à te suivre.
Dans le formulaire, il n'y a pas de bouton "modifier le dossier" mais 2 pages dont l'une s'appelle ainsi.
A ce stade de la discussion, j'ai ouvert ton classeur. Je n'ai pas rencontré d'erreur.
Quel bouton activé provoque l'erreur?
Quelle est cette erreur? Tu peux retourner une image de celle-ci.
Qui plus est, ton formulaire est basé sur un tableau structuré.
C'est un bon principe.
Ainsi, tu peux alimenter ta zone de liste modifiable (Combobox) directement par une colonne de ce tableau comme je l'ai indiqué dans mon précédent post.
Et ce que ce soit par la gestion d'un évènement Click d'un bouton de commande, ou bien à l'appel du formulaire comme je le montre.
Ce n'est pas une critique personnelle mais un conseil.
Il me paraît que tu t'es lancée dans un projet ambitieux alors que tu ne sembles pas connaître les bases de VBA.
Dans ce billet, j'indique quelques espaces fondamentaux à consulter AVANT tout développement.
Pour ce qui est des tableaux structurés, consulte ces 2 espaces.
Présentation des tableaux structurés
Les tableaux structurés par VBA
Pour ce qui est de l'interférence Formulaire - Tableau structuré, consulte ces 2 espaces:
Liaison 1 Formulaire - tableau structuré
Liaison 2 Formulaire - tableau structuré
En résumé, il te faut commencer par le commencement, à bien structurer un développement avec rigueur.
Nous sommes, pour beaucoup, passés par ce stade. Moi le premier.
Exemple: renommer ses contrôles de façon explicite en préfixant ce nom par un libellé qui en indique la nature (Txt, Cbx)
En espérant t'avoir aidé.Cbx_Dossier, Txt_adresse1
quand je clique sur le bouton modifier, c'est là que j'ai l'erreur "erreur de compilation erreur de syntaxe" dans Sub Ini CBB.
merci encore pour votre aide !
Il y a une parenthèse ouvrante en trop devant .Cells (qui n'existe est pas sur le screen du post #1)
Et pour revenir au post 1, comme je t'ai déjà dit, le problème vient du RowSource.
Tu l'a défini directement dans les propriétés du combobox : il faut le supprimer (y compris avec la solution de Marcel)
sinon VBA refusera la modification de la liste (c'est logique) :
bonjour,
déjà, merci de votre patience !
donc, je supprime le rowsource de la combobox1 et je mets quoi à la place de :
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 Sub Init_CBB() Dim J As Long, Nbligne As Long Dim K As Long With Sheets("BASE DE DONNEES") Me.ComboBox1 = "" End With With Sheets("BASE DE DONNEES") ' Determine le nombre de cellules remplies en colonne A Nbligne = .Cells(Columns(1).Cells.Count, 1).End(xlUp).Row For J = 2 To Nbligne 'Boucle sur les lignes partir de la 2ème (si pas de titre changer en 1) ComboBox1.AddItem (.Cells(J, 1).Value Next J End With With Sheets("BASE DE DONNEES") Me.ComboBox2 = "" End With With Sheets("BASE DE DONNEES") ' Determine le nombre de cellules remplies en colonne F Nbligne = .Cells(Columns(6).Cells.Count, 1).End(xlUp).Row For K = 2 To Nbligne 'Boucle sur les lignes partir de la 2ème (si pas de titre changer en 1) ComboBox2.AddItem .Cells(K, 1).Value Next K End With End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager