Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Simplifier un code

  • Initiateur de la discussion Initiateur de la discussion Matboy
  • Date de début Date de début

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 !

M

Matboy

Guest
Bonjour,

Je suis nouveau et j'aurai besoin d'aide svp.

Cela doit sûrement ce pouvoir, mais je n'arrive à rien en ce moment avec les ranges et j'ai cherché sur internet. J'aimerai simplifier un code répétitif.

Sheets("Débit de dose").Cells(5 + compteur, 1) = Cells(5, 2).Value
Sheets("Débit de dose").Cells(5 + compteur, 2) = Cells(6, 14).Value
Sheets("Débit de dose").Cells(5 + compteur, 3) = Cells(6, 17).Value
Sheets("Débit de dose").Cells(5 + compteur, 4) = Cells(7, 14).Value
Sheets("Débit de dose").Cells(5 + compteur, 5) = Cells(7, 17).Value

Est-il possible de faire cela sur une seule ligne?

Merci beaucoup!

Matboy
 
Re : Simplifier un code

Bonjour Matboy
C'est peut-être possible, mais il faudra être moins sibyllin.
Autant on peut imaginer ce que peut être la règle d'évolution de la suite 1, 2, 3, 4, 5, … , autant on hésite pour décrire le principe d'évolution de 5, 6, 6, 7, 7, … et de 2, 14, 17, 14, 17, …​
ROGER2327
#5313


Samedi 21 Merdre 138 (Sainte Pyrotechnie, illuminée - fête Suprême Quarte)
19 Prairial An CCXIX, 7,5924h - tilleul
2011-W23-2T18:13:18Z
 
Re : Simplifier un code

Ha. Non non.

C'est le code en entier cela. Je n'ai pas écris une égalité pour montrer l'évolution de mon code. C'est juste que la partie à gauche va prendre les valeurs inscrites dans les cellules de gauche. Je voulais juste savoir si on ne pouvait pas faire un code du genre:

Sheets("Débit de dose").Range("Cells(5+compteur, 1), Cells(5+compteur, 5)) = Range(...)

C'est là que je ne suis plus capable d'avancer.

Et la variable compteur est une incrémentation +1.
 
Re : Simplifier un code

Bonjour Matboy, Bonjour ROGER,
Une proposition "simpliste" ,en attendant mieux.
Code:
Sub test()
Dim PLg As Variant
PLg = Array(Cells(5, 2).Value, Cells(6, 14).Value, Cells(6, 17).Value, _
            Cells(7, 14).Value, Cells(7, 17).Value)
For COMPTEUR= 1 To 5 '?
    Sheets("Débit de dose").Cells(5 + COMPTEUR, 1).Resize(1, UBound(PLg) + 1) = PLg
Next COMPTEUR
End Sub
Cordialement
 
Re : Simplifier un code

Merci merci.

Je vais voir ce que je peux faire avec cela.

Je me demandais surtout s'il était possible de copier coller des valeurs en bloc. Prendre 6valeurs d'un coup dans des cellules qui peuvent ne pas se toucher et les envoyer dans 6cellules qui peuvent ne pas se toucher d'une autre feuille.
 
Re : Simplifier un code

Re
Je me demandais surtout s'il était possible de copier coller des valeurs en bloc.Prendre 6valeurs d'un coup dans des cellules qui peuvent ne pas se toucher
Oui. Ma proposition te le permet.


et les envoyer dans 6cellules qui peuvent ne pas se toucher d'une autre feuille.
Là je ne vois pas comment faire....Ma proposition ne le permet pas.
Bon courage
Cordialement
 
Re : Simplifier un code

Re…
(…)
C'est le code en entier cela.
(…)
Et la variable compteur est une incrémentation +1.
Dans ce cas, pas de problème :
Code:
Sheets("Débit de dose").Cells(5 + compteur, 1).Resize(1, 5) = Array([B5], [N6], [Q6], [N7], [Q7])
ROGER2327
#5314


Samedi 21 Merdre 138 (Sainte Pyrotechnie, illuminée - fête Suprême Quarte)
19 Prairial An CCXIX, 8,1791h - tilleul
2011-W23-2T19:37:47Z
 
Re : Simplifier un code

Salut Matboy (et Efgé, Roger)

Euh, juste une petite question: Pourquoi vouloir faire cela en 1 ligne ?

Si ton code ne comporte que ces 5 lignes, cela n'a pas beaucoup d'intérêts, à part la recherche d’esthétisme ou de l'optimisation ultime 🙂

Bon courage,
 
Re : Simplifier un code

Cool ton bout de code Roger (je sauvegarde 🙂)

Sinon, une autre question à Matboy, pourquoi un Compteur ? utilises-tu une boucle ?
Si oui changes-tu de valeurs de tes cellules entre chaque pas de la boucle ?

En fait ton code m'intrigues 😉
 
Re : Simplifier un code

Re-bonsoir
En repassant par ici, je constate que le problème a changé puisqu'il ne s'agit plus de charger une plage de cellules contigües, mais une plage quelconque éventuellement discontinue.
Dans ce cas, on peut essayer ceci :
VB:
Sub tata()
Dim i&, cel As Range, org(), dst As Range
  org = Array([B5], [N6], [Q6], [N7], [Q7])
  Set dst = Sheets("Débit de dose").Range("B8,C3,F2,E8,D7")
  For Each cel In dst.Cells: cel.Value = org(i): i = i + 1: Next
End Sub
qui copie B5,N6,Q6,N7,Q7 en B8,C3,F2,E8,D7.​
ROGER2327
#5315


Samedi 21 Merdre 138 (Sainte Pyrotechnie, illuminée - fête Suprême Quarte)
19 Prairial An CCXIX, 9,2207h - tilleul
2011-W23-2T22:07:47Z
 
Re : Simplifier un code

Désolé de la réponse tardive, étant québécois il y a un petit décalage horaire 😛

ROGER: Merci beaucoup! Je vais essayer cela.

Jam: Si je veux faire tenir cela en une ligne c'est évidemment que mon code ne contient pas que ces 5 lignes.Ceci est un morceau du code. En fait mon code en entier prend les informations d'une feuille principale, un registre d'entretien pour un laboratoire envoit toutes les données vers 5 feuilles dès que l'on active le code (Grâce à un bouton "Enregistrer"). Chaque feuille stokant les données pour un entretien précis. Le compteur est là pour écrire les données une ligne à la suite de l'autre à chaque fois que l'on enregistre le tout afin de ne pas écraser les anciennes.

Le problème était qu'une feuille prenait 18 données, ce qui fait beaucoup de répétition dans le code. Je me disais qu'il devait bien y avoir une façon de rendre cela moins patapouf. Et oui c'est plus beau esthétiquement.

Merci beaucoup à tous!
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
284
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
454
Réponses
7
Affichages
483
Réponses
3
Affichages
924
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…