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

Bonsoir,

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

Je te propose (pas sûr du résultat) de mettre les valeurs des contrôles dans un "tableau" et de boucler dessus:

Code:
  liste = Array(Me.type1, Me.MV, Me.Mod1,.......,..........,.........)
  For i = 2 To 29 'si j'ai bien compté
    Sheets(UF1.visite.Value).Cells(3, i) = liste(i - 2)
  Next
 
Re : SImplifier un code

Bonsoir Skoobi, le fil,

Ca a l'air d'être une très bonne idée mais n'étant pas sur mon lieu de travail je te répond dés que je test ton code 🙂.

Aucune idée sur la 2ème question à savoir : peut on enregistrer un fichier sans les macros et les codes VBA ?

Il s'agit d'une facture et j'aimerais pouvoir l'envoyer par mail en allégeant le fichier. 😉

Merci de ta réponse 🙂
 
Re : SImplifier un code

Bonjour Skoobi, le fil et le forum,

Merci pour ton code, J'ai pu le tester ce matin, en fait il marche trés bien 🙂 mais à chaque fois il me donne une erreur de type 9 ("l'indice n'appartient pas à la selection").

Une deuxième chose concerne le fait qu'il écrase à chaque fois les données déjà présentes.


A+ 😉
 
Re : SImplifier un code

Re bonjour,

il marche trés bien 🙂 mais à chaque fois il me donne une erreur de type 9 ("l'indice n'appartient pas à la selection").

Vérifie que tu as bien mis les 28 données dans la liste:
liste = Array(Me.type1, Me.MV, Me.Mod1,.......,..........,.........)
Sinon, as-tu ceci tout en haut du code:
Option Base 1
Si oui, cela signifie que l'indice de la liste commence à 1 et non à 0.
Donc dans le code, il faudra enlever 1 au lieu de 2:
Sheets(UF1.visite.Value).Cells(3, i) = liste(i - 1)
Une deuxième chose concerne le fait qu'il écrase à chaque fois les données déjà présentes.
Je te signale que ce code reprend le tient et ne fait rien de plus que ta demande initiale.
 
Re : SImplifier un code

Re skoobi,

En fait j'avais placer le code dans le code du bouton qui insère les données dans les feuilles. est ce correct ? (vu que tu cites option base 1, je pense qu'il faudrait le mettre dans un module non?)

j'ai bien mis tous les controles dedans, il n'y aucun problème à ce niveau 🙂.
 
Re : SImplifier un code

Re,
En fait j'avais placer le code dans le code du bouton qui insère les données dans les feuilles. est ce correct ? (vu que tu cites option base 1, je pense qu'il faudrait le mettre dans un module non?)
Peut importe. L'important que je l'ai dit est de vérifier que le premier indice colle avec Option Base.
As-tu essayer le code en pas à pas pour comprendre d'où ça peut venir?
 
Re : SImplifier un code

Re skoobi,

Ben en fait j'ai résolu le bug en mettant un "onerror resume next".

Le hic c'est que je l'ai mis dans un autre formulaire où j'ai beaucoup plus de contrôle et à un moment quand j'écris le code en mode Créa je ne peut plus rien rajouter à la "liste".

Est ce qu'il ya un moyen de faire un retour à la ligne pour le code ?? 🙁
 
Re : SImplifier un code

Bonjour à tous,

Je remet mon post ici pour éviter de polluer les discussions. 🙂

J'aimerais savoir si le code que Skoobi a publié peut marcher dans le sens inverse càd au lieu de s'en servir pour transférer les données des textbox dans la feuille, pouvoir transférer les données de la feuille vers les textbox 😀.

Rappel du code :

liste = Array(Me.type1, Me.MV, Me.Mod1,.......,..........,.........)
For i = 2 To 29 'si j'ai bien compté
Sheets(UF1.visite.Value).Cells(3, i) = liste(i - 2)
Next

Merci à ceux qui me liront
 
- 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