Bonjour,
je souhaite simplifier une macro, qui est dans le code de ma feuille nommée
"DA"
j'ai rajouté la dernière ligne à une macro existante. la première ligne, les
cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille
pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, je souhaite simplifier une macro, qui est dans le code de ma feuille nommée "DA" j'ai rajouté la dernière ligne à une macro existante. la première ligne, les cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False
If UCase([G40]) = "IS" And _
UCase([G41]) = UCase("Normal") Then
[G42] = "2065"
[G43] = "2050"
ElseIf [G40] = "IS" Then
With Sheets("80")
.Range("A4,H17:H18") = "NA"
.Range("H24") = "80_21"
.Range("H26") = "80_20"
End With
Sheets("80_21").Range("A4") = "Utilisée"
End If
Application.ScreenUpdating = True
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 55C4CAC4-3D7F-4E5A-96F6-3EF6246A3384@microsoft.com...
Bonjour,
je souhaite simplifier une macro, qui est dans le code de ma feuille nommée
"DA"
j'ai rajouté la dernière ligne à une macro existante. la première ligne, les
cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille
pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, je souhaite simplifier une macro, qui est dans le code de ma feuille nommée "DA" j'ai rajouté la dernière ligne à une macro existante. la première ligne, les cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
re, en fait, la totalité de la macro était : ------ If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050" If [G40] = "IS" And [G41] = "Simplifié" Then: [G42] = "2065": [G43] = "2033" If [G40] = "IS" And [G41] = "N/A" Then: [G42] = "ERREUR": [G43] = "ERREUR" If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA": Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21": Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA": Sheets("80_21").Range("A4") = "Utilisée" ---- ça change peut être quelque chose dans la macro que tu m'a écrite ? YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
re,
en fait, la totalité de la macro était :
------
If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050"
If [G40] = "IS" And [G41] = "Simplifié" Then: [G42] = "2065": [G43] = "2033"
If [G40] = "IS" And [G41] = "N/A" Then: [G42] = "ERREUR": [G43] = "ERREUR"
If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA":
Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21":
Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA":
Sheets("80_21").Range("A4") = "Utilisée"
----
ça change peut être quelque chose dans la macro que tu m'a écrite ?
YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False
If UCase([G40]) = "IS" And _
UCase([G41]) = UCase("Normal") Then
[G42] = "2065"
[G43] = "2050"
ElseIf [G40] = "IS" Then
With Sheets("80")
.Range("A4,H17:H18") = "NA"
.Range("H24") = "80_21"
.Range("H26") = "80_20"
End With
Sheets("80_21").Range("A4") = "Utilisée"
End If
Application.ScreenUpdating = True
re, en fait, la totalité de la macro était : ------ If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050" If [G40] = "IS" And [G41] = "Simplifié" Then: [G42] = "2065": [G43] = "2033" If [G40] = "IS" And [G41] = "N/A" Then: [G42] = "ERREUR": [G43] = "ERREUR" If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA": Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21": Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA": Sheets("80_21").Range("A4") = "Utilisée" ---- ça change peut être quelque chose dans la macro que tu m'a écrite ? YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
sunburn
re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, je souhaite simplifier une macro, qui est dans le code de ma feuille nommée "DA" j'ai rajouté la dernière ligne à une macro existante. la première ligne, les cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
re,
je précise, avec plusieurs autre choix concernant la valeur de G40 et G41
notamment....., mais la cosntruction est la même.
YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False
If UCase([G40]) = "IS" And _
UCase([G41]) = UCase("Normal") Then
[G42] = "2065"
[G43] = "2050"
ElseIf [G40] = "IS" Then
With Sheets("80")
.Range("A4,H17:H18") = "NA"
.Range("H24") = "80_21"
.Range("H26") = "80_20"
End With
Sheets("80_21").Range("A4") = "Utilisée"
End If
Application.ScreenUpdating = True
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 55C4CAC4-3D7F-4E5A-96F6-3EF6246A3384@microsoft.com...
Bonjour,
je souhaite simplifier une macro, qui est dans le code de ma feuille nommée
"DA"
j'ai rajouté la dernière ligne à une macro existante. la première ligne, les
cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille
pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, je souhaite simplifier une macro, qui est dans le code de ma feuille nommée "DA" j'ai rajouté la dernière ligne à une macro existante. la première ligne, les cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
Tu as le principe dans mon message précédent... tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" a écrit dans le message de groupe de discussion : re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, je souhaite simplifier une macro, qui est dans le code de ma feuille nommée "DA" j'ai rajouté la dernière ligne à une macro existante. la première ligne, les cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
Tu as le principe dans mon message précédent...
tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 9311E2D6-B2B7-48AD-9693-FEB2A42E8E08@microsoft.com...
re,
je précise, avec plusieurs autre choix concernant la valeur de G40 et G41
notamment....., mais la cosntruction est la même.
YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False
If UCase([G40]) = "IS" And _
UCase([G41]) = UCase("Normal") Then
[G42] = "2065"
[G43] = "2050"
ElseIf [G40] = "IS" Then
With Sheets("80")
.Range("A4,H17:H18") = "NA"
.Range("H24") = "80_21"
.Range("H26") = "80_20"
End With
Sheets("80_21").Range("A4") = "Utilisée"
End If
Application.ScreenUpdating = True
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 55C4CAC4-3D7F-4E5A-96F6-3EF6246A3384@microsoft.com...
Bonjour,
je souhaite simplifier une macro, qui est dans le code de ma feuille nommée
"DA"
j'ai rajouté la dernière ligne à une macro existante. la première ligne, les
cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille
pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
Tu as le principe dans mon message précédent... tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" a écrit dans le message de groupe de discussion : re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
Bonjour,
ce n'est pas nécessaire plus court, mais plus lisible !
Application.ScreenUpdating = False If UCase([G40]) = "IS" And _ UCase([G41]) = UCase("Normal") Then [G42] = "2065" [G43] = "2050" ElseIf [G40] = "IS" Then With Sheets("80") .Range("A4,H17:H18") = "NA" .Range("H24") = "80_21" .Range("H26") = "80_20" End With Sheets("80_21").Range("A4") = "Utilisée" End If Application.ScreenUpdating = True
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, je souhaite simplifier une macro, qui est dans le code de ma feuille nommée "DA" j'ai rajouté la dernière ligne à une macro existante. la première ligne, les cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
Ok, alors je test, et je reviens si j'y arrive pas, mais j epositive : je vais yu arriver. merci. YANN
"MichDenis" wrote:
Tu as le principe dans mon message précédent... tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" a écrit dans le message de groupe de discussion : re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
> Bonjour, > > ce n'est pas nécessaire plus court, mais plus lisible ! > > Application.ScreenUpdating = False > If UCase([G40]) = "IS" And _ > UCase([G41]) = UCase("Normal") Then > [G42] = "2065" > [G43] = "2050" > ElseIf [G40] = "IS" Then > With Sheets("80") > .Range("A4,H17:H18") = "NA" > .Range("H24") = "80_21" > .Range("H26") = "80_20" > End With > Sheets("80_21").Range("A4") = "Utilisée" > End If > Application.ScreenUpdating = True > > > > > "sunburn" a écrit dans le message de groupe de > discussion : > Bonjour, > je souhaite simplifier une macro, qui est dans le code de ma feuille nommée > "DA" > j'ai rajouté la dernière ligne à une macro existante. la première ligne, les > cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille > pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ? > > Merci. > YANN > ---- > Application.ScreenUpdating = False > If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050" > If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA": > Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21": > Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA": > Sheets("80_21").Range("A4") = "Utilisée" > ------ > >
Ok,
alors je test, et je reviens si j'y arrive pas, mais j epositive : je vais
yu arriver.
merci.
YANN
"MichDenis" wrote:
Tu as le principe dans mon message précédent...
tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 9311E2D6-B2B7-48AD-9693-FEB2A42E8E08@microsoft.com...
re,
je précise, avec plusieurs autre choix concernant la valeur de G40 et G41
notamment....., mais la cosntruction est la même.
YANN
"MichDenis" wrote:
> Bonjour,
>
> ce n'est pas nécessaire plus court, mais plus lisible !
>
> Application.ScreenUpdating = False
> If UCase([G40]) = "IS" And _
> UCase([G41]) = UCase("Normal") Then
> [G42] = "2065"
> [G43] = "2050"
> ElseIf [G40] = "IS" Then
> With Sheets("80")
> .Range("A4,H17:H18") = "NA"
> .Range("H24") = "80_21"
> .Range("H26") = "80_20"
> End With
> Sheets("80_21").Range("A4") = "Utilisée"
> End If
> Application.ScreenUpdating = True
>
>
>
>
> "sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
> discussion : 55C4CAC4-3D7F-4E5A-96F6-3EF6246A3384@microsoft.com...
> Bonjour,
> je souhaite simplifier une macro, qui est dans le code de ma feuille nommée
> "DA"
> j'ai rajouté la dernière ligne à une macro existante. la première ligne, les
> cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille
> pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
>
> Merci.
> YANN
> ----
> Application.ScreenUpdating = False
> If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050"
> If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA":
> Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21":
> Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA":
> Sheets("80_21").Range("A4") = "Utilisée"
> ------
>
>
Ok, alors je test, et je reviens si j'y arrive pas, mais j epositive : je vais yu arriver. merci. YANN
"MichDenis" wrote:
Tu as le principe dans mon message précédent... tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" a écrit dans le message de groupe de discussion : re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
> Bonjour, > > ce n'est pas nécessaire plus court, mais plus lisible ! > > Application.ScreenUpdating = False > If UCase([G40]) = "IS" And _ > UCase([G41]) = UCase("Normal") Then > [G42] = "2065" > [G43] = "2050" > ElseIf [G40] = "IS" Then > With Sheets("80") > .Range("A4,H17:H18") = "NA" > .Range("H24") = "80_21" > .Range("H26") = "80_20" > End With > Sheets("80_21").Range("A4") = "Utilisée" > End If > Application.ScreenUpdating = True > > > > > "sunburn" a écrit dans le message de groupe de > discussion : > Bonjour, > je souhaite simplifier une macro, qui est dans le code de ma feuille nommée > "DA" > j'ai rajouté la dernière ligne à une macro existante. la première ligne, les > cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille > pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ? > > Merci. > YANN > ---- > Application.ScreenUpdating = False > If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050" > If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA": > Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21": > Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA": > Sheets("80_21").Range("A4") = "Utilisée" > ------ > >
sunburn
re, j'ai suivi tes conseils, et j'ai construit ma macro. en fait y'a que le dernier elseif qui ne fonctionne pas . Je crois comprendre que c'est normal, car elseif ne convient pas ici. Que dois-je metter alors ? merci de ton aide. YANN
---- If UCase([G40]) = "IR" And UCase([G41]) = UCase("Normal") Then [G42] = "2031" [G43] = "2050" ElseIf UCase([G40]) = "IR" And UCase([G41]) = UCase("Simplifié") Then [G42] = "2031" [G43] = "2033" ElseIf UCase([G40]) = "IR" And UCase([G41]) = UCase("N/A") Then [G42] = "ERREUR" [G43] = "ERREUR" ElseIf [G40] = "IR" Then With Sheets("80") 'mise à jour des feuilles dans la page maitresse 80 .Range("H24,H26") = "NA" .Range("H17") = "80_11" .Range("H18") = "80_20" End With Sheets("80_11").Range("A4") = "Utilisée" 'mise à jour de l'état de la feuille Sheets("80_21").Range("A4") = "NA" End If ------
re,
j'ai suivi tes conseils, et j'ai construit ma macro.
en fait y'a que le dernier elseif qui ne fonctionne pas . Je crois
comprendre que c'est normal, car elseif ne convient pas ici. Que dois-je
metter alors ?
merci de ton aide.
YANN
----
If UCase([G40]) = "IR" And UCase([G41]) = UCase("Normal") Then
[G42] = "2031"
[G43] = "2050"
ElseIf UCase([G40]) = "IR" And UCase([G41]) = UCase("Simplifié") Then
[G42] = "2031"
[G43] = "2033"
ElseIf UCase([G40]) = "IR" And UCase([G41]) = UCase("N/A") Then
[G42] = "ERREUR"
[G43] = "ERREUR"
ElseIf [G40] = "IR" Then
With Sheets("80") 'mise à jour des feuilles dans la page maitresse 80
.Range("H24,H26") = "NA"
.Range("H17") = "80_11"
.Range("H18") = "80_20"
End With
Sheets("80_11").Range("A4") = "Utilisée" 'mise à jour de l'état de la
feuille
Sheets("80_21").Range("A4") = "NA"
End If
------
re, j'ai suivi tes conseils, et j'ai construit ma macro. en fait y'a que le dernier elseif qui ne fonctionne pas . Je crois comprendre que c'est normal, car elseif ne convient pas ici. Que dois-je metter alors ? merci de ton aide. YANN
---- If UCase([G40]) = "IR" And UCase([G41]) = UCase("Normal") Then [G42] = "2031" [G43] = "2050" ElseIf UCase([G40]) = "IR" And UCase([G41]) = UCase("Simplifié") Then [G42] = "2031" [G43] = "2033" ElseIf UCase([G40]) = "IR" And UCase([G41]) = UCase("N/A") Then [G42] = "ERREUR" [G43] = "ERREUR" ElseIf [G40] = "IR" Then With Sheets("80") 'mise à jour des feuilles dans la page maitresse 80 .Range("H24,H26") = "NA" .Range("H17") = "80_11" .Range("H18") = "80_20" End With Sheets("80_11").Range("A4") = "Utilisée" 'mise à jour de l'état de la feuille Sheets("80_21").Range("A4") = "NA" End If ------
sunburn
c'est bon, j'ai trouvé. merci de ton aide.
"MichDenis" wrote:
Tu as le principe dans mon message précédent... tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" a écrit dans le message de groupe de discussion : re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
> Bonjour, > > ce n'est pas nécessaire plus court, mais plus lisible ! > > Application.ScreenUpdating = False > If UCase([G40]) = "IS" And _ > UCase([G41]) = UCase("Normal") Then > [G42] = "2065" > [G43] = "2050" > ElseIf [G40] = "IS" Then > With Sheets("80") > .Range("A4,H17:H18") = "NA" > .Range("H24") = "80_21" > .Range("H26") = "80_20" > End With > Sheets("80_21").Range("A4") = "Utilisée" > End If > Application.ScreenUpdating = True > > > > > "sunburn" a écrit dans le message de groupe de > discussion : > Bonjour, > je souhaite simplifier une macro, qui est dans le code de ma feuille nommée > "DA" > j'ai rajouté la dernière ligne à une macro existante. la première ligne, les > cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille > pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ? > > Merci. > YANN > ---- > Application.ScreenUpdating = False > If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050" > If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA": > Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21": > Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA": > Sheets("80_21").Range("A4") = "Utilisée" > ------ > >
c'est bon, j'ai trouvé.
merci de ton aide.
"MichDenis" wrote:
Tu as le principe dans mon message précédent...
tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 9311E2D6-B2B7-48AD-9693-FEB2A42E8E08@microsoft.com...
re,
je précise, avec plusieurs autre choix concernant la valeur de G40 et G41
notamment....., mais la cosntruction est la même.
YANN
"MichDenis" wrote:
> Bonjour,
>
> ce n'est pas nécessaire plus court, mais plus lisible !
>
> Application.ScreenUpdating = False
> If UCase([G40]) = "IS" And _
> UCase([G41]) = UCase("Normal") Then
> [G42] = "2065"
> [G43] = "2050"
> ElseIf [G40] = "IS" Then
> With Sheets("80")
> .Range("A4,H17:H18") = "NA"
> .Range("H24") = "80_21"
> .Range("H26") = "80_20"
> End With
> Sheets("80_21").Range("A4") = "Utilisée"
> End If
> Application.ScreenUpdating = True
>
>
>
>
> "sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
> discussion : 55C4CAC4-3D7F-4E5A-96F6-3EF6246A3384@microsoft.com...
> Bonjour,
> je souhaite simplifier une macro, qui est dans le code de ma feuille nommée
> "DA"
> j'ai rajouté la dernière ligne à une macro existante. la première ligne, les
> cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille
> pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ?
>
> Merci.
> YANN
> ----
> Application.ScreenUpdating = False
> If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050"
> If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA":
> Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21":
> Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA":
> Sheets("80_21").Range("A4") = "Utilisée"
> ------
>
>
Tu as le principe dans mon message précédent... tu peux ajouter des "ElseIf" autant que tu désire !
Fais-toi confiance, tu peux le faire !
"sunburn" a écrit dans le message de groupe de discussion : re, je précise, avec plusieurs autre choix concernant la valeur de G40 et G41 notamment....., mais la cosntruction est la même. YANN
"MichDenis" wrote:
> Bonjour, > > ce n'est pas nécessaire plus court, mais plus lisible ! > > Application.ScreenUpdating = False > If UCase([G40]) = "IS" And _ > UCase([G41]) = UCase("Normal") Then > [G42] = "2065" > [G43] = "2050" > ElseIf [G40] = "IS" Then > With Sheets("80") > .Range("A4,H17:H18") = "NA" > .Range("H24") = "80_21" > .Range("H26") = "80_20" > End With > Sheets("80_21").Range("A4") = "Utilisée" > End If > Application.ScreenUpdating = True > > > > > "sunburn" a écrit dans le message de groupe de > discussion : > Bonjour, > je souhaite simplifier une macro, qui est dans le code de ma feuille nommée > "DA" > j'ai rajouté la dernière ligne à une macro existante. la première ligne, les > cellules sont celles de la feuille active. Donc moi j'ai précisé la feuille > pour la seconde ligne. ça fonctionne, mais y-a-t-il mieux ? > > Merci. > YANN > ---- > Application.ScreenUpdating = False > If [G40] = "IS" And [G41] = "Normal" Then: [G42] = "2065": [G43] = "2050" > If [G40] = "IS" Then: Sheets("80").Range("H17") = "NA": > Sheets("80").Range("H18") = "NA": Sheets("80").Range("H24") = "80_21": > Sheets("80").Range("H26") = "80_20": Sheets("80_11").Range("A4") = "NA": > Sheets("80_21").Range("A4") = "Utilisée" > ------ > >