Demande de Simplification de code

  • Initiateur de la discussion Initiateur de la discussion laduche81
  • 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 !

L

laduche81

Guest
Bonjour !

J'ai un code très long j'aimerais, si c'est possible, le simplifier.
Merci par avance pour votre aide! Voici un fragment du code:

Code:
lol = WorksheetFunction.CountA(Range("C15:C1000"))
    If lol = 12 Then
    Range("B21") = "=B15+7"
    Range("B22") = "=B16+1"
    Range("C10") = "=B22+1"
    ElseIf lol = 18 Then
    Range("B27") = "=B15+14"
    Range("B28") = "=B16+2"
    Range("C10") = "=B28+1"
        ElseIf lol = 24 Then
    Range("B33") = "=B15+21"
    Range("B34") = "=B16+3"
    Range("C10") = "=B34+1"

Cdlt,

Adrien
 
Re : Demande de Simplification de code

Bonjour,

N'étant pas expert en macro j'ai fais ma sauce, le but de ce code étant d'incrémenter la valeur de certaines cellules, B15 étant une date (donc B15 + 7 jours a chaque fois)
Ce qui est important d'observer dans les quelques lignes que j'ai fournies c'est qu'il y a en quelque sorte une règle de proportinalité: on fait toujours +1,+6 ou +7 à chaque fois.
Donc je me dis qu'il est possible de simplifier ce code en quelques lignes au lieu de 200 actuellement.

J'espère avoir apporté les précisions nécessaires à la bonne compréhension?

Merci!

Adrien
 
Re : Demande de Simplification de code

Re,

un essai, au hasard

Code:
lol = WorksheetFunction.CountA(Range("C15:C1000"))
Range("B" & lol + 9) = "=B15+" & ((lol/6)-1)*7
Range("B" & lol + 10) = "=B16+" & (lol/6)-1
Range("C10") = "=B" & lol + 10 & "+1"
 
Re : Demande de Simplification de code

Le hasard fait bien les choses on dirait !

Ca marche parfaitement bien merci beaucoup 🙂

Je me doutais que ce qui m'a pris une demi-journée pouvait prendre 10min à un expert...

😀 Merci!
 
Re : Demande de Simplification de code

bonjour laduche
Salut tototiti

A tester:
Code:
lol = WorksheetFunction.CountA(Range("C15:C1000"))
a=(lol/6)-1
Range("B" & 21 +(a-1)*6)=Range("B15")+a*7
Range("B" & 21+(a-1)*6+1)=Range("B16")+a
Rage("C10")=range("B" & 22+(a-1)*6)+1

Arf !! : Tototiti toujours aussi rapide
 
- 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
1
Affichages
1 K
D
Réponses
0
Affichages
1 K
D
M
  • Question Question
Réponses
4
Affichages
1 K
Makovitch
M
M
  • Question Question
Réponses
4
Affichages
1 K
MarcMad
M
A
Réponses
4
Affichages
884
Arthur EXL
A
B
Réponses
2
Affichages
2 K
bastienb
B
T
  • Question Question
Réponses
9
Affichages
1 K
C
Réponses
23
Affichages
4 K
Charles78
C
C
Réponses
5
Affichages
2 K
Charles78
C
H
  • Question Question
2
Réponses
17
Affichages
3 K
M
Réponses
3
Affichages
956
Retour