Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

keepcool183

XLDnaute Occasionnel
[RESOLU] SImplifier un code

[Bonjour à tous 🙂,

1/ voila je bosse sur une sorte de forumlaire de saisie où j'ai plusieurs textbox et combobox.

Le problème c'est que pour chaque élement je dois répeter ce code :
Sheets("visite").Range("B3") = Me.type1
Sheets(UF1.visite.Value).Range("c3") = Me.MV
Sheets(UF1.visite.Value).Range("d3") = Me.Mod1
Sheets(UF1.visite.Value).Range("e3") = Me.heure1
Sheets(UF1.visite.Value).Range("f3") = Me.MPAG1

j'aimerais savoir s'il ya un moyen de le simplifier 🙂 parce que la j'ai une vingtaine de ligne par formulaire.

2/ Je cherche également un moyen pour enregistrer mon fichier sans VBA (cad que la selection que j'ai definies) 😀

Merci à ceux qui prendront le temps de me lire 😉
 
Dernière édition:
Re : SImplifier un code

Bonjour keepcool183,

Pour faire appel à des contrôles dans une boucle, en générale ces derniers sont nommés en ajoutant un numéro d’indice pour pouvoir y faire référence.
Par exemple :
TextBox1
TextBox2
TextBox3
seront appelés ainsi dans une boucle :
Code:
For i = 1 To 3[/SIZE][/FONT]
[FONT=Arial][SIZE=2]Controls(“TextBox“ & i).Value[/SIZE][/FONT]
[FONT=Arial][SIZE=2]……[/SIZE][/FONT]
[FONT=Arial][SIZE=2]…[/SIZE][/FONT]
[SIZE=2]

Le problème est que tes contrôles ont des noms différents…
A toi de voir si tu veux les appeler Controle1, Controle2, etc…

A te relire.
 
Dernière édition:
Re : SImplifier un code

Bonjour Gael,

C'était juste une faute de frappe sur le forum 😀.

le code complet étant :

row = Sheets("1").[A:A].Find(NUMV, LookIn:=xlValues).row
Controls("CTRL" & i).Value = Sheets(Nvis.Value).Cells(row, 3)

Objet introuvable selon VBA pourant je l'ai déclaré au début .

EDIT : c'est bon je pense j'ai mis le "i" entre () et ça marche.

Merci à vous deux 🙂

EDIT 2 : Non en fait 😀 il reste un soucis c'est que mes controles affiches tous la mêmes valeur
 
Dernière édition:
Re : SImplifier un code

Re,

J'ai un gros doute. Comment as-tu nommé les contrôles 😕

Pour suivre la remarque de Skoobi, ils devraient s'appeler:

CTRL1
CTRL2
CTRL3

puis dans la boucle:
Controls("CTRL" & i).Value devient CTRL1.value, CTRL2.value... selon la valeur de i. les () ne sont pas nécessaires ni dans le nom du contrôle, ni dans la macro.

@+

Gael
 
Re : SImplifier un code

Re Gael, Skoobi,

Tous mes contrôles sont nommés de cette manière :
CTRL1, CTRL2, CTRL3 .......

Ensuite j'ai modifié row par maligne.

Mais je ne pense pas que ça influence le choix des cellulles.

J'explique : tous mes controles sans exception affiche la valeur de la cellule B3 alors qu'ils devraient afficher chacun la valeur par rapport à une cellule donée.

En tentant de modifier le code le résultat est toujours le même.

for y = 2 to 101
Controls("CTRL" & i).Value = Sheets(Nvis.Value).Cells(row, y)

Merci de vos réponses 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Réponses
13
Affichages
2 K
M
Réponses
3
Affichages
958
Réponses
12
Affichages
2 K
A
Réponses
12
Affichages
2 K
A
J
Réponses
1
Affichages
1 K
L
Réponses
5
Affichages
2 K
lumiexcel
L
Retour